import { CheckCircleIcon } from '@heroicons/react/24/solid' import { QuestionMarkCircleIcon, XMarkIcon } from '@heroicons/react/24/outline' 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 SuccessInvationResult = Extract export type FailedInvationResult = Extract type IInvitedModalProps = { invitationResults: InvitationResult[] onCancel: () => void } const InvitedModal = ({ invitationResults, onCancel, }: IInvitedModalProps) => { const { t } = useTranslation() const successInvationResults = useMemo(() => invitationResults?.filter(item => item.status === 'success') as SuccessInvationResult[], [invitationResults]) const failedInvationResults = useMemo(() => invitationResults?.filter(item => item.status !== 'success') as FailedInvationResult[], [invitationResults]) return (
{}} className={s.modal} wrapperClassName='z-20'>
{t('common.members.invitationSent')}
{!IS_CE_EDITION && (
{t('common.members.invitationSentTip')}
)} {IS_CE_EDITION && ( <>
{t('common.members.invitationSentTip')}
{ !!successInvationResults.length && <>
{t('common.members.invitationLink')}
{successInvationResults.map(item => )} } { !!failedInvationResults.length && <>
{t('common.members.failedinvitationEmails')}
{ failedInvationResults.map(item =>
{item.email}
, ) }
}
)}
) } export default InvitedModal