diff --git a/client/web/src/hooks/useUserPreference.ts b/client/web/src/hooks/useUserPreference.ts
index 6b256172..4bd7c07c 100644
--- a/client/web/src/hooks/useUserPreference.ts
+++ b/client/web/src/hooks/useUserPreference.ts
@@ -2,6 +2,11 @@ import { useSessionStorageState } from './useSessionStorageState';
import { useMemoizedFn } from 'tailchat-shared';
interface UserSessionPerference {
+ /**
+ * 用户最后访问个人的面板地址
+ * 用于切换回个人菜单时回到最近一个
+ */
+ personLastVisitPanelUrl?: string;
/**
* 用户最后访问群组的面板id
* 用于切换群组时回到最后一个
diff --git a/client/web/src/routes/Main/Content/Personal/index.tsx b/client/web/src/routes/Main/Content/Personal/index.tsx
index fba07a53..de8a584f 100644
--- a/client/web/src/routes/Main/Content/Personal/index.tsx
+++ b/client/web/src/routes/Main/Content/Personal/index.tsx
@@ -1,5 +1,7 @@
+import { useUserSessionPreference } from '@/hooks/useUserPreference';
import { pluginCustomPanel } from '@/plugin/common';
-import React from 'react';
+import React, { useEffect } from 'react';
+import { useLocation } from 'react-router';
import { Navigate, Route, Routes } from 'react-router-dom';
import { PageContent } from '../PageContent';
import { PersonalConverse } from './Converse';
@@ -8,6 +10,15 @@ import { PluginsPanel } from './Plugins';
import { PersonalSidebar } from './Sidebar';
export const Personal: React.FC = React.memo(() => {
+ const [lastVisitPanelUrl, setLastVisitPanelUrl] = useUserSessionPreference(
+ 'personLastVisitPanelUrl'
+ );
+ const location = useLocation();
+
+ useEffect(() => {
+ setLastVisitPanelUrl(location.pathname);
+ }, [location.pathname]);
+
return (
}>
@@ -24,7 +35,16 @@ export const Personal: React.FC = React.memo(() => {
/>
))}
- } />
+
+ }
+ />
);