import { useAtom } from "jotai"; import * as z from "zod"; import { useForm, zodResolver } from "@mantine/form"; import { workspaceAtom } from "@/features/user/atoms/current-user-atom.ts"; import React, { useState } from "react"; import { Button, Text, TagsInput } from "@mantine/core"; import { notifications } from "@mantine/notifications"; import { useTranslation } from "react-i18next"; import { updateWorkspace } from "@/features/workspace/services/workspace-service.ts"; import { IWorkspace } from "@/features/workspace/types/workspace.types.ts"; const formSchema = z.object({ emailDomains: z.array(z.string()), }); type FormValues = z.infer; export default function AllowedDomains() { const { t } = useTranslation(); const [isLoading, setIsLoading] = useState(false); const [workspace, setWorkspace] = useAtom(workspaceAtom); const [, setDomains] = useState([]); const form = useForm({ validate: zodResolver(formSchema), initialValues: { emailDomains: workspace?.emailDomains || [], }, }); async function handleSubmit(data: Partial) { setIsLoading(true); try { const updatedWorkspace = await updateWorkspace({ emailDomains: data.emailDomains, }); setWorkspace(updatedWorkspace); notifications.show({ message: t("Updated successfully"), }); } catch (err) { console.log(err); notifications.show({ message: err.response.data.message, color: "red", }); } form.resetDirty(); setIsLoading(false); } return ( <>
Allowed email domains Only users with email addresses from these domains can signup via SSO.
); }