import { useCallback, useLayoutEffect, memo, useState } from 'react' import { Modal, ModalClose, Button, Input } from '@janhq/joi' import { useAtom } from 'jotai' import { useCreateNewThread } from '@/hooks/useCreateNewThread' import { modalActionThreadAtom, ThreadModalAction, } from '@/helpers/atoms/Thread.atom' const ModalEditTitleThread = () => { const { updateThreadMetadata } = useCreateNewThread() const [modalActionThread, setModalActionThread] = useAtom( modalActionThreadAtom ) const [title, setTitle] = useState(modalActionThread.thread?.title as string) useLayoutEffect(() => { if (modalActionThread.thread?.title) { setTitle(modalActionThread.thread?.title) } }, [modalActionThread.thread?.title]) const onUpdateTitle = useCallback( (e: React.MouseEvent) => { e.stopPropagation() if (!modalActionThread.thread) return null updateThreadMetadata({ ...modalActionThread?.thread, title: title || 'New Thread', }) }, [modalActionThread?.thread, title, updateThreadMetadata] ) const onCloseModal = useCallback(() => { setModalActionThread({ showModal: undefined, thread: undefined, }) }, [setModalActionThread]) return ( setTitle(e.target.value)} autoFocus />
e.stopPropagation()}>
} /> ) } export default memo(ModalEditTitleThread)