refactor: 调整会话进行过滤,确保私信会话拿的是DM类型的会话数据

pull/13/head
moonrailgun 4 years ago
parent d13d773704
commit 803e01def3

@ -9,6 +9,7 @@ import _take from 'lodash/take';
import { useDebugValue, useMemo } from 'react'; import { useDebugValue, useMemo } from 'react';
import type { QuickActionContext } from './useQuickSwitcherActionContext'; import type { QuickActionContext } from './useQuickSwitcherActionContext';
import { getDMConverseName } from 'tailchat-shared'; import { getDMConverseName } from 'tailchat-shared';
import { ChatConverseType } from 'tailchat-shared/model/converse';
interface QuickAction { interface QuickAction {
key: string; key: string;
@ -36,10 +37,12 @@ const builtinActions: QuickAction[] = [
}, },
]; ];
function usePersonalConverseActions(): QuickAction[] { function useDMConverseActions(): QuickAction[] {
const userId = useUserId(); const userId = useUserId();
const converses = useAppSelector((state) => const dmConverses = useAppSelector((state) =>
Object.values(state.chat.converses) Object.values(state.chat.converses).filter(
(converse) => converse.type === ChatConverseType.DM
)
); );
const { value: personalConverseActions = [] } = useAsync(async () => { const { value: personalConverseActions = [] } = useAsync(async () => {
if (!isValidStr(userId)) { if (!isValidStr(userId)) {
@ -47,7 +50,7 @@ function usePersonalConverseActions(): QuickAction[] {
} }
return Promise.all( return Promise.all(
converses.map((converse) => dmConverses.map((converse) =>
getDMConverseName(userId, converse).then( getDMConverseName(userId, converse).then(
(converseName): QuickAction => ({ (converseName): QuickAction => ({
key: `qs#converse#${converse._id}`, key: `qs#converse#${converse._id}`,
@ -60,7 +63,7 @@ function usePersonalConverseActions(): QuickAction[] {
) )
) )
); );
}, [userId, converses.map((converse) => converse._id).join(',')]); }, [userId, dmConverses.map((converse) => converse._id).join(',')]);
useDebugValue(personalConverseActions); useDebugValue(personalConverseActions);
@ -72,7 +75,7 @@ function usePersonalConverseActions(): QuickAction[] {
* @param keyword * @param keyword
*/ */
export function useQuickSwitcherFilteredActions(keyword: string) { export function useQuickSwitcherFilteredActions(keyword: string) {
const allActions = [...builtinActions, ...usePersonalConverseActions()]; const allActions = [...builtinActions, ...useDMConverseActions()];
const filteredActions = useMemo(() => { const filteredActions = useMemo(() => {
return _take( return _take(

Loading…
Cancel
Save