From 43c762fdf9a2db13ce1f18743da5e4880243d298 Mon Sep 17 00:00:00 2001 From: Patrick Mulligan Date: Thu, 1 Jan 2026 19:26:10 +0100 Subject: [PATCH] feat(nostr-feed): Add submission composer (Phase 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create SubmitComposer.vue with post type selector (text/link/media) - Add debounced link preview fetching on URL input - Wire up submission publishing via SubmissionService.createSubmission() - Add /submit route with SubmitPage.vue wrapper - Support community query param for pre-selection - Include NSFW toggle and form validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../nostr-feed/LINK_AGGREGATOR_PLAN.md | 11 +- .../nostr-feed/components/SubmitComposer.vue | 406 ++++++++++++++++++ src/modules/nostr-feed/index.ts | 11 + src/modules/nostr-feed/views/SubmitPage.vue | 35 ++ 4 files changed, 458 insertions(+), 5 deletions(-) create mode 100644 src/modules/nostr-feed/components/SubmitComposer.vue create mode 100644 src/modules/nostr-feed/views/SubmitPage.vue diff --git a/src/modules/nostr-feed/LINK_AGGREGATOR_PLAN.md b/src/modules/nostr-feed/LINK_AGGREGATOR_PLAN.md index f6ba525..a171006 100644 --- a/src/modules/nostr-feed/LINK_AGGREGATOR_PLAN.md +++ b/src/modules/nostr-feed/LINK_AGGREGATOR_PLAN.md @@ -86,11 +86,12 @@ Transform the nostr-feed module into a Reddit-style link aggregator with support - [x] Create `LinkPreviewService.ts` - OG tag fetching - [x] Extend `FeedService.ts` - Handle kind 1111 -### Phase 2: Post Creation (Pending) -- [ ] Create `SubmitComposer.vue` - Multi-type composer -- [ ] Add link preview on URL paste -- [ ] Integrate with pictrs for media upload -- [ ] Add NSFW toggle +### Phase 2: Post Creation +- [x] Create `SubmitComposer.vue` - Multi-type composer +- [x] Add link preview on URL paste +- [x] Add NSFW toggle +- [x] Add route `/submit` for composer +- [ ] Integrate with pictrs for media upload (Future) ### Phase 3: Feed Display - [x] Create `SubmissionRow.vue` - Link aggregator row (Reddit/Lemmy style) diff --git a/src/modules/nostr-feed/components/SubmitComposer.vue b/src/modules/nostr-feed/components/SubmitComposer.vue new file mode 100644 index 0000000..fcfd6bf --- /dev/null +++ b/src/modules/nostr-feed/components/SubmitComposer.vue @@ -0,0 +1,406 @@ + + +