|  | import { useStore } from '@nanostores/react'; | 
					
						
						|  | import { TooltipProvider } from '@radix-ui/react-tooltip'; | 
					
						
						|  | import WithTooltip from '~/components/ui/Tooltip'; | 
					
						
						|  | import { useEditChatDescription } from '~/lib/hooks'; | 
					
						
						|  | import { description as descriptionStore } from '~/lib/persistence'; | 
					
						
						|  |  | 
					
						
						|  | export function ChatDescription() { | 
					
						
						|  | const initialDescription = useStore(descriptionStore)!; | 
					
						
						|  |  | 
					
						
						|  | const { editing, handleChange, handleBlur, handleSubmit, handleKeyDown, currentDescription, toggleEditMode } = | 
					
						
						|  | useEditChatDescription({ | 
					
						
						|  | initialDescription, | 
					
						
						|  | syncWithGlobalStore: true, | 
					
						
						|  | }); | 
					
						
						|  |  | 
					
						
						|  | if (!initialDescription) { | 
					
						
						|  |  | 
					
						
						|  | return null; | 
					
						
						|  | } | 
					
						
						|  |  | 
					
						
						|  | return ( | 
					
						
						|  | <div className="flex items-center justify-center"> | 
					
						
						|  | {editing ? ( | 
					
						
						|  | <form onSubmit={handleSubmit} className="flex items-center justify-center"> | 
					
						
						|  | <input | 
					
						
						|  | type="text" | 
					
						
						|  | className="bg-bolt-elements-background-depth-1 text-bolt-elements-textPrimary rounded px-2 mr-2 w-fit" | 
					
						
						|  | autoFocus | 
					
						
						|  | value={currentDescription} | 
					
						
						|  | onChange={handleChange} | 
					
						
						|  | onBlur={handleBlur} | 
					
						
						|  | onKeyDown={handleKeyDown} | 
					
						
						|  | style={{ width: `${Math.max(currentDescription.length * 8, 100)}px` }} | 
					
						
						|  | /> | 
					
						
						|  | <TooltipProvider> | 
					
						
						|  | <WithTooltip tooltip="Save title"> | 
					
						
						|  | <div className="flex justify-between items-center p-2 rounded-md bg-bolt-elements-item-backgroundAccent"> | 
					
						
						|  | <button | 
					
						
						|  | type="submit" | 
					
						
						|  | className="i-ph:check-bold scale-110 hover:text-bolt-elements-item-contentAccent" | 
					
						
						|  | onMouseDown={handleSubmit} | 
					
						
						|  | /> | 
					
						
						|  | </div> | 
					
						
						|  | </WithTooltip> | 
					
						
						|  | </TooltipProvider> | 
					
						
						|  | </form> | 
					
						
						|  | ) : ( | 
					
						
						|  | <> | 
					
						
						|  | {currentDescription} | 
					
						
						|  | <TooltipProvider> | 
					
						
						|  | <WithTooltip tooltip="Rename chat"> | 
					
						
						|  | <div className="flex justify-between items-center p-2 rounded-md bg-bolt-elements-item-backgroundAccent ml-2"> | 
					
						
						|  | <button | 
					
						
						|  | type="button" | 
					
						
						|  | className="i-ph:pencil-fill scale-110 hover:text-bolt-elements-item-contentAccent" | 
					
						
						|  | onClick={(event) => { | 
					
						
						|  | event.preventDefault(); | 
					
						
						|  | toggleEditMode(); | 
					
						
						|  | }} | 
					
						
						|  | /> | 
					
						
						|  | </div> | 
					
						
						|  | </WithTooltip> | 
					
						
						|  | </TooltipProvider> | 
					
						
						|  | </> | 
					
						
						|  | )} | 
					
						
						|  | </div> | 
					
						
						|  | ); | 
					
						
						|  | } | 
					
						
						|  |  |