diff --git a/apps/dashboard/app/(app)/settings/general/update-workspace-name.tsx b/apps/dashboard/app/(app)/settings/general/update-workspace-name.tsx index b60ab1e45d..2e14b9b94a 100644 --- a/apps/dashboard/app/(app)/settings/general/update-workspace-name.tsx +++ b/apps/dashboard/app/(app)/settings/general/update-workspace-name.tsx @@ -13,9 +13,17 @@ import { useForm } from "react-hook-form"; import { z } from "zod"; export const dynamic = "force-dynamic"; + +const validCharactersRegex = /^[a-zA-Z0-9-_]+$/; + const formSchema = z.object({ workspaceId: z.string(), - name: z.string(), + name: z + .string() + .min(3) + .regex(validCharactersRegex, { + message: "Workspace can only contain letters, numbers, dashes, and underscores", + }) }); type Props = { @@ -53,7 +61,7 @@ export const UpdateWorkspaceName: React.FC = ({ workspace }) => { async function onSubmit(values: z.infer) { await updateName.mutateAsync(values); } - + const isDisabled = form.formState.isLoading || !form.formState.isValid || updateName.isLoading; return (
@@ -84,7 +92,7 @@ export const UpdateWorkspaceName: React.FC = ({ workspace }) => {