mirror of
https://github.com/zadam/trilium.git
synced 2025-09-30 10:37:22 +08:00
fix(react/ribbon): attribute editor sometimes not clearing between notes
This commit is contained in:
parent
470edc4d70
commit
461eb273d9
2 changed files with 15 additions and 5 deletions
|
@ -3,7 +3,15 @@ import { useEffect, useImperativeHandle, useRef } from "preact/compat";
|
|||
import { MutableRef } from "preact/hooks";
|
||||
|
||||
export interface CKEditorApi {
|
||||
focus: () => void;
|
||||
focus(): void;
|
||||
/**
|
||||
* Imperatively sets the text in the editor.
|
||||
*
|
||||
* Prefer setting `currentValue` prop where possible.
|
||||
*
|
||||
* @param text text to set in the editor
|
||||
*/
|
||||
setText(text: string): void;
|
||||
}
|
||||
|
||||
interface CKEditorOpts {
|
||||
|
@ -34,6 +42,9 @@ export default function CKEditor({ apiRef, currentValue, editor, config, disable
|
|||
writer.setSelection(writer.createPositionAt(documentRoot, "end"));
|
||||
}
|
||||
});
|
||||
},
|
||||
setText(text: string) {
|
||||
textEditorRef.current?.setData(text);
|
||||
}
|
||||
};
|
||||
}, [ editorContainerRef ]);
|
||||
|
|
|
@ -86,10 +86,9 @@ export default function AttributeEditor({ note, componentId, notePath, ntxId, hi
|
|||
const [ state, setState ] = useState<"normal" | "showHelpTooltip" | "showAttributeDetail">();
|
||||
const [ error, setError ] = useState<unknown>();
|
||||
const [ needsSaving, setNeedsSaving ] = useState(false);
|
||||
const [ initialValue, setInitialValue ] = useState<string>("");
|
||||
|
||||
const lastSavedContent = useRef<string>();
|
||||
const currentValueRef = useRef(initialValue);
|
||||
const currentValueRef = useRef("");
|
||||
const wrapperRef = useRef<HTMLDivElement>(null);
|
||||
const editorRef = useRef<CKEditorApi>();
|
||||
|
||||
|
@ -126,7 +125,7 @@ export default function AttributeEditor({ note, componentId, notePath, ntxId, hi
|
|||
htmlAttrs += " ";
|
||||
}
|
||||
|
||||
setInitialValue(htmlAttrs);
|
||||
editorRef.current?.setText(htmlAttrs);
|
||||
}
|
||||
|
||||
function parseAttributes() {
|
||||
|
@ -290,7 +289,7 @@ export default function AttributeEditor({ note, componentId, notePath, ntxId, hi
|
|||
className="attribute-list-editor"
|
||||
tabIndex={200}
|
||||
editor={CKEditorAttributeEditor}
|
||||
currentValue={initialValue}
|
||||
currentValue="" // handled imperatively
|
||||
config={{
|
||||
toolbar: { items: [] },
|
||||
placeholder: t("attribute_editor.placeholder"),
|
||||
|
|
Loading…
Add table
Reference in a new issue