recent-data

Session store integration for tracking recently accessed topics, resources, and pages. Three initialization hooks ( useInitRecentTopic , useInitRecentResource , useInitRecentPage ) load recent data into session store at app startup Read recent data via selectors ( recentSelectors.recentTopics , etc.) or hook return values; selectors are recommended for multi-component access Built-in features include auto login detection, data caching, SWR-based auto-refresh on focus, and full TypeScript typing RecentTopic includes agent metadata (avatar, background color, title) and updatedAt timestamp; RecentResources and RecentPages follow similar patterns

INSTALLATION
npx skills add https://github.com/lobehub/lobehub --skill recent-data
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2b

const App = () => {

useInitRecentTopic();

useInitRecentResource();

useInitRecentPage();

return ;

};

## Usage

### Method 1: Read from Store (Recommended)

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>

);

};


### Method 2: Use Hook Return (Single component)

const { data: recentTopics, isLoading } = useInitRecentTopic();


## Available Selectors

### Recent Topics

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;

}


### Recent Resources

const recentResources = useSessionStore(recentSelectors.recentResources);

// Type: FileListItem[]

const isInit = useSessionStore(recentSelectors.isRecentResourcesInit);


### Recent Pages

const recentPages = useSessionStore(recentSelectors.recentPages);

const isInit = useSessionStore(recentSelectors.isRecentPagesInit);

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card