import { InviteCodeExpiredAt } from '@/components/InviteCodeExpiredAt'; import { Menu, Typography, Dropdown } from 'antd'; import React, { useState } from 'react'; import { useAsyncRequest, createGroupInviteCode, t, GroupInvite, } from 'tailchat-shared'; import styles from './CreateInviteCode.module.less'; enum InviteCodeType { Normal = 'normal', Permanent = 'permanent', } interface CreateInviteCodeProps { groupId: string; onInviteCreated?: () => void; } export const CreateInviteCode: React.FC = React.memo( ({ groupId, onInviteCreated }) => { const [createdInvite, setCreateInvite] = useState(null); const [{ loading }, handleCreateInviteLink] = useAsyncRequest( async (inviteType: InviteCodeType) => { const invite = await createGroupInviteCode(groupId, inviteType); setCreateInvite(invite); onInviteCreated?.(); }, [groupId, onInviteCreated] ); const menu = ( handleCreateInviteLink(InviteCodeType.Permanent)} > {t('创建永久邀请码')} ); return (
{createdInvite ? (
{`${location.origin}/invite/${createdInvite.code}`}

) : ( handleCreateInviteLink(InviteCodeType.Normal)} overlay={menu} trigger={['click']} > {t('创建链接')} )}
); } ); CreateInviteCode.displayName = 'CreateInviteCode';