From d8b73722d549fbbfeb04d9b92a9a8e29919eb0cc Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Wed, 22 Sep 2021 16:34:34 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=88=9B=E5=BB=BA=E5=A4=9A?= =?UTF-8?q?=E4=BA=BA=E4=BC=9A=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/model/converse.ts | 4 ++-- .../components/modals/CreateDMConverse.tsx | 20 ++++++++++++++----- .../components/modals/SettingsView/System.tsx | 1 - .../Content/Personal/Friends/FriendList.tsx | 2 +- .../routes/Main/Content/Personal/Sidebar.tsx | 4 ++-- 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/shared/model/converse.ts b/shared/model/converse.ts index bbb52b09..3c54e01c 100644 --- a/shared/model/converse.ts +++ b/shared/model/converse.ts @@ -12,10 +12,10 @@ export interface ChatConverseInfo { * 如果已创建则返回之前的 */ export async function createDMConverse( - targetId: string + memberIds: string[] ): Promise { const { data } = await request.post('/api/chat/converse/createDMConverse', { - targetId, + memberIds, }); return data; diff --git a/web/src/components/modals/CreateDMConverse.tsx b/web/src/components/modals/CreateDMConverse.tsx index 9a72fa4b..145dcc0e 100644 --- a/web/src/components/modals/CreateDMConverse.tsx +++ b/web/src/components/modals/CreateDMConverse.tsx @@ -1,8 +1,9 @@ import { Button } from 'antd'; import React, { useState } from 'react'; -import { t } from 'tailchat-shared'; +import { useHistory } from 'react-router'; +import { createDMConverse, t, useAsyncFn } from 'tailchat-shared'; import { FriendPicker } from '../FriendPicker'; -import { ModalWrapper } from '../Modal'; +import { closeModal, ModalWrapper } from '../Modal'; interface CreateDMCOnverseProps { /** @@ -11,10 +12,17 @@ interface CreateDMCOnverseProps { */ withoutUserIds?: string[]; } -export const CreateDMCOnverse: React.FC = React.memo( +export const CreateDMConverse: React.FC = React.memo( (props) => { const { withoutUserIds = [] } = props; const [selectedFriendIds, setSelectedFriendIds] = useState([]); + const history = useHistory(); + + const [{ loading }, handleCreate] = useAsyncFn(async () => { + const converse = await createDMConverse([...selectedFriendIds]); + closeModal(); + history.push(`/main/personal/converse/${converse._id}`); + }, [selectedFriendIds]); return ( @@ -25,10 +33,12 @@ export const CreateDMCOnverse: React.FC = React.memo( />
- +
); } ); -CreateDMCOnverse.displayName = 'CreateDMCOnverse'; +CreateDMConverse.displayName = 'CreateDMConverse'; diff --git a/web/src/components/modals/SettingsView/System.tsx b/web/src/components/modals/SettingsView/System.tsx index 50ecfb6a..08bf96b0 100644 --- a/web/src/components/modals/SettingsView/System.tsx +++ b/web/src/components/modals/SettingsView/System.tsx @@ -1,4 +1,3 @@ -import DevContainer from '@/components/DevContainer'; import { FullModalField } from '@/components/FullModal/Field'; import { Select } from 'antd'; import React, { useCallback } from 'react'; diff --git a/web/src/routes/Main/Content/Personal/Friends/FriendList.tsx b/web/src/routes/Main/Content/Personal/Friends/FriendList.tsx index b9a79cdb..9aeee819 100644 --- a/web/src/routes/Main/Content/Personal/Friends/FriendList.tsx +++ b/web/src/routes/Main/Content/Personal/Friends/FriendList.tsx @@ -26,7 +26,7 @@ export const FriendList: React.FC = React.memo(() => { const [, handleCreateConverse] = useAsyncRequest( async (targetId: string) => { - const converse = await createDMConverse(targetId); + const converse = await createDMConverse([targetId]); history.push(`/main/personal/converse/${converse._id}`); }, [history] diff --git a/web/src/routes/Main/Content/Personal/Sidebar.tsx b/web/src/routes/Main/Content/Personal/Sidebar.tsx index 101252e3..496041eb 100644 --- a/web/src/routes/Main/Content/Personal/Sidebar.tsx +++ b/web/src/routes/Main/Content/Personal/Sidebar.tsx @@ -4,7 +4,7 @@ import { SidebarItem } from '../SidebarItem'; import { t, useDMConverseList } from 'tailchat-shared'; import { SidebarDMItem } from './SidebarDMItem'; import { openModal } from '@/components/Modal'; -import { CreateDMCOnverse } from '@/components/modals/CreateDMConverse'; +import { CreateDMConverse } from '@/components/modals/CreateDMConverse'; import DevContainer from '@/components/DevContainer'; const SidebarSection: React.FC<{ @@ -47,7 +47,7 @@ export const PersonalSidebar: React.FC = React.memo(() => { openModal()} + onClick={() => openModal()} /> }