mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-28 05:39:34 +08:00
refactor: refactor hooks
This commit is contained in:
@@ -3,15 +3,13 @@ import type { Menu } from '/@/router/types';
|
||||
import { ref, onBeforeMount, unref, Ref, nextTick } from 'vue';
|
||||
|
||||
import { getMenus } from '/@/router/menus';
|
||||
import { KeyCodeEnum } from '/@/enums/keyCodeEnum';
|
||||
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { filter, forEach } from '/@/utils/helper/treeHelper';
|
||||
|
||||
import { useDebounce } from '/@/hooks/core/useDebounce';
|
||||
import { useGo } from '/@/hooks/web/usePage';
|
||||
import { useScrollTo } from '/@/hooks/event/useScrollTo';
|
||||
import { useKeyPress } from '/@/hooks/event/useKeyPress';
|
||||
import { onKeyStroke, useDebounceFn } from '@vueuse/core';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
|
||||
export interface SearchResult {
|
||||
@@ -41,7 +39,7 @@ export function useMenuSearch(refs: Ref<HTMLElement[]>, scrollWrap: Ref<ElRef>,
|
||||
|
||||
const { t } = useI18n();
|
||||
const go = useGo();
|
||||
const [handleSearch] = useDebounce(search, 200);
|
||||
const handleSearch = useDebounceFn(search, 200);
|
||||
|
||||
onBeforeMount(async () => {
|
||||
const list = await getMenus();
|
||||
@@ -146,23 +144,10 @@ export function useMenuSearch(refs: Ref<HTMLElement[]>, scrollWrap: Ref<ElRef>,
|
||||
emit('close');
|
||||
}
|
||||
|
||||
useKeyPress(['enter', 'up', 'down', 'esc'], (events) => {
|
||||
const keyCode = events.keyCode;
|
||||
switch (keyCode) {
|
||||
case KeyCodeEnum.UP:
|
||||
handleUp();
|
||||
break;
|
||||
case KeyCodeEnum.DOWN:
|
||||
handleDown();
|
||||
break;
|
||||
case KeyCodeEnum.ENTER:
|
||||
handleEnter();
|
||||
break;
|
||||
case KeyCodeEnum.ESC:
|
||||
handleClose();
|
||||
break;
|
||||
}
|
||||
});
|
||||
onKeyStroke('Enter', handleEnter);
|
||||
onKeyStroke('ArrowUp', handleUp);
|
||||
onKeyStroke('ArrowDown', handleDown);
|
||||
onKeyStroke('Escape', handleClose);
|
||||
|
||||
return { handleSearch, searchResult, keyword, activeIndex, handleMouseenter, handleEnter };
|
||||
}
|
||||
|
Reference in New Issue
Block a user