R

recent-data

by @lobehubv
4.7(28)

セッションストレージからの最近のデータ(最近のトピック、リソース、ページなど)の使用方法を指導し、アプリケーションのトップレベルでの初期化方法を提供します。

Real-time DataData StreamingData AnalyticsTime-Series DataData MonitoringGitHub
インストール方法
npx skills add lobehub/lobehub --skill recent-data
compare_arrows

Before / After 効果比較

1
使用前

`recent-data` スキルがない場合、ユーザーは最近アクセスしたトピック、リソース、またはページを振り返ったり再利用したりする必要がある際、ブラウジング履歴やブックマークを手動で検索したり、アプリケーション内で段階的にナビゲートしたりすることがよくあります。これは時間がかかるだけでなく、情報量が多い場合には迷子になりやすく、作業効率とユーザーエクスペリエンスを低下させます。

使用後

`recent-data` スキルを使用すると、システムは最近アクセスしたトピック、リソース、およびページを自動的に記録し、迅速なアクセスを提供できます。ユーザーはワンクリックで必要な情報を取得でき、繰り返し検索したりナビゲートしたりする必要がなくなり、情報検索の効率とワークフローの流動性が大幅に向上します。

description SKILL.md

recent-data

Recent Data Usage Guide

Recent data (recentTopics, recentResources, recentPages) is stored in session store.

Initialization

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 />;
};

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);

Features

  • Auto login detection: Only loads when user is logged in

  • Data caching: Stored in store, no repeated loading

  • Auto refresh: SWR refreshes on focus (5-minute interval)

  • Type safe: Full TypeScript types

Best Practices

  • Initialize all recent data at app top-level

  • Use selectors to read from store

  • For multi-component use, prefer Method 1

  • Use selectors for render optimization

Weekly Installs303Repositorylobehub/lobehubGitHub Stars73.8KFirst SeenJan 27, 2026Security AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled oncodex259opencode257gemini-cli256github-copilot242claude-code226cursor218

forumユーザーレビュー (0)

レビューを書く

効果
使いやすさ
ドキュメント
互換性

レビューなし

統計データ

インストール数671
評価4.7 / 5.0
バージョン
更新日2026年3月17日
比較事例1 件

ユーザー評価

4.7(28)
5
0%
4
0%
3
0%
2
0%
1
0%

この Skill を評価

0.0

対応プラットフォーム

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

タイムライン

作成2026年3月17日
最終更新2026年3月17日