Commit Graph

26 Commits

Author SHA1 Message Date
0e9007af5f fix: preserve case sensitivity for hashtag filtering in useBlogPostsByHashtag 2025-12-22 21:28:23 +01:00
mroxso
301b8b6125 feat: add follower and following count functionality to ProfileView (#37)
* feat: add follower and following count functionality to ProfileView

* Invalidate following-count cache on follow/unfollow actions (#53)

* Initial plan

* fix: invalidate following-count cache on follow/unfollow

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* refactor: use specific query keys for cache invalidation

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-29 20:39:52 +01:00
mroxso
a761261e33 feat: NIP-84 Highlights (#31)
* feat: implement highlights feature with dedicated HighlightsPage, HighlightsSection, and Highlight components

* fix: replace RelaySelector with RelayListManager in HighlightsPage

* fix: replace RelaySelector with RelayListManager in ProfileView component

* fix: remove unused emptyStateMessage prop from HighlightsSection and clean imports in HighlightsPage

* fix: comment out unused Separator components in ArticleView

* fix: remove loading skeleton from HighlightsSection component

* Update src/components/ArticleView.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-29 20:19:48 +01:00
2ca2552bfc fix: simplify synced data check in useInterestSets hook 2025-11-26 20:23:56 +01:00
mroxso
846d5b1164 feat: add support for user-defined interest sets (NIP-51) (#43)
* feat: add support for user-defined interest sets in AppConfig and sync from Nostr

* feat: initialize interestSets in default AppConfig for TestApp

* Add timestamp tracking to interest sets metadata to prevent redundant syncs (#46)

* Initial plan

* feat: add timestamp tracking to interest sets to prevent redundant syncs

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Update src/components/NostrSync.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix missing dependency in interest sets sync useEffect (#47)

* Initial plan

* fix: add missing dependency to NostrSync useEffect for interest sets

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Refactor useInterestSets to use NostrSync as primary source (#48)

* Initial plan

* Remove redundant interest sets sync from NostrSync and AppConfig

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Refactor useInterestSets to use NostrSync as primary source

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Fix NostrSync dependency array and timestamp format

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Add AppContext integration for interest set deletion and publishing

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>
Co-authored-by: highperfocused <highperfocused@pm.me>

* Update src/components/NostrSync.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/hooks/usePublishInterestSet.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/hooks/useInterestSets.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/components/NostrSync.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix interestSetsMetadata updatedAt initialization to handle undefined values

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-26 19:22:42 +01:00
mroxso
e7035da411 Implement Tag page (#36)
* feat: add tag browsing functionality with dedicated TagPage and routing updates

* feat: implement infinite scrolling and deduplication for hashtag posts

* Update src/pages/TagPage.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/hooks/useBlogPostsByHashtag.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Extract duplicated event deduplication logic into shared utility (#41)

* Initial plan

* refactor: extract deduplication logic into reusable utility function

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-22 22:23:05 +01:00
mroxso
325210886b NIP-51: Interest Set (#39)
* feat: implement Interest Sets management and display in settings and homepage

* Update src/pages/HomePage.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/hooks/useInterestSets.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix whitespace preservation in Interest Set identifier publishing (#40)

* Initial plan

* fix: trim identifier before publishing interest set

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Update src/components/InterestSetsManager.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-22 21:51:00 +01:00
Copilot
512587b18c Implement NIP-89 client tag display for articles (#34)
* Initial plan

* Implement NIP-89 client tag display and improved tag format

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>
2025-11-20 22:01:47 +01:00
mroxso
43498de392 Mkstack upgrade (#32)
* mkstack upgrade

* more changes wip

* refactor: replace RelaySelector with RelayListManager in ProfileView, BookmarksPage, FollowingPage, and Nip05ProfilePage

* feat: add buffer dependency to package.json and package-lock.json

* feat: add SettingsPage and integrate into AppRouter and Header

* feat: refactor ZapButton to use Button component for improved styling

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
2025-11-18 22:44:05 +01:00
2dbae6d144 fix: enhance sorting of blog posts by published_at tag for better accuracy 2025-10-25 19:01:34 +02:00
f6b6daa39b refactor: replace useBlogPost with useLongFormContentNote across components for consistency 2025-10-20 15:39:27 +02:00
adf54e142c refactor: improve sorting of blog posts by published_at tag 2025-10-20 15:34:52 +02:00
6748fe82a8 fix: include search term in regular search query for improved results 2025-10-19 22:20:53 +02:00
Copilot
568f10761e Add comprehensive SEO optimization with dynamic meta tags and social sharing support (#23)
* Initial plan

* Add SEO optimization with dynamic meta tags for all pages

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Fix SEO meta tags to use useSeoMeta correctly without useEffect

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Add SEO verification documentation

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Add comprehensive SEO examples documentation

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

* Refactor routing to use HomePage component and update blog post fetching limit

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>
Co-authored-by: highperfocused <highperfocused@pm.me>
2025-10-19 14:20:46 +02:00
b839de7a3b Add Article by d-tag route and implement useBlogPostByDTag hook
- Introduced a new route for articles identified by d-tag in AppRouter.
- Created useBlogPostByDTag hook to fetch blog posts by d-tag.
- Added ArticleByDTagPage component to display articles based on d-tag.
- Enhanced BlogPostPage to include JSON viewing functionality.
2025-10-07 21:34:55 +02:00
Copilot
734bd84191 Add Follow/Unfollow Button on Profile Page (NIP-02) (#14)
* Initial plan

* Implement Follow/Unfollow button on Profile Page (NIP-02)

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>
2025-10-06 19:13:53 +02:00
Copilot
4ca06f9237 Add Bookmarks Tab to Profile Page with NIP-51 Support (#12)
* Initial plan

* Add bookmarks tab to profile page with NIP-51 support

Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>
2025-10-06 18:59:12 +02:00
3fce6b7e4d Add FollowingPage component and related hooks; update routing and BlogHeader 2025-10-05 22:15:54 +02:00
mroxso
55e4d29588 Bookmarks (NIP-51) (#2)
* bookmarks nip-51 implementation pt1

* Add Bookmarks link to BlogHeader and remove unused BlogLayout import in BookmarksPage

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
2025-10-05 21:25:07 +02:00
mroxso
c6f8296cbe Editor (#1)
* add editor

* implement pt1

* Add Lexical plugins and update editor functionality in ProfessionalBlogPostForm

* Comment out client tag in usePublishBlogPost hook

---------

Co-authored-by: highperfocused <highperfocused@pm.me>
2025-10-05 19:44:33 +02:00
f4048af749 Update like counting logic in useReactions to exclude only "-" reactions 2025-10-05 17:36:47 +02:00
25a2af8735 Add LatestInHashtag component and integrate it into BlogHomePage; implement useBlogPostsByHashtag hook for fetching posts by hashtag 2025-10-05 17:20:30 +02:00
2a92b84f4c Enhance search functionality to support hashtag queries and update UI for search results display 2025-10-05 16:18:25 +02:00
ff4d5b3116 add search bar and page // fixed some design issues 2025-10-05 15:57:54 +02:00
1a652c1dbe Add NIP-19 routing and implement Profile, Note, and Event pages 2025-10-05 15:34:14 +02:00
ff36189c22 initial code commit 2025-10-05 14:49:53 +02:00