recent-data by lobehub/lobe-chat
npx skills add https://github.com/lobehub/lobe-chat --skill recent-data近期数据(recentTopics、recentResources、recentPages)存储在会话存储中。
在应用顶层(例如 RecentHydration.tsx):
import { useInitRecentTopic } from '@/hooks/useInitRecentTopic';
import { useInitRecentResource } from '@/hooks/useInitRecentResource';
import { useInitRecentPage } from '@/hooks/useInitRecentPage';
const App = () => {
useInitRecentTopic();
useInitRecentResource();
useInitRecentPage();
return <YourComponents />;
};
import { useSessionStore } from '@/store/session';
import { recentSelectors } from '@/store/session/selectors';
const Component = () => {
const recentTopics = useSessionStore(recentSelectors.recentTopics);
const isInit = useSessionStore(recentSelectors.isRecentTopicsInit);
if (!isInit) return <div>加载中...</div>;
return (
<div>
{recentTopics.map((topic) => (
<div key={topic.id}>{topic.title}</div>
))}
</div>
);
};
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
const { data: recentTopics, isLoading } = useInitRecentTopic();
const recentTopics = useSessionStore(recentSelectors.recentTopics);
// 类型: RecentTopic[]
const isInit = useSessionStore(recentSelectors.isRecentTopicsInit);
// 类型: boolean
RecentTopic 类型:
interface RecentTopic {
agent: {
avatar: string | null;
backgroundColor: string | null;
id: string;
title: string | null;
} | null;
id: string;
title: string | null;
updatedAt: Date;
}
const recentResources = useSessionStore(recentSelectors.recentResources);
// 类型: FileListItem[]
const isInit = useSessionStore(recentSelectors.isRecentResourcesInit);
const recentPages = useSessionStore(recentSelectors.recentPages);
const isInit = useSessionStore(recentSelectors.isRecentPagesInit);
每周安装量
144
代码仓库
GitHub 星标
74.2K
首次出现
2026年1月24日
安全审计
安装于
claude-code135
opencode128
gemini-cli125
antigravity121
cursor120
codex119
Recent data (recentTopics, recentResources, recentPages) is stored in session store.
In app top-level (e.g., RecentHydration.tsx):
import { useInitRecentTopic } from '@/hooks/useInitRecentTopic';
import { useInitRecentResource } from '@/hooks/useInitRecentResource';
import { useInitRecentPage } from '@/hooks/useInitRecentPage';
const App = () => {
useInitRecentTopic();
useInitRecentResource();
useInitRecentPage();
return <YourComponents />;
};
import { useSessionStore } from '@/store/session';
import { recentSelectors } from '@/store/session/selectors';
const Component = () => {
const recentTopics = useSessionStore(recentSelectors.recentTopics);
const isInit = useSessionStore(recentSelectors.isRecentTopicsInit);
if (!isInit) return <div>Loading...</div>;
return (
<div>
{recentTopics.map((topic) => (
<div key={topic.id}>{topic.title}</div>
))}
</div>
);
};
const { data: recentTopics, isLoading } = useInitRecentTopic();
const recentTopics = useSessionStore(recentSelectors.recentTopics);
// Type: RecentTopic[]
const isInit = useSessionStore(recentSelectors.isRecentTopicsInit);
// Type: boolean
RecentTopic type:
interface RecentTopic {
agent: {
avatar: string | null;
backgroundColor: string | null;
id: string;
title: string | null;
} | null;
id: string;
title: string | null;
updatedAt: Date;
}
const recentResources = useSessionStore(recentSelectors.recentResources);
// Type: FileListItem[]
const isInit = useSessionStore(recentSelectors.isRecentResourcesInit);
const recentPages = useSessionStore(recentSelectors.recentPages);
const isInit = useSessionStore(recentSelectors.isRecentPagesInit);
Weekly Installs
144
Repository
GitHub Stars
74.2K
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
claude-code135
opencode128
gemini-cli125
antigravity121
cursor120
codex119
World Monitor 智能仪表板:AI驱动的全球实时监控与地缘风险分析平台
621 周安装