fix: replace 6-word limit with 150-character limit for project names (#1077)

Replaces the word-based validation with character-based validation
as originally requested in #971. The 6-word limit was causing issues
with small words and separators being counted equally, and didn't
match the original requirement for a character limit.

Changes:
- Backend: Replace wordCount validator with len validator (1-150 chars)
- Frontend: Replace word count validation with character length check
- UI already has line-clamp-3 for display truncation

Fixes #998
This commit is contained in:
Chris 2026-04-26 08:43:43 +03:00 committed by GitHub
parent 9edbe142b6
commit b1a0a728d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 18 deletions

View file

@ -23,17 +23,9 @@ module.exports = (sequelize) => {
notEmpty: {
msg: 'Project name is required',
},
wordCount(value) {
const MAX_WORDS = 6;
const wordCount = value
.trim()
.split(/\s+/)
.filter((word) => word.length > 0).length;
if (wordCount > MAX_WORDS) {
throw new Error(
`Project name must be ${MAX_WORDS} words or less`
);
}
len: {
args: [1, 150],
msg: 'Project name must be between 1 and 150 characters',
},
},
},

View file

@ -268,16 +268,12 @@ const ProjectModal: React.FC<ProjectModalProps> = ({
return;
}
const MAX_WORDS = 6;
const wordCount = formData.name
.trim()
.split(/\s+/)
.filter((word) => word.length > 0).length;
if (wordCount > MAX_WORDS) {
const MAX_LENGTH = 150;
if (formData.name.trim().length > MAX_LENGTH) {
setError(
t(
'errors.projectNameTooLong',
`Project name must be ${MAX_WORDS} words or less`
`Project name must be ${MAX_LENGTH} characters or less`
)
);
return;