@@ -322,21 +322,29 @@ function ConversationItem({
322322 const [ isRenameDialogOpen , setIsRenameDialogOpen ] = useState ( false ) ;
323323 const [ isDeleteDialogOpen , setIsDeleteDialogOpen ] = useState ( false ) ;
324324 const [ renameValue , setRenameValue ] = useState ( conversation . title || '' ) ;
325+ const [ renameError , setRenameError ] = useState < string > ( '' ) ;
325326 const renameInputRef = useRef < HTMLInputElement > ( null ) ;
326327
327328 const handleRenameClick = ( ) => {
328329 setRenameValue ( conversation . title || '' ) ;
330+ setRenameError ( '' ) ;
329331 setIsRenameDialogOpen ( true ) ;
330332 setIsMenuOpen ( false ) ;
331333 } ;
332334
333335 const handleRenameConfirm = async ( ) => {
334336 const trimmedValue = renameValue . trim ( ) ;
335- if ( trimmedValue && trimmedValue !== conversation . title ) {
336- await onRename ( conversation . id , trimmedValue ) ;
337- onRefresh ( ) ;
337+
338+ if ( trimmedValue === conversation . title ) {
339+ setIsRenameDialogOpen ( false ) ;
340+ setRenameError ( '' ) ;
341+ return ;
338342 }
343+
344+ await onRename ( conversation . id , trimmedValue ) ;
345+ onRefresh ( ) ;
339346 setIsRenameDialogOpen ( false ) ;
347+ setRenameError ( '' ) ;
340348 } ;
341349
342350 const handleDeleteClick = ( ) => {
@@ -446,9 +454,17 @@ function ConversationItem({
446454 < Input
447455 ref = { renameInputRef }
448456 value = { renameValue }
449- onChange = { ( e ) => setRenameValue ( e . target . value ) }
457+ onChange = { ( e ) => {
458+ const newValue = e . target . value ;
459+ setRenameValue ( newValue ) ;
460+ if ( newValue . trim ( ) === '' ) {
461+ setRenameError ( 'Conversation name cannot be empty or contain only spaces' ) ;
462+ } else {
463+ setRenameError ( '' ) ;
464+ }
465+ } }
450466 onKeyDown = { ( e ) => {
451- if ( e . key === 'Enter' ) {
467+ if ( e . key === 'Enter' && renameValue . trim ( ) ) {
452468 handleRenameConfirm ( ) ;
453469 } else if ( e . key === 'Escape' ) {
454470 setIsRenameDialogOpen ( false ) ;
@@ -457,13 +473,32 @@ function ConversationItem({
457473 placeholder = "Enter conversation name"
458474 style = { { width : '100%' } }
459475 />
476+ { renameError && (
477+ < Text
478+ size = { 200 }
479+ style = { {
480+ color : tokens . colorPaletteRedForeground1 ,
481+ marginTop : '8px' ,
482+ display : 'block'
483+ } }
484+ >
485+ { renameError }
486+ </ Text >
487+ ) }
460488 </ DialogContent >
461489 </ DialogBody >
462490 < DialogActions style = { { marginTop : '8px' , paddingTop : '8px' , paddingBottom : '8px' } } >
463- < Button appearance = "secondary" onClick = { ( ) => setIsRenameDialogOpen ( false ) } >
491+ < Button appearance = "secondary" onClick = { ( ) => {
492+ setIsRenameDialogOpen ( false ) ;
493+ setRenameError ( '' ) ;
494+ } } >
464495 Cancel
465496 </ Button >
466- < Button appearance = "primary" onClick = { handleRenameConfirm } >
497+ < Button
498+ appearance = "primary"
499+ onClick = { handleRenameConfirm }
500+ disabled = { ! renameValue . trim ( ) }
501+ >
467502 Rename
468503 </ Button >
469504 </ DialogActions >
0 commit comments