import Link from "next/link"; import { usePathname } from "next/navigation"; import { Button, CopyButton, Mark, Stack, Text } from "@mantine/core"; import type { RouterOutputs } from "@homarr/api"; import { createModal } from "@homarr/modals"; import { useScopedI18n } from "@homarr/translation/client"; export const InviteCopyModal = createModal(({ actions, innerProps }) => { const t = useScopedI18n("management.page.user.invite"); const inviteUrl = useInviteUrl(innerProps); return ( {t.rich("action.copy.description", { b: (children) => {children}, })} {t("action.copy.link")} {t("field.id.label")}: {innerProps.id} {t("field.token.label")}: {innerProps.token} {({ copy }) => ( )} ); }).withOptions({ defaultTitle(t) { return t("management.page.user.invite.action.copy.title"); }, }); const createPath = ({ id, token }: RouterOutputs["invite"]["createInvite"]) => `/auth/invite/${id}?token=${token}`; const useInviteUrl = ({ id, token }: RouterOutputs["invite"]["createInvite"]) => { const pathname = usePathname(); return window.location.href.replace(pathname, createPath({ id, token })); };