added event-editor-submit through ctrl+enter in description

This commit is contained in:
z1glr
2025-02-07 12:19:56 +00:00
parent 9acab1ad09
commit 650ed86504
3 changed files with 22 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
import React, { useState } from "react";
import React, { useRef, useState } from "react";
import {
getLocalTimeZone,
now,
@@ -21,6 +21,7 @@ import { EventData } from "@/Zustand";
import { useAsyncList } from "@react-stately/data";
import { getTasks } from "@/lib";
import Loading from "../Loading";
import { getHotkeyHandler } from "@mantine/hooks";
export interface EventSubmitData {
eventID: number;
@@ -49,6 +50,7 @@ export default function EventEditor(props: {
const [eventTasks, setEventTasks] = useState<string[]>(
props.value?.tasks.map((k) => k.taskID.toString()) ?? [],
);
const submitButtonRef = useRef<HTMLButtonElement>(null);
const tasks = useAsyncList({
async load() {
@@ -108,6 +110,9 @@ export default function EventEditor(props: {
name="description"
value={description}
onValueChange={setDescription}
onKeyDown={getHotkeyHandler([
["ctrl+Enter", () => submitButtonRef.current?.click()],
])}
/>
<CheckboxGroup
name="tasks"
@@ -132,7 +137,10 @@ export default function EventEditor(props: {
)}
</CheckboxGroup>
</ModalBody>
<ModalFooter>{props.footer}</ModalFooter>
<ModalFooter>
<button ref={submitButtonRef} type="submit" className="hidden" />
{props.footer}
</ModalFooter>
</ModalContent>
</Form>
</Modal>