Gigi
51c364ea53
feat(article): instant preview from blog cards - show title, image, summary, date immediately via navigation state while content loads
2025-10-22 15:33:37 +02:00
Gigi
4d032372dc
fix(explore): show blog post skeletons instead of spinner when loading writings tab
2025-10-22 15:31:19 +02:00
Gigi
48b5aa3a30
feat(article): instant load from eventStore when clicking bookmark cards - check store by coordinate before relay query
2025-10-22 15:29:08 +02:00
Gigi
d4483a2f91
fix(lint): resolve eslint warnings in useArticleLoader - add comment for empty catch, use settingsRef consistently
2025-10-22 15:26:16 +02:00
Gigi
c62cb21962
fix(article): wire eventStore to useArticleLoader for instant local-first loads; keep SW enabled in prod for PWA
2025-10-22 15:24:24 +02:00
Gigi
3f7d726ae6
feat(article): local-first streaming loader using eventStore + queryEvents in useArticleLoader; emit immediately on first store/relay hit; finalize on EOSE
2025-10-22 15:22:39 +02:00
Gigi
ac0e5eb585
fix(article): add reliable-relay fallback (nostr.band, primal, damus, nos.lol) when first parallel query returns no events
2025-10-22 14:03:47 +02:00
Gigi
5a0dd49e4e
fix(sw): disable Service Worker in dev and register non-module SW only in production to avoid stale cached HTML causing mismatched content
2025-10-22 14:01:53 +02:00
Gigi
d067193f21
fix(reader): force re-mount of markdown preview and rendered HTML per-content to eliminate stale display when switching articles
2025-10-22 13:46:57 +02:00
Gigi
774e2ba67c
fix(reader): clear markdown render on change and add request guards to external URL loader to prevent stale content
2025-10-22 13:45:41 +02:00
Gigi
6f1c31058f
fix(reader): guard against stale article fetches overwriting current content/highlights via requestId in useArticleLoader
2025-10-22 13:41:46 +02:00
Gigi
7551a05aee
fix(article): prevent re-fetch on settings change by memoizing via ref in useArticleLoader
2025-10-22 13:38:24 +02:00
Gigi
df485b883d
fix(article): query union of naddr relay hints and configured relays to prevent post-load ‘Article not found’ refresh
2025-10-22 13:35:59 +02:00
Gigi
6f428af1bc
docs: update CHANGELOG for v0.10.12
2025-10-22 13:32:05 +02:00
Gigi
e821aaf058
chore: bump version to 0.10.12
v0.10.12
2025-10-22 13:30:37 +02:00
Gigi
a84d439489
fix: properly deduplicate web bookmarks by d-tag
...
- Web bookmarks (kind:39701) are replaceable events and should be deduplicated by d-tag
- Update dedupeNip51Events to include kind:39701 in d-tag deduplication logic
- Use coordinate format (kind:pubkey:d-tag) for web bookmark IDs instead of event IDs
- Ensures same URL bookmarked multiple times only appears once
- Keeps newest version when duplicates exist
2025-10-22 13:28:36 +02:00
Gigi
67bf7e017d
fix: make profile avatar button same size as other icon buttons on mobile
...
- Add mobile media query to profile-avatar-button for consistent sizing
- Use --min-touch-target (44px) on mobile to match IconButton components
- Ensures consistent touch target size across all sidebar buttons
2025-10-22 13:26:20 +02:00
Gigi
e47419a0b8
feat: update explore icon to fa-person-hiking and reorder sidebar buttons
...
- Change explore icon from fa-newspaper to fa-person-hiking in SidebarHeader and Explore components
- Switch positions of settings and explore buttons in sidebar navigation
- Remove all console.log statements from bookmarkController and bookmarkProcessing
- Update CHANGELOG.md with v0.10.11 changes
2025-10-22 13:25:34 +02:00
Gigi
2dda52c30f
chore: bump version to 0.10.11
v0.10.11
2025-10-22 13:19:36 +02:00
Gigi
2e0a493243
fix(bookmarks): sort by display time (created_at || listUpdatedAt) desc; nulls last
2025-10-22 13:07:37 +02:00
Gigi
2e955e9bed
refactor(bookmarks): never default timestamps to now; allow nulls and sort nulls last; render empty when missing
2025-10-22 13:04:24 +02:00
Gigi
538cbd2296
fix(bookmarks): show sane dates using created_at fallback to listUpdatedAt; guard formatters
2025-10-22 12:54:26 +02:00
Gigi
c17eab5a47
fix(router): route /me/reading-list -> /me/bookmarks to render Bookmarks view
2025-10-22 12:49:23 +02:00
Gigi
b3c61ba635
fix: update Me.tsx bookmarks tab to use dynamic filter titles and chronological sorting
2025-10-22 12:46:16 +02:00
Gigi
3bfa750a0c
fix: update Me.tsx to use faClock icon instead of faBars
2025-10-22 12:42:42 +02:00
Gigi
d1f7e549c2
fix: change bookmark URL from /me/reading-list to /me/bookmarks
2025-10-22 12:33:05 +02:00
Gigi
0fec120410
debug: add targeted logging to diagnose listUpdatedAt timestamp issue
2025-10-22 12:31:53 +02:00
Gigi
9b21075a9b
refactor: remove excessive debug logging
2025-10-22 12:29:09 +02:00
Gigi
4f78ee4794
fix: preserve content created_at, add listUpdatedAt for sorting by when bookmarked
2025-10-22 12:26:01 +02:00
Gigi
8bb871913b
refactor: remove synthetic added_at field, use created_at from bookmark list event
2025-10-22 12:18:43 +02:00
Gigi
49eb6855ca
debug: add console logging for bookmark timestamp and sorting analysis
2025-10-22 12:14:36 +02:00
Gigi
748b2e1631
fix: correct added_at timestamp to use bookmark list creation time, not content creation time
2025-10-22 12:12:44 +02:00
Gigi
9fa83a2a1c
fix: ensure robust sorting of merged bookmarks with fallback timestamps
2025-10-22 12:07:32 +02:00
Gigi
d45705e8e4
feat: use clock icon (regular style) for chronological bookmark view
2025-10-22 12:05:57 +02:00
Gigi
83c170b4e2
fix: ensure bookmarks are consistently sorted chronologically with useMemo
2025-10-22 12:04:41 +02:00
Gigi
8459853c43
refactor: remove bookmark count from section headings
2025-10-22 12:02:24 +02:00
Gigi
f7eeb080e1
feat: update bookmark heading based on selected filter
2025-10-22 12:01:09 +02:00
Gigi
2769b2dba7
fix: remove unused faTimes import
2025-10-22 11:51:17 +02:00
Gigi
46636b8e6a
feat: move profile picture to first position (left-aligned) with consistent sizing
2025-10-22 11:50:16 +02:00
Gigi
92a85761ef
feat: make highlight count clickable to open highlights sidebar
2025-10-22 11:48:41 +02:00
Gigi
f6a325f7e9
feat: hide close/collapse sidebar buttons on mobile
2025-10-22 11:45:51 +02:00
Gigi
a501fa816f
feat: sort bookmarks chronologically by displayed date (newest first)
2025-10-22 11:43:30 +02:00
Gigi
5ece80b8e9
feat: change default bookmark view to flat chronological list
2025-10-22 11:42:12 +02:00
Gigi
87c017b2c2
docs: update CHANGELOG for v0.10.10
2025-10-22 11:38:09 +02:00
Gigi
550ee415f0
chore: bump version to 0.10.10
v0.10.10
2025-10-22 11:37:08 +02:00
Gigi
aaaf226623
Merge pull request #24 from dergigi/controllers-and-fetching
...
Replace timeouts with streaming controllers and fix bookmark hydration
2025-10-22 11:36:35 +02:00
Gigi
23ce0c9d4c
chore: remove debug logging from bookmark controller
2025-10-22 11:33:41 +02:00
Gigi
dddf8575c4
fix: resolve TypeScript type errors in bookmark hydration promises
...
Add .then() handlers to convert Promise<NostrEvent[]> to Promise<void>
for compatibility with Promise<void>[] array type.
2025-10-22 11:30:53 +02:00
Gigi
3ab0610e1e
fix: prevent cascading hydration loops in bookmark controller
...
Run all coordinate queries in parallel with Promise.all instead of
sequential awaits. This prevents each query from triggering a rebuild
that causes another hydration cycle, which was creating infinite loops.
The issue was that awaiting each query sequentially would:
1. Fetch articles for author A
2. Call onProgress, rebuild bookmarks
3. Trigger new hydration because coordinates changed
4. Repeat indefinitely
Now all queries start at once and stream results as they arrive,
matching the original loader behavior.
2025-10-22 11:27:12 +02:00
Gigi
e40f820fdc
fix: handle empty d-tags separately in bookmark hydration
...
Separate fetching of articles with empty vs non-empty d-tags to work
around relay filter handling issues. For empty d-tags, fetch all events
of that kind/author and filter client-side.
2025-10-22 11:25:30 +02:00