🐛 Fix legacy publicId format validation
This commit is contained in:
@ -58,8 +58,7 @@ export const SharePage = () => {
|
||||
|
||||
if (!isCorrectlyFormatted) {
|
||||
showToast({
|
||||
description:
|
||||
'Should contain only contain letters, numbers. Words can be separated by dashes.',
|
||||
description: 'Can only contain lowercase letters, numbers and dashes.',
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
@ -139,7 +139,12 @@ export const updateTypebot = authenticatedProcedure
|
||||
typebot.resultsTablePreferences === null
|
||||
? Prisma.DbNull
|
||||
: typebot.resultsTablePreferences,
|
||||
publicId: typebot.publicId === null ? null : typebot.publicId,
|
||||
publicId:
|
||||
typebot.publicId === null
|
||||
? null
|
||||
: typebot.publicId && isPublicIdValid(typebot.publicId)
|
||||
? typebot.publicId
|
||||
: undefined,
|
||||
customDomain:
|
||||
typebot.customDomain === null ? null : typebot.customDomain,
|
||||
isClosed: typebot.isClosed,
|
||||
@ -149,3 +154,6 @@ export const updateTypebot = authenticatedProcedure
|
||||
return { typebot: typebotSchema.parse(newTypebot) }
|
||||
}
|
||||
)
|
||||
|
||||
const isPublicIdValid = (str: string) =>
|
||||
/^([a-z0-9]+-[a-z0-9]*)*$/.test(str) || /^[a-z0-9]*$/.test(str)
|
||||
|
@ -1,7 +1,12 @@
|
||||
import { isNotEmpty } from '@typebot.io/lib'
|
||||
|
||||
export const toKebabCase = (value: string) => {
|
||||
const matched = value.match(
|
||||
/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
|
||||
)
|
||||
if (!matched) return ''
|
||||
return matched.map((x) => x.toLowerCase()).join('-')
|
||||
return matched
|
||||
.filter(isNotEmpty)
|
||||
.map((x) => x.toLowerCase())
|
||||
.join('-')
|
||||
}
|
||||
|
Reference in New Issue
Block a user