mirror of https://github.com/msgbyte/tailchat
refactor: 快速切换功能的整理与拆分
parent
40001997a9
commit
64be97d07f
@ -0,0 +1,17 @@
|
||||
import { useHistory } from 'react-router';
|
||||
|
||||
export interface QuickActionContext {
|
||||
navigate: (url: string) => void;
|
||||
}
|
||||
|
||||
/**
|
||||
* 快速切换操作上下文信息
|
||||
*/
|
||||
export function useQuickSwitcherActionContext(): QuickActionContext {
|
||||
const history = useHistory();
|
||||
return {
|
||||
navigate: (url) => {
|
||||
history.push(url);
|
||||
},
|
||||
};
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
import { t } from 'tailchat-shared';
|
||||
import _take from 'lodash/take';
|
||||
import { useMemo } from 'react';
|
||||
import type { QuickActionContext } from './useQuickSwitcherActionContext';
|
||||
|
||||
interface QuickAction {
|
||||
key: string;
|
||||
label: string;
|
||||
action: (context: QuickActionContext) => void;
|
||||
}
|
||||
|
||||
const builtinActions: QuickAction[] = [
|
||||
{
|
||||
key: 'personal',
|
||||
label: t('个人主页'),
|
||||
action({ navigate }) {
|
||||
navigate('/main/personal/friends');
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'plugins',
|
||||
label: t('插件中心'),
|
||||
action({ navigate }) {
|
||||
navigate('/main/personal/plugins');
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
/**
|
||||
* 过滤快速搜索操作
|
||||
* @param keyword 关键字
|
||||
*/
|
||||
export function useQuickSwitcherFilteredActions(keyword: string) {
|
||||
const filteredActions = useMemo(() => {
|
||||
return _take(
|
||||
builtinActions.filter((action) => action.label.includes(keyword)),
|
||||
5
|
||||
);
|
||||
}, [keyword]);
|
||||
|
||||
return filteredActions;
|
||||
}
|
Loading…
Reference in New Issue