Commit Graph

3432 Commits

Author SHA1 Message Date
lemon dfd4fa6be7 fix: improve community member management 2026-05-11 11:11:07 -07:00
lemon 97d81f2295 refactor: split community creation into two steps
- CreateCommunityDialog now only publishes kind 34550 (name, image, description)
- New AddMemberDialog on the community detail page handles membership:
  - Founder can add moderators and members
  - Moderators can add members only
  - Badge definition (kind 30009) created lazily on first member add
  - Community definition republished once with all changes batched
  - Kind 8 badge awards published for each member
- Add Members button on Members tab, visible to rank 0 users
- Search dropdown moved outside ScrollArea to prevent clipping
2026-05-11 11:11:07 -07:00
lemon 91d50c2d83 feat: add community creation flow and improve discovery UX
- Add CreateCommunityDialog with name, image upload, description, and moderator type-ahead search
- Publish kind 30009 badge definition + kind 34550 community definition with d-tag collision check
- Context-aware FAB on My Communities tab opens the create dialog
- Default Search page tab to Communities instead of Posts
- Add Search to default sidebar order for new accounts
- Improve empty states on both Activities and My Communities tabs to guide users toward discovery
2026-05-11 11:11:07 -07:00
Sam Thomson d939934b7b Merge branch 'ui/gut-shapes' into 'main'
ui/gut-shapes

See merge request soapbox-pub/agora-3!20
2026-05-11 07:51:03 +00:00
sam e12716722a remove shape stuff 2026-05-11 14:49:11 +07:00
sam aa96c0089c blobbi-- 2026-05-08 11:59:00 +07:00
Sam Thomson da4116a1d1 Merge branch 'feat/fundraising' into 'main'
Add NIP-75 community fundraising goals

Closes #9

See merge request soapbox-pub/agora-3!12
2026-05-08 04:48:37 +00:00
lemon bd6852041e Cache feed events, keep pages on refetch, flag partial goal tallies
- Seed ['event', id] query cache from the community activity feed so
  embedded previews resolve without a second fetch.
- Add placeholderData and a 30-minute gcTime to the community activity
  feed so navigation and background refetches don't flash empty.
- Surface useGoalProgress's isPartial flag in GoalCard with a '~'
  prefix and tooltip so users know when a tally hit the safety cap.
2026-05-03 00:17:45 -07:00
lemon e15c2b312c Use effective relay hints for fundraising goals 2026-05-02 23:59:21 -07:00
lemon 17e7bbd07e Paginate fundraising goal and community activity queries 2026-05-02 23:53:00 -07:00
lemon 910d759155 Allow goals without valid relay URLs, fall back to user's relays 2026-05-02 23:40:06 -07:00
lemon a8d5a1538c Deduplicate useNow, memoize moderation context, sanitize goal image URL 2026-05-02 23:40:06 -07:00
lemon 3f982e2241 Simplify goal progress to tally zaps at face value, matching rest of app
Drop LNURL signer resolution and NIP-57 receipt validation from goal
progress tallying. This removes a network request per beneficiary for a
trust level that is still spoofable and that no other zap display in the
app enforces. Revert this commit to restore strict validation.
2026-05-02 23:40:06 -07:00
lemon 418909f531 Fix BOLT11 parser to correctly extract HRP and handle zero-amount invoices 2026-05-02 23:40:05 -07:00
lemon 44098af247 Extract shared BOLT11 parser and deduplicate LNURL signer resolution 2026-05-02 23:40:05 -07:00
lemon 268b171ba4 Propagate abort signal to LNURL fetch in goal progress 2026-05-02 23:40:05 -07:00
lemon 2e44d2a677 Stabilize goal progress queryKey by keying on lightning address 2026-05-02 23:40:05 -07:00
lemon 4277a8fe7d Sort past fundraising goals by deadline descending 2026-05-02 23:40:05 -07:00
lemon 9045ff3c41 Harden fundraising goal zaps 2026-05-02 23:40:05 -07:00
lemon f56ff2f305 Fix activity feed empty state flash on refresh
Include communitiesLoading in the hook's isLoading so the skeleton
shows while the dependent communities query is still resolving,
instead of briefly rendering the empty state.
2026-05-02 23:40:05 -07:00
lemon 699bc6ca33 Fix moderation and context for goals in activity feed
Goals use lowercase 'a' tags (not uppercase 'A' like NIP-22 comments)
to link to communities. The activity feed's moderation filter, members-
only filter, and CommunityModerationContext provider lookup all only
checked uppercase 'A', so goals bypassed moderation and had no '...'
menu. Now all three check both tag casings.
2026-05-02 23:40:05 -07:00
lemon 16ec99b327 Apply community moderation filtering to fundraising goals
Content-banned goals and goals from member-banned authors are now
filtered out of the fundraising tab via applyCommunityModerationToEvents,
matching the behavior of the comments tab.
2026-05-02 23:40:05 -07:00
lemon 09e211f48a Render fundraising goals via NoteCard for moderation support
Replace standalone GoalCard with NoteCard in the community fundraising
tab so goals get the same '...' menu with remove/ban actions that
comments have. Strip GoalCard down to just the compact inline renderer
(no variant prop, no skeleton, no card-only imports). Simplify
useCommunityGoals to return plain events instead of parsed wrappers.
2026-05-02 23:40:05 -07:00
lemon 27b60b2a6f Refactor goal components: deduplicate GoalCard/GoalContent, fix staleness
- Unify GoalCard and GoalContent into a single component with variant prop
- Extract useGoalDisplay hook for shared display logic (author, progress,
  community link, deadline, image)
- Add useNow(60s) interval so deadline labels refresh automatically
- Add generic parseATagCoordinate utility to nostrEvents.ts
- Replace DOM-mutating image onError with React state
- Remove dead isGoalFunded export and redundant created_at in publish
- Delete GoalContent.tsx (-144 net lines)
2026-05-02 23:40:05 -07:00
lemon 07ea1f94d1 Render full zap goal card on detail page and add FAB to community tabs
- PostDetailPage: render GoalContent for kind 9041 instead of plain text
- CommunityDetailPage: add floating action button on comments (compose) and fundraising (new goal) tabs, remove inline New Goal button
- CreateGoalDialog: support controlled open/onOpenChange props for external triggers
2026-05-02 23:40:05 -07:00
lemon d1017697a4 Add NIP-75 community fundraising goals
Implement zap goals (kind 9041) linked to communities via a-tag.
Includes goal creation dialog, progress tracking from zap receipts,
recipient profile/lightning address display, community link, and
members-only filtering. Goals appear in community detail Fundraising
tab, activity feed, and main feed via NoteCard.
2026-05-02 23:39:07 -07:00
Sam Thomson 2788127894 Merge branch 'ui/gut-blobbi' into 'main'
ui/gut-blobbi

See merge request soapbox-pub/agora-3!14
2026-04-30 07:11:33 +00:00
sam 9f425366c0 Merge branch 'main' into ui/gut-blobbi 2026-04-30 13:53:14 +07:00
Sam Thomson 0436949797 Merge branch 'refactor/changelog' into 'main'
refactor/changelog

See merge request soapbox-pub/agora-3!13
2026-04-30 06:49:31 +00:00
sam 8fdb5cf1ad reset changelog to agora 2026-04-30 13:38:02 +07:00
sam b46703eaed remove blobbis 2026-04-30 13:19:22 +07:00
Sam Thomson ecbee21d34 Merge branch 'ui/gut-custom-themes' into 'main'
ui/gut-custom-themes

See merge request soapbox-pub/agora-3!11
2026-04-29 15:08:41 +00:00
sam 3f28bf571a remove all theme stuff 2026-04-29 22:04:39 +07:00
sam 2e7eee66ee gut theme customisation 2026-04-29 21:47:36 +07:00
Sam Thomson 7c4d3012ec Merge branch 'fix/discovery-relay-selection' into 'main'
fix/discovery-relay-selection

See merge request soapbox-pub/agora-3!10
2026-04-29 13:47:31 +00:00
sam 01af784953 fix discovery relay selection 2026-04-29 20:41:41 +07:00
Sam Thomson da8a5e1dde Merge branch 'refactor/tidy-some-pages' into 'main'
refactor/tidy-some-pages

See merge request soapbox-pub/agora-3!9
2026-04-28 12:48:42 +00:00
sam e3b16a3c5b Merge branch 'main' into refactor/tidy-some-pages 2026-04-28 19:48:08 +07:00
sam a5849fc747 copy updates 2026-04-28 19:41:58 +07:00
sam 42430e510d update messaging dep so that syncing thing stays visible 2026-04-28 19:24:31 +07:00
sam 09c364b060 hide the messaging header 2026-04-28 19:24:19 +07:00
sam d96361c578 updated messaging dep 2026-04-28 18:39:32 +07:00
sam 1346112f36 feed title for consistency 2026-04-28 16:03:31 +07:00
sam 44b1019d98 header to notifs page 2026-04-28 15:51:08 +07:00
sam b4c5db0c0e dont wash out inactive cards so much, let errors be conveyed. and fixed layout issues with action sponsor overflows 2026-04-28 15:47:21 +07:00
sam a56b4839c8 let images fail fast and fix double header 2026-04-28 14:47:06 +07:00
sam 5768dc9183 llm -> fail fast, don't swallow errors 2026-04-28 14:46:20 +07:00
sam e871229248 update verified follow pack to new layout 2026-04-28 14:21:17 +07:00
sam 141166cdc8 copy 2026-04-28 14:20:03 +07:00
Sam Thomson b99590bc5e Merge branch 'feat/community-reporting' into 'main'
Community Moderation

See merge request soapbox-pub/agora-3!7
2026-04-28 04:10:13 +00:00