This commit is contained in:
Optirx
2026-01-15 12:58:32 +02:00
parent f0021ab2b4
commit da1a576a86

View File

@@ -81,6 +81,21 @@ export default function Signup() {
setError('')
// Validation
if (!formData.businessName.trim()) {
setError('Please enter your business name')
return
}
if (formData.slug.length < 3) {
setError('URL slug must be at least 3 characters')
return
}
if (slugAvailable === false) {
setError('This URL is already taken. Please choose another.')
return
}
if (formData.password !== formData.confirmPassword) {
setError('Passwords do not match')
return
@@ -91,18 +106,25 @@ export default function Signup() {
return
}
if (!slugAvailable) {
setError('Please choose a different URL slug')
return
}
if (formData.slug.length < 3) {
setError('URL slug must be at least 3 characters')
return
}
setLoading(true)
// Double-check slug availability before creating
try {
const response = await databases.listDocuments(
DATABASE_ID,
COLLECTIONS.CLIENTS,
[Query.equal('slug', formData.slug)]
)
if (response.documents.length > 0) {
setError('This URL was just taken. Please choose another.')
setSlugAvailable(false)
setLoading(false)
return
}
} catch (err) {
// Continue with creation if check fails
}
try {
// Create client record
const clientId = generateId()
@@ -396,7 +418,7 @@ export default function Signup() {
{/* Submit Button */}
<button
type="submit"
disabled={loading || !slugAvailable}
disabled={loading || slugAvailable === false}
className="w-full py-4 bg-gradient-to-r from-blue-500 to-purple-600 text-white rounded-xl font-semibold hover:shadow-lg hover:shadow-purple-500/25 transition-all duration-300 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2"
>
{loading ? (