import { useCallback, useLayoutEffect, memo, useState } from 'react' import { Thread } from '@janhq/core' import { Modal, ModalClose, Button, Input } from '@janhq/joi' import { PencilIcon } from 'lucide-react' import { useCreateNewThread } from '@/hooks/useCreateNewThread' type Props = { thread: Thread closeContextMenu?: () => void } const ModalEditTitleThread = ({ thread, closeContextMenu }: Props) => { const [title, setTitle] = useState(thread.title) const { updateThreadMetadata } = useCreateNewThread() useLayoutEffect(() => { if (thread.title) { setTitle(thread.title) } }, [thread.title]) const onUpdateTitle = useCallback( (e: React.MouseEvent) => { e.stopPropagation() updateThreadMetadata({ ...thread, title: title || 'New Thread', }) }, [thread, title, updateThreadMetadata] ) return ( { if (open && closeContextMenu) { closeContextMenu() } }} trigger={
e.stopPropagation()} > Edit title
} content={
setTitle(e.target.value)} autoFocus />
e.stopPropagation()}>
} /> ) } export default memo(ModalEditTitleThread)