(feat): add draft caching
All checks were successful
/ build-web (push) Successful in 8m1s
/ build-desktop (linux) (push) Successful in 12m44s
/ build-mobile (push) Successful in 19m57s
/ release (push) Successful in 3m26s

This commit is contained in:
Alois 2026-08-02 01:25:39 +02:00
commit ab577283f9
Signed by: alois
SSH key fingerprint: SHA256:GBzT2DXvAuGV9XIV5W3WrzVpjU54FThmxHXdbz95J24
5 changed files with 194 additions and 23 deletions

View file

@ -324,6 +324,7 @@ export default function Input(props: InputProps) {
const elementRef = useRef<HTMLDivElement | null>(null);
const viewRef = useRef<EditorView | undefined>(undefined);
const setValueRef = useRef(props.setValue);
const onSubmitRef = useRef<InputProps["onSubmit"]>(props.onSubmit);
const onEmojiSelectRef = useRef<InputProps["onEmojiSelect"]>(
props.onEmojiSelect,
@ -334,10 +335,16 @@ export default function Input(props: InputProps) {
const completionCompartment = completionCompartmentRef.current;
useEffect(() => {
setValueRef.current = props.setValue;
onSubmitRef.current = props.onSubmit;
onEmojiSelectRef.current = props.onEmojiSelect;
invertEnterBehaviorRef.current = Boolean(props.invertEnterBehavior);
}, [props.onEmojiSelect, props.onSubmit, props.invertEnterBehavior]);
}, [
props.onEmojiSelect,
props.onSubmit,
props.invertEnterBehavior,
props.setValue,
]);
useEffect(() => {
if (!elementRef.current) return;
@ -346,7 +353,7 @@ export default function Input(props: InputProps) {
doc: props.value,
extensions: createEditorExtensions(
(value) => {
props.setValue(value);
setValueRef.current(value);
},
() => props.placeholder,
() => invertEnterBehaviorRef.current,