|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
import { Tooltip } from 'antd';
|
|
|
|
|
import { Divider, Tooltip } from 'antd';
|
|
|
|
|
import React from 'react';
|
|
|
|
|
import {
|
|
|
|
|
datetimeFromNow,
|
|
|
|
@ -9,30 +9,46 @@ import {
|
|
|
|
|
} from 'tailchat-shared';
|
|
|
|
|
|
|
|
|
|
interface InviteCodeExpiredAtProps {
|
|
|
|
|
invite: Pick<GroupInvite, 'expiredAt'>;
|
|
|
|
|
invite: Pick<GroupInvite, 'expiredAt' | 'usageLimit'>;
|
|
|
|
|
}
|
|
|
|
|
export const InviteCodeExpiredAt: React.FC<InviteCodeExpiredAtProps> =
|
|
|
|
|
React.memo((props) => {
|
|
|
|
|
const { invite } = props;
|
|
|
|
|
|
|
|
|
|
if (!invite.expiredAt) {
|
|
|
|
|
return <span>{t('该邀请码永不过期')}</span>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (new Date(invite.expiredAt).valueOf() < Date.now()) {
|
|
|
|
|
if (invite.expiredAt && new Date(invite.expiredAt).valueOf() < Date.now()) {
|
|
|
|
|
return <span>{t('该邀请码已过期')}</span>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<Trans>
|
|
|
|
|
该邀请将于{' '}
|
|
|
|
|
<Tooltip title={formatFullTime(invite.expiredAt)}>
|
|
|
|
|
<span className="font-bold">
|
|
|
|
|
{{ date: datetimeFromNow(invite.expiredAt) } as any}
|
|
|
|
|
</span>
|
|
|
|
|
</Tooltip>{' '}
|
|
|
|
|
过期
|
|
|
|
|
</Trans>
|
|
|
|
|
<>
|
|
|
|
|
{!invite.expiredAt ? (
|
|
|
|
|
<span>{t('该邀请码永不过期')}</span>
|
|
|
|
|
) : (
|
|
|
|
|
<Trans>
|
|
|
|
|
该邀请将于{' '}
|
|
|
|
|
<Tooltip title={formatFullTime(invite.expiredAt)}>
|
|
|
|
|
<span className="font-bold">
|
|
|
|
|
{{ date: datetimeFromNow(invite.expiredAt) } as any}
|
|
|
|
|
</span>
|
|
|
|
|
</Tooltip>{' '}
|
|
|
|
|
过期
|
|
|
|
|
</Trans>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
{invite.usageLimit && (
|
|
|
|
|
<>
|
|
|
|
|
<Divider type="vertical" />
|
|
|
|
|
|
|
|
|
|
<Trans>
|
|
|
|
|
可使用{' '}
|
|
|
|
|
<span className="font-bold">
|
|
|
|
|
{{ num: invite.usageLimit } as any}
|
|
|
|
|
</span>{' '}
|
|
|
|
|
次
|
|
|
|
|
</Trans>
|
|
|
|
|
</>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
InviteCodeExpiredAt.displayName = 'InviteCodeExpiredAt';
|
|
|
|
|