import { CheckCircleIcon } from '@heroicons/react/24/solid' import { XMarkIcon } from '@heroicons/react/24/outline' import { RiQuestionLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { useMemo } from 'react' import InvitationLink from './invitation-link' import s from './index.module.css' import Modal from '@/app/components/base/modal' import Button from '@/app/components/base/button' import { IS_CE_EDITION } from '@/config' import type { InvitationResult } from '@/models/common' import Tooltip from '@/app/components/base/tooltip' export type SuccessInvitationResult = Extract export type FailedInvitationResult = Extract type IInvitedModalProps = { invitationResults: InvitationResult[] onCancel: () => void } const InvitedModal = ({ invitationResults, onCancel, }: IInvitedModalProps) => { const { t } = useTranslation() const successInvitationResults = useMemo(() => invitationResults?.filter(item => item.status === 'success') as SuccessInvitationResult[], [invitationResults]) const failedInvitationResults = useMemo(() => invitationResults?.filter(item => item.status !== 'success') as FailedInvitationResult[], [invitationResults]) return (
{}} className={s.modal}>
{t('common.members.invitationSent')}
{!IS_CE_EDITION && (
{t('common.members.invitationSentTip')}
)} {IS_CE_EDITION && ( <>
{t('common.members.invitationSentTip')}
{ !!successInvitationResults.length && <>
{t('common.members.invitationLink')}
{successInvitationResults.map(item => )} } { !!failedInvitationResults.length && <>
{t('common.members.failedInvitationEmails')}
{ failedInvitationResults.map(item =>
{item.email}
, ) }
}
)}
) } export default InvitedModal