diff --git a/packages/services/api/src/modules/organization/resolvers.ts b/packages/services/api/src/modules/organization/resolvers.ts index 1fb0a829d..368474502 100644 --- a/packages/services/api/src/modules/organization/resolvers.ts +++ b/packages/services/api/src/modules/organization/resolvers.ts @@ -96,7 +96,7 @@ export const resolvers: OrganizationModule.Resolvers = { error: { message: 'Please check your input.', inputErrors: { - name: organizationNameResult.error.formErrors.fieldErrors?.[0]?.[0] ?? null, + name: organizationNameResult.error.issues[0].message ?? null, }, }, }; diff --git a/packages/web/app/src/components/v2/modals/create-organization.tsx b/packages/web/app/src/components/v2/modals/create-organization.tsx index b60142101..72b87a219 100644 --- a/packages/web/app/src/components/v2/modals/create-organization.tsx +++ b/packages/web/app/src/components/v2/modals/create-organization.tsx @@ -31,11 +31,18 @@ export const CreateOrganizationMutation = graphql(` export const CreateOrganizationForm = () => { const [mutation, mutate] = useMutation(CreateOrganizationMutation); const { push } = useRouter(); - const { handleSubmit, values, handleChange, handleBlur, isSubmitting, errors, touched } = + const { handleSubmit, values, handleChange, handleBlur, isSubmitting, errors, touched, isValid } = useFormik({ initialValues: { name: '' }, validationSchema: Yup.object().shape({ - name: Yup.string().required('Organization name is required'), + name: Yup.string() + .min(2, 'Name must be at least 2 characters long') + .max(50, 'Name must be at most 50 characters long') + .matches( + /^([a-z]|[0-9]|\s|\.|,|_|-|\/|&)+$/i, + 'Name restricted to alphanumerical characters, spaces and . , _ - / &', + ) + .required('Organization name is required'), }), async onSubmit(values) { const mutation = await mutate({ @@ -78,7 +85,13 @@ export const CreateOrganizationForm = () => { )}