Commit Graph

4447 Commits

Author SHA1 Message Date
Chad Curtis a010b53d27 Remove redundant 'Show theme updates in feed' toggle from Theme Preferences 2026-02-28 23:10:53 -06:00
Chad Curtis 9d4251dc8c Convert Theme Preferences to collapsible section, remove bottom border 2026-02-28 23:10:07 -06:00
Chad Curtis 6b49957180 Use EXTRA_KIND_ICONS as single source of truth in ContentSettings
Remove the local ICONS map from ContentSettings.tsx and replace it with
EXTRA_KIND_ICONS from extraKindIcons.ts. Add feed-kind icons (posts,
comments, reposts, generic-reposts) to the shared registry so all icon
references resolve from one place.
2026-02-28 23:08:50 -06:00
Chad Curtis 44cc217de9 Treat single image with short caption as a single image post 2026-02-28 23:01:21 -06:00
Chad Curtis fc8e6491e8 Fix initialContent prefill in ComposeBox via mount guard instead of useEffect 2026-02-28 21:33:21 -06:00
Chad Curtis 930a64d965 Set compose modal title to 'Share to feed' when sharing external content 2026-02-28 21:27:09 -06:00
Chad Curtis 38c7e00ca9 Share button on /i/ page opens compose modal pre-filled with URL 2026-02-28 21:27:09 -06:00
Chad Curtis 1bcfdc1457 Revert external content share back to kind 1 with i tag
Kind 16 requires an e tag pointing to a Nostr event ID, which external
content doesn't have. Kind 1 with an i tag is the correct approach.
2026-02-28 21:27:09 -06:00
Chad Curtis 1f18b978ce Fix external content repost to use kind 16 instead of kind 1 2026-02-28 21:27:09 -06:00
Chad Curtis 31a543ce0c Add react/share action bar to external content (/i/) pages
Implements NIP-25 kind 17 reactions and kind 1 shares for external
content identifiers (URLs, ISBNs, countries) on the /i/ page.
2026-02-28 21:27:09 -06:00
Alex Gleason d27464d6fc Add GIF keyboard with Tenor API to compose box and DM chat
Introduces a GIF picker powered by Tenor's API with search and trending
GIFs. The picker is integrated into both the post compose toolbar and
the DM chat input area, alongside a new emoji picker for DMs.
2026-02-28 21:13:59 -06:00
Chad Curtis eaa337de01 Fix missing followsFeedShowReplies in FeedSettings literals 2026-02-28 20:59:56 -06:00
Chad Curtis 7bf9419b48 Remove sticky + background from /i/ page headers 2026-02-28 20:58:48 -06:00
Chad Curtis 708dd23fc4 Add follows feed reply filter and fix feedSettings deep-merge for new keys 2026-02-28 20:27:03 -06:00
Alex Gleason dfee354158 Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-28 20:25:01 -06:00
Chad Curtis e81c7c183c Fix mention e-tags incorrectly treated as reply markers per NIP-10 2026-02-28 20:17:17 -06:00
Alex Gleason 45e76e7dd8 Add Spotify and Reddit embeds to LinkEmbed
- SpotifyEmbed: iframe to open.spotify.com/embed/ with fixed heights
  per content type (track/episode: 152px, album/playlist/show: 352px)
