Skip to content

Commit eaa9caf

Browse files
fix: Added validation for rename button
2 parents 11d415b + deb3e4c commit eaa9caf

File tree

1 file changed

+42
-7
lines changed

1 file changed

+42
-7
lines changed

content-gen/src/app/frontend/src/components/ChatHistory.tsx

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)