Mercurial
diff love/epi/src/hooks/useComposer.ts @ 38:cf9caa4abc3e
[Love] FE and BE. Can chat and render images. Also created MCP for powerpoint generations.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 01 Dec 2025 20:35:56 -0800 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/love/epi/src/hooks/useComposer.ts Mon Dec 01 20:35:56 2025 -0800 @@ -0,0 +1,30 @@ +import { useCallback } from 'react'; +import { useAtom } from 'jotai'; +import { composerTextAtom, composerStatusAtom } from '@/atoms/composerAtom'; + +export const useComposer = () => { + const [text, setText] = useAtom(composerTextAtom); + const [status, setStatus] = useAtom(composerStatusAtom); + + const setSending = useCallback(() => setStatus('sending' as const), [setStatus]); + const setIdle = useCallback(() => setStatus('idle' as const), [setStatus]); + const reset = useCallback(() => { + setText(''); + setIdle(); + }, [setText, setIdle]); + + const isSending = status === 'sending'; + const isEmpty = text.trim() === ''; + + return { + text, + setText, + status, + isSending, + isEmpty, + isDisabled: isEmpty && !isSending, + setSending, + setIdle, + reset, + }; +};