- RedditEmbed: iframe to embed.reddit.com with resize.embed postMessage
- Supports track, album, playlist, episode, show for Spotify
- Supports /r/subreddit/comments/id/ URLs for Reddit
- Both with rounded corners and discuss bar
2026-02-28 20:14:38 -06:00
Alex Gleason 44ace938a3 Fix Bluesky embed height by clearing minHeight after resize 2026-02-28 20:06:07 -06:00
Alex Gleason 2bd5b92a3c Fix Bluesky embed height by removing embedId check on resize message
The source window check is sufficient to identify the iframe.
The id match was failing, preventing the iframe from resizing.
2026-02-28 19:54:22 -06:00
Alex Gleason 0fc0ff1875 Simplify UrlContentHeader to always use LinkEmbed
Removes 123 lines of bespoke YouTube/generic link preview rendering
from UrlContentHeader. All URL types on /i/ pages now go through
LinkEmbed, so Bluesky and Mastodon embeds work automatically.
2026-02-28 19:49:07 -06:00
Alex Gleason 7d2db70f29 Add Discuss bar below embed iframes linking to /i/:uri page
Shows favicon, domain link, and Discuss button below YouTube, Twitter,
Bluesky, and Mastodon embeds. Disabled on the /i/ page itself where
you're already viewing the discussion. LinkPreview keeps its own
built-in Discuss button.
2026-02-28 19:45:53 -06:00
Alex Gleason 9c06c61527 Add rounded corners to Mastodon embed iframe 2026-02-28 19:42:00 -06:00
Alex Gleason 254486b4fa Add Bluesky and Mastodon post embeds to LinkEmbed
- BlueskyEmbed: iframe to embed.bsky.app with handle→DID resolution
- MastodonEmbed: iframe to {instance}/@user/id/embed with setHeight resize
- Known Mastodon servers list (317 instances) for URL detection
- embedLabel() helper for consistent platform labels in headers
- Both embeds auto-resize via postMessage, no third-party scripts
2026-02-28 19:37:38 -06:00
Alex Gleason 21b465ff3e Add unified LinkEmbed component, consolidate URL detection and embed rendering
- Create LinkEmbed that dispatches to YouTubeEmbed, TweetEmbed, or LinkPreview based on URL
- Centralize extractYouTubeId and extractTweetId in LinkEmbed module
- Simplify NoteContent: merge link-preview and youtube-embed token types into link-embed
- Tweet URLs in posts now render as embedded tweets automatically
- Remove duplicate extractYouTubeId from NoteContent and ExternalContentHeader
2026-02-28 19:01:47 -06:00
Alex Gleason 55338669d0 Auto-resize tweet iframe via twttr.private.resize postMessage 2026-02-28 18:50:22 -06:00
Alex Gleason fcd32f1bd4 Replace Twitter widgets.js with direct iframe embed, remove CSP exception 2026-02-28 18:46:25 -06:00
Alex Gleason d834851788 Add embedded tweet display for Twitter/X URLs on external content pages 2026-02-28 18:42:46 -06:00
Alex Gleason 8cafccf18e Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-28 18:37:39 -06:00
Mary Kate Fain 6598a0363a Fix lint errors: remove unused useEffect import, prefix unused schema
- ThemeSelector.tsx: remove unused useEffect import
- useBookInfo.ts: prefix OpenLibraryBookSchema with _ (only used for type inference)
2026-02-28 18:30:47 -06:00
Alex Gleason 10035f80bc Make reaction rows clickable to view NIP-22 comments on that reaction
Each reaction in the interactions modal now navigates to the kind 7
event's detail page (via nevent), where users can leave NIP-22 kind
1111 comments on the reaction using E/e tags. Added eventId to
ReactionEntry and a dedicated ReactionRow component with a chevron
indicating it's navigable.
2026-02-28 18:23:25 -06:00
Mary Kate Fain 5b83812d1a Shrink-wrap solid background to nav items instead of filling entire scroll area
Move bg-background from the flex-1 nav container (which stretches to
fill all remaining height) to an inner div that wraps just the nav
items and More button, so the solid background stops right after the
last item and the background image shows in the space below.
2026-02-28 18:20:47 -06:00
Mary Kate Fain 6d7f1c7da5 Use solid bg-background for mobile drawer sections over background image
Swap bg-background/85 to bg-background for all sections in the mobile
drawer (user row, account switcher, nav items, theme picker, logged-out
state) to ensure full legibility over busy background images.
2026-02-28 18:20:47 -06:00
Mary Kate Fain 612abb1f9d Fix background image not showing: use inline backgroundColor to override cva bg-background
The sheet component's cva base class includes bg-background which was
winning the Tailwind specificity battle over bg-transparent. Using
inline style backgroundColor: 'transparent' guarantees it overrides
the class-based background color, letting the background-image show.
2026-02-28 18:20:47 -06:00
Mary Kate Fain 5069a92642 Apply theme background image directly on mobile drawer content
Instead of making the drawer transparent (which just shows the dark
overlay), render the background image on the SheetContent itself via
inline styles. When a background image is active, sections get
bg-background/85 rounded containers for legibility. When there's no
background image, the drawer renders normally as before.
2026-02-28 18:20:47 -06:00
Mary Kate Fain d07fac2c98 Show theme background image in mobile drawer nav menu
Make the mobile hamburger menu transparent so the user's theme
background image shows through, matching the desktop sidebar pattern.
Individual sections (user row, account switcher, nav items, theme
picker) get bg-background/85 rounded containers for legibility.
2026-02-28 18:20:47 -06:00
Alex Gleason 7afe8efa21 Add profile preview at top of comment threads on person profiles
When viewing a kind 1111 comment thread where the root is a person
(kind 0 profile), show a compact profile preview card with avatar,
name, and NIP-05 at the top of the page, similar to how external
content previews are shown for URLs/books/countries.
2026-02-28 18:14:28 -06:00
Alex Gleason 5475144a7e Merge branch 'opencode/1772318974' 2026-02-28 17:26:43 -06:00
Alex Gleason 42a7522f23 Display country flag and name for iso3166 identifiers in CommentContext
Shows 'Commenting on 🇮🇷 Iran' instead of 'iso3166:IR'.
For subdivisions shows 'Commenting on 🇺🇸 United States (TX)'.
2026-02-28 17:24:49 -06:00
Alex Gleason 0ce79be2df Merge branch 'opencode/1772318974' 2026-02-28 17:21:20 -06:00
Alex Gleason ce08e068cb Merge branch 'opencode/1772318980' 2026-02-28 17:20:17 -06:00
Alex Gleason 92af295476 Show 'Commenting on @Name' for wall comments instead of 'a post' 2026-02-28 17:20:05 -06:00
Mary Kate Fain 103020ea37 Make inactive sidebar nav items full opacity text-foreground 2026-02-28 17:19:32 -06:00
Mary Kate Fain a7fd1f1fe9 Make sidebar nav text darker and update Retro Pop background color
- Change inactive sidebar nav items from text-muted-foreground to
  text-foreground/70 for better readability
- Update Retro Pop preset background color to #d9d6ff (244 100% 92%)
2026-02-28 17:18:14 -06:00
Alex Gleason 2cd4124d65 Enlarge emoji-only posts with robust detection for ZWJ, flags, keycaps, skin tones, and NIP-30 custom emojis 2026-02-28 17:17:40 -06:00
Alex Gleason daa54305dc Include profile owner's pubkey in wall comments authors filter 2026-02-28 17:16:42 -06:00
Mary Kate Fain e29f6afc32 Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew 2026-02-28 17:15:06 -06:00
Alex Gleason e4d15b4457 Merge branch 'main' of gitlab.com:soapbox-pub/ditto-mew
# Conflicts:
#	src/pages/SearchPage.tsx
2026-02-28 17:13:00 -06:00
Mary Kate Fain 1caee21b05 Update Y2K theme presets to match ditto-docs color/font definitions
Sync 7 Y2K theme presets with ditto-docs canonical values:
- Skater: font Permanent Marker → Rubik Maps
- Kawaii: updated background/text/primary colors
- Grunge: font Creepster → Lacquer
- Retro Pop: updated background/text/primary colors
- Bubblegum: updated colors, font Luckiest Guy → Barriecito
- All 7 themes: new background image URLs (PNG format)
2026-02-28 17:11:39 -06:00
Chad Curtis 0d5ab96dd4 Apply break-words overflow-hidden to profile description 2026-02-28 17:11:35 -06:00
Chad Curtis a602a47759 Replace search filter panel with filter icon popover, add Bluesky filter, fix protocol query logic 2026-02-28 17:11:35 -06:00