import { useEffect, useState } from 'react'; import { useDebouncedCallback } from 'use-debounce'; import { Object as SDObject, useLibraryMutation } from '@sd/client'; import { Divider, TextArea } from '@sd/ui'; import { MetaContainer, MetaTitle } from '../Inspector'; interface Props { data: SDObject; } export default function Note(props: Props) { const setNote = useLibraryMutation('files.setNote'); const debouncedSetNote = useDebouncedCallback((note: string) => { setNote.mutate({ id: props.data.id, note }); }, 500); // Force update when component unmounts useEffect(() => () => debouncedSetNote.flush(), []); const [cachedNote, setCachedNote] = useState(props.data.note); return ( <> Note