feat(collections/board): restore focus

This commit is contained in:
Elian Doran 2025-10-06 17:54:52 +03:00
parent d845343e97
commit f2e60f52d2
No known key found for this signature in database
2 changed files with 8 additions and 3 deletions

View File

@ -63,7 +63,7 @@ export default function Card({
setBranchIdToEdit?.(branch.branchId);
}, [ setBranchIdToEdit, branch ]);
const handleKeyUp = useCallback((e: KeyboardEvent) => {
const handleKeyDown = useCallback((e: KeyboardEvent) => {
if (e.key === "Enter") {
api.openNote(note.noteId);
} else if (e.key === "F2") {
@ -91,7 +91,7 @@ export default function Card({
onDragEnd={handleDragEnd}
onContextMenu={handleContextMenu}
onClick={!isEditing ? handleOpen : undefined}
onKeyUp={handleKeyUp}
onKeyDown={handleKeyDown}
style={{
display: !isVisible ? "none" : undefined
}}

View File

@ -227,10 +227,12 @@ export function TitleEditor({ currentValue, placeholder, save, dismiss, multilin
isNewItem?: boolean;
}) {
const inputRef = useRef<any>(null);
const focusElRef = useRef<Element>(null);
const dismissOnNextRefreshRef = useRef(false);
const shouldDismiss = useRef(false);
useEffect(() => {
focusElRef.current = document.activeElement;
inputRef.current?.focus();
inputRef.current?.select();
}, [ inputRef ]);
@ -254,8 +256,11 @@ export function TitleEditor({ currentValue, placeholder, save, dismiss, multilin
onKeyDown={(e: TargetedKeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {
if (e.key === "Enter" || e.key === "Escape") {
e.preventDefault();
e.stopPropagation();
shouldDismiss.current = (e.key === "Escape");
e.currentTarget.blur();
if (focusElRef.current instanceof HTMLElement) {
focusElRef.current.focus();
}
}
}}
onBlur={(newValue) => {