From 7951e095c5238768023ee93c273fc58aaa856dc4 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sat, 31 Jul 2021 19:58:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=82=80=E8=AF=B7=E6=A8=A1?= =?UTF-8?q?=E6=80=81=E6=A1=86=E5=85=A5=E5=8F=A3=E4=B8=8E=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/SectionHeader.tsx | 9 +++++-- web/src/components/modals/GroupInvite.tsx | 25 +++++++++++++++---- .../routes/Main/Content/Group/GroupHeader.tsx | 11 +++----- .../Content/Group/useGroupHeaderAction.tsx | 12 +++++++++ 4 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 web/src/routes/Main/Content/Group/useGroupHeaderAction.tsx diff --git a/web/src/components/SectionHeader.tsx b/web/src/components/SectionHeader.tsx index 666e78c3..02c042f3 100644 --- a/web/src/components/SectionHeader.tsx +++ b/web/src/components/SectionHeader.tsx @@ -1,6 +1,7 @@ import React, { useState } from 'react'; import { Dropdown } from 'antd'; import { Icon } from '@iconify/react'; +import clsx from 'clsx'; interface SectionHeaderProps { menu?: React.ReactElement; @@ -13,7 +14,6 @@ export const SectionHeader: React.FC = React.memo(
{React.isValidElement(props.menu) ? ( = React.memo( >
{props.children}
- +
diff --git a/web/src/components/modals/GroupInvite.tsx b/web/src/components/modals/GroupInvite.tsx index 20c1bb83..68c2b8c0 100644 --- a/web/src/components/modals/GroupInvite.tsx +++ b/web/src/components/modals/GroupInvite.tsx @@ -49,15 +49,30 @@ export const GroupInvite: React.FC = React.memo((props) => { 或者创建链接并发送给外部好友 */} -
创建链接并发送给外部好友
+
+ 创建链接并发送给外部好友 +
{isValidStr(inviteLink) ? ( - - {inviteLink} - +
+ + {inviteLink} + +

该邀请连接将会于7天后过期

+
) : ( - )} diff --git a/web/src/routes/Main/Content/Group/GroupHeader.tsx b/web/src/routes/Main/Content/Group/GroupHeader.tsx index 0ea256e5..7ffe1c8b 100644 --- a/web/src/routes/Main/Content/Group/GroupHeader.tsx +++ b/web/src/routes/Main/Content/Group/GroupHeader.tsx @@ -4,6 +4,7 @@ import _isNil from 'lodash/isNil'; // import { useGroupHeaderAction } from './useGroupHeaderAction'; import { useGroupInfo, useTranslation } from 'tailchat-shared'; import { SectionHeader } from '@/components/SectionHeader'; +import { useGroupHeaderAction } from './useGroupHeaderAction'; interface GroupHeaderProps { groupId: string; @@ -13,12 +14,7 @@ export const GroupHeader: React.FC = React.memo((props) => { const groupInfo = useGroupInfo(groupId); const { t } = useTranslation(); - // const { - // handleShowGroupInfo, - // handleShowInvite, - // handleCreateGroupPanel, - // handleQuitGroup, - // } = useGroupHeaderAction(groupInfo!); + const { handleInviteUser } = useGroupHeaderAction(groupId); if (_isNil(groupInfo)) { return null; @@ -26,11 +22,10 @@ export const GroupHeader: React.FC = React.memo((props) => { const menu = ( - {/* TODO */} console.log('查看详情')}> {t('查看详情')} - console.log('邀请用户')}> + {t('邀请用户')} diff --git a/web/src/routes/Main/Content/Group/useGroupHeaderAction.tsx b/web/src/routes/Main/Content/Group/useGroupHeaderAction.tsx new file mode 100644 index 00000000..f4e13b06 --- /dev/null +++ b/web/src/routes/Main/Content/Group/useGroupHeaderAction.tsx @@ -0,0 +1,12 @@ +import { openModal } from '@/components/Modal'; +import { GroupInvite } from '@/components/modals/GroupInvite'; +import React from 'react'; +import { useCallback } from 'react'; + +export function useGroupHeaderAction(groupId: string) { + const handleInviteUser = useCallback(() => { + openModal(); + }, [groupId]); + + return { handleInviteUser }; +}