diff --git a/apps/client/src/widgets/bulk_actions/note/move_note.tsx b/apps/client/src/widgets/bulk_actions/note/move_note.tsx index 677680bbc..5e9945bbb 100644 --- a/apps/client/src/widgets/bulk_actions/note/move_note.tsx +++ b/apps/client/src/widgets/bulk_actions/note/move_note.tsx @@ -4,15 +4,13 @@ import BulkAction, { BulkActionText } from "../BulkAction.jsx"; import NoteAutocomplete from "../../react/NoteAutocomplete.jsx"; import { useEffect, useState } from "preact/hooks"; import { useSpacedUpdate } from "../../react/hooks.jsx"; -import { Suggestion } from "../../../services/note_autocomplete.js"; function MoveNoteBulkActionComponent({ bulkAction, actionDef }: { bulkAction: AbstractBulkAction, actionDef: ActionDefinition }) { - const [ suggestion, setSuggestion ] = useState(); + const [ targetParentNoteId, setTargetParentNoteId ] = useState(); const spacedUpdate = useSpacedUpdate(() => { - const noteId = suggestion?.notePath?.split("/")?.at(-1); - return bulkAction.saveAction({ targetParentNoteId: noteId }) + return bulkAction.saveAction({ targetParentNoteId: targetParentNoteId }) }); - useEffect(() => spacedUpdate.scheduleUpdate(), [ suggestion ]); + useEffect(() => spacedUpdate.scheduleUpdate(), [ targetParentNoteId ]); return ( ) diff --git a/apps/client/src/widgets/bulk_actions/relation/add_relation.tsx b/apps/client/src/widgets/bulk_actions/relation/add_relation.tsx index 927c10ace..5e10933a8 100644 --- a/apps/client/src/widgets/bulk_actions/relation/add_relation.tsx +++ b/apps/client/src/widgets/bulk_actions/relation/add_relation.tsx @@ -32,6 +32,7 @@ function AddRelationBulkActionComponent({ bulkAction, actionDef }: { bulkAction: ) diff --git a/apps/client/src/widgets/react/NoteAutocomplete.tsx b/apps/client/src/widgets/react/NoteAutocomplete.tsx index 1a7e9ad55..926a9e328 100644 --- a/apps/client/src/widgets/react/NoteAutocomplete.tsx +++ b/apps/client/src/widgets/react/NoteAutocomplete.tsx @@ -12,9 +12,11 @@ interface NoteAutocompleteProps { opts?: Omit; onChange?: (suggestion: Suggestion | null) => void; onTextChange?: (text: string) => void; + noteIdChanged?: (noteId: string) => void; + noteId?: string; } -export default function NoteAutocomplete({ inputRef: _ref, text, placeholder, onChange, onTextChange, container, opts }: NoteAutocompleteProps) { +export default function NoteAutocomplete({ inputRef: _ref, text, placeholder, onChange, onTextChange, container, opts, noteId, noteIdChanged }: NoteAutocompleteProps) { const ref = _ref ?? useRef(null); useEffect(() => { @@ -30,8 +32,15 @@ export default function NoteAutocomplete({ inputRef: _ref, text, placeholder, on ...opts, container: container?.current }); - if (onChange) { - const listener = (_e, suggestion) => onChange(suggestion); + if (onChange || noteIdChanged) { + const listener = (_e, suggestion) => { + onChange?.(suggestion); + + if (noteIdChanged) { + const noteId = suggestion?.notePath?.split("/")?.at(-1); + noteIdChanged(noteId); + } + }; $autoComplete .on("autocomplete:noteselected", listener) .on("autocomplete:externallinkselected", listener)