Skip to content

Commit 6389049

Browse files
Merge pull request #727 from microsoft/ag-conv-title
fix: add validation for conversation name length
2 parents 67cccd4 + fbc213f commit 6389049

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

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

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,20 @@ function ConversationItem({
414414
const handleRenameConfirm = async () => {
415415
const trimmedValue = renameValue.trim();
416416

417+
// Validate before API call
418+
if (trimmedValue.length < 5) {
419+
setRenameError('Conversation name must be at least 5 characters');
420+
return;
421+
}
422+
if (trimmedValue.length > 50) {
423+
setRenameError('Conversation name cannot exceed 50 characters');
424+
return;
425+
}
426+
if (!/[a-zA-Z0-9]/.test(trimmedValue)) {
427+
setRenameError('Conversation name must contain at least one letter or number');
428+
return;
429+
}
430+
417431
if (trimmedValue === conversation.title) {
418432
setIsRenameDialogOpen(false);
419433
setRenameError('');
@@ -533,11 +547,18 @@ function ConversationItem({
533547
<Input
534548
ref={renameInputRef}
535549
value={renameValue}
550+
maxLength={50}
536551
onChange={(e) => {
537552
const newValue = e.target.value;
538553
setRenameValue(newValue);
539554
if (newValue.trim() === '') {
540555
setRenameError('Conversation name cannot be empty or contain only spaces');
556+
} else if (newValue.trim().length < 5) {
557+
setRenameError('Conversation name must be at least 5 characters');
558+
} else if (!/[a-zA-Z0-9]/.test(newValue)) {
559+
setRenameError('Conversation name must contain at least one letter or number');
560+
} else if (newValue.length > 50) {
561+
setRenameError('Conversation name cannot exceed 50 characters');
541562
} else {
542563
setRenameError('');
543564
}
@@ -552,6 +573,16 @@ function ConversationItem({
552573
placeholder="Enter conversation name"
553574
style={{ width: '100%' }}
554575
/>
576+
<Text
577+
size={200}
578+
style={{
579+
color: tokens.colorNeutralForeground3,
580+
marginTop: '4px',
581+
display: 'block'
582+
}}
583+
>
584+
Maximum 50 characters ({renameValue.length}/50)
585+
</Text>
555586
{renameError && (
556587
<Text
557588
size={200}
@@ -576,7 +607,7 @@ function ConversationItem({
576607
<Button
577608
appearance="primary"
578609
onClick={handleRenameConfirm}
579-
disabled={!renameValue.trim()}
610+
disabled={renameValue.trim().length < 5 || !/[a-zA-Z0-9]/.test(renameValue) || renameValue.length > 50}
580611
>
581612
Rename
582613
</Button>

0 commit comments

Comments
 (0)