import { Button, Group, Stack, Text } from '@mantine/core'; import { DateInput } from '@mantine/dates'; import { useForm, zodResolver } from '@mantine/form'; import { ContextModalProps, modals } from '@mantine/modals'; import dayjs from 'dayjs'; import { api } from '~/utils/api'; import { useI18nZodResolver } from '~/utils/i18n-zod-resolver'; import { createRegistrationTokenSchema } from '~/validations/registration-token'; export const CreateRegistrationTokenModal = ({ context, id, innerProps, }: ContextModalProps<{}>) => { const apiContext = api.useContext(); const { isLoading, mutateAsync } = api.registrationTokens.createRegistrationToken.useMutation({ onSuccess: async (data) => { await apiContext.registrationTokens.getAllInvites.invalidate(); modals.close(id); modals.openContextModal({ modal: 'copyRegistrationTokenModal', title: Copy invitation, innerProps: data, }) }, }); const { i18nZodResolver } = useI18nZodResolver(); const minDate = dayjs().add(5, 'minutes').toDate(); const maxDate = dayjs().add(6, 'months').toDate(); const form = useForm({ initialValues: { expirationDate: dayjs().add(7, 'days').toDate(), }, validate: i18nZodResolver(createRegistrationTokenSchema), }); return ( After the expiration, a token will no longer be valid and the recipient of the token won't be able to create an account. ); };