mirror of
https://github.com/dergigi/boris.git
synced 2026-01-17 05:44:24 +01:00
Implemented centralized bookmark loading system: - Bookmarks loaded in App.tsx with streaming + auto-decrypt pattern - Load triggers: login, app mount, manual refresh only - No redundant fetching on route changes Changes: 1. bookmarkService.ts: Refactored fetchBookmarks for streaming - Events stream with onEvent callback - Auto-decrypt encrypted content (NIP-04/NIP-44) as events arrive - Progressive UI updates during loading 2. App.tsx: Added centralized bookmark state - bookmarks and bookmarksLoading state in AppRoutes - loadBookmarks function with streaming support - Load on mount if account exists (app reopen) - Load when activeAccount changes (login) - handleRefreshBookmarks for manual refresh - Pass props to all Bookmarks components 3. Bookmarks.tsx: Accept bookmarks as props - Receive bookmarks, bookmarksLoading, onRefreshBookmarks - Pass onRefreshBookmarks to useBookmarksData 4. useBookmarksData.ts: Simplified to accept bookmarks as props - Removed bookmark fetching logic - Removed handleFetchBookmarks function - Accept onRefreshBookmarks callback - Use onRefreshBookmarks in handleRefreshAll 5. Me.tsx: Removed fallback bookmark loading - Removed fetchBookmarks import and calls - Use bookmarks directly from props (centralized source) Benefits: - Single source of truth for bookmarks - No duplicate fetching across components - Streaming + auto-decrypt for better UX - Simpler, more maintainable code - DRY principle: one place for bookmark loading