fix: smart separator respects existing punctuation
Don't add '.' if prompt already ends with punctuation (.!?,;:). Logic: endsWithPunct || startsLower = just space, otherwise '. ' Prevents double-period '..' on continuation join.
This commit is contained in:
1 parent
050c104201
commit
b86b4e5011
1 file changed
+7
-4
@@ -192,10 +192,12 @@ export default function Generator({ onGenerate }: Props) {
|
||||
// Append continuation to existing prompt
|
||||
setPrompt(prev => {
|
||||
const trimmed = prev.trimEnd()
|
||||
// If result starts lowercase, it flows from the input — just space
|
||||
// If result starts uppercase, treat as new sentence — period + space
|
||||
const endsWithPunct = /[.!?,;:]$/.test(trimmed)
|
||||
const startsLower = /^[a-z]/.test(result)
|
||||
const separator = startsLower ? ' ' : '. '
|
||||
// Already punctuated? Just space.
|
||||
// Flows naturally (lowercase)? Just space.
|
||||
// Otherwise: period + space for a new sentence.
|
||||
const separator = (endsWithPunct || startsLower) ? ' ' : '. '
|
||||
return trimmed + separator + result
|
||||
})
|
||||
} else {
|
||||
@@ -229,8 +231,9 @@ export default function Generator({ onGenerate }: Props) {
|
||||
// Fallback: append to additional field
|
||||
setStructuredPrompt(prev => {
|
||||
const existing = prev.additional?.trim() || ''
|
||||
const endsWithPunct = /[.!?,;:]$/.test(existing)
|
||||
const startsLower = /^[a-z]/.test(result)
|
||||
const separator = startsLower ? ' ' : '. '
|
||||
const separator = (endsWithPunct || startsLower) ? ' ' : '. '
|
||||
return { ...prev, additional: existing + separator + result }
|
||||
})
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user