mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-31 13:03:49 +08:00
### What problem does this PR solve? Refactor: UmiJs -> Vite+React ### Type of change - [x] Refactoring --------- Co-authored-by: Liu An <asiro@qq.com>
32 lines
878 B
TypeScript
32 lines
878 B
TypeScript
import { useLogout } from '@/hooks/use-login-request';
|
|
import { Routes } from '@/routes';
|
|
import { useCallback, useEffect, useState } from 'react';
|
|
import { useLocation, useNavigate } from 'react-router';
|
|
|
|
export const useHandleMenuClick = () => {
|
|
const navigate = useNavigate();
|
|
const [active, setActive] = useState<Routes>();
|
|
const { logout } = useLogout();
|
|
const location = useLocation();
|
|
useEffect(() => {
|
|
const path = (location.pathname.split('/')?.[2] || '') as Routes;
|
|
if (path) {
|
|
setActive(('/' + path) as Routes);
|
|
}
|
|
}, [location]);
|
|
|
|
const handleMenuClick = useCallback(
|
|
(key: Routes) => () => {
|
|
if (key === Routes.Logout) {
|
|
logout();
|
|
} else {
|
|
setActive(key);
|
|
navigate(`${Routes.UserSetting}${key}`);
|
|
}
|
|
},
|
|
[logout, navigate],
|
|
);
|
|
|
|
return { handleMenuClick, active, setActive };
|
|
};
|