import { Button, CopyButton, Mark, Stack, Text, Title } from '@mantine/core'; import { ContextModalProps, modals } from '@mantine/modals'; import { Trans, useTranslation } from 'next-i18next'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { RouterOutputs } from '~/utils/api'; type InnerProps = RouterOutputs['invites']['create']; export const CopyInviteModal = ({ id, innerProps }: ContextModalProps) => { const { t } = useTranslation('manage/users/invites'); const inviteUrl = useInviteUrl(innerProps.id, innerProps.token); return ( , }} /> {t('modals.copy.invitationLink')} {t('modals.copy.details.id')}: {innerProps.id} {t('modals.copy.details.token')}: {innerProps.token} {({ copy }) => ( )} ); }; const useInviteUrl = (id: string, token: string) => { const router = useRouter(); return `${window.location.href.replace(router.pathname, `/auth/invite/${id}?token=${token}`)}`; }; export const openCopyInviteModal = (data: InnerProps) => { modals.openContextModal({ modal: 'copyInviteModal', title: ( <Trans i18nKey="manage/users/invites:modals.copy.title" /> ), innerProps: data, }); };