From c8c294a8adfaa64090459e39862dee7f315e0169 Mon Sep 17 00:00:00 2001 From: Lemon Date: Sat, 28 Mar 2026 22:04:48 -0700 Subject: [PATCH 1/2] Match ComposeBox background opacity with header and subheader (bg-background/85) --- package-lock.json | 25 ------------------------- src/components/ComposeBox.tsx | 2 +- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f2e4a62..e4a49672 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4706,7 +4706,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4720,7 +4719,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4734,7 +4732,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4748,7 +4745,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4762,7 +4758,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4776,7 +4771,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4790,7 +4784,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4804,7 +4797,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4818,7 +4810,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4832,7 +4823,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4846,7 +4836,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4860,7 +4849,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4874,7 +4862,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4888,7 +4875,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4902,7 +4888,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4916,7 +4901,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4930,7 +4914,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4944,7 +4927,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4958,7 +4940,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4972,7 +4953,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4986,7 +4966,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5000,7 +4979,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5014,7 +4992,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5028,7 +5005,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5042,7 +5018,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ diff --git a/src/components/ComposeBox.tsx b/src/components/ComposeBox.tsx index 5d54bc24..cf96bf4a 100644 --- a/src/components/ComposeBox.tsx +++ b/src/components/ComposeBox.tsx @@ -998,7 +998,7 @@ export function ComposeBox({ if (!user && compact) return null; return ( -
+
{/* Preview toggle at top when not controlled and has previewable content */} {hasPreviewableContent && controlledPreviewMode === undefined && (
From a80b30624822d03ed39448f01bbcc5a2b6e9be39 Mon Sep 17 00:00:00 2001 From: Lemon Date: Sat, 28 Mar 2026 22:25:43 -0700 Subject: [PATCH 2/2] Reset feed composer to collapsed state after posting --- package-lock.json | 25 +++++++++++++++++++++++ src/components/ComposeBox.tsx | 37 +++++++++++++++++++++-------------- 2 files changed, 47 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4a49672..3f2e4a62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4706,6 +4706,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4719,6 +4720,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4732,6 +4734,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4745,6 +4748,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4758,6 +4762,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4771,6 +4776,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4784,6 +4790,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4797,6 +4804,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4810,6 +4818,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4823,6 +4832,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4836,6 +4846,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4849,6 +4860,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4862,6 +4874,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4875,6 +4888,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4888,6 +4902,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4901,6 +4916,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4914,6 +4930,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4927,6 +4944,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4940,6 +4958,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4953,6 +4972,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4966,6 +4986,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4979,6 +5000,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4992,6 +5014,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5005,6 +5028,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5018,6 +5042,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ diff --git a/src/components/ComposeBox.tsx b/src/components/ComposeBox.tsx index cf96bf4a..dda279f4 100644 --- a/src/components/ComposeBox.tsx +++ b/src/components/ComposeBox.tsx @@ -224,6 +224,26 @@ export function ComposeBox({ const voiceRecorder = useVoiceRecorder(); const [isPublishingVoice, setIsPublishingVoice] = useState(false); + const resetComposeState = useCallback(() => { + setContent(''); + setCwEnabled(false); + setCwText(''); + setExpanded(false); + setPickerOpen(false); + setTrayOpen(false); + setInternalPreviewMode(false); + setMode(initialMode); + setPollQuestion(''); + setPollOptions([{ id: pollOptionId(), label: '' }, { id: pollOptionId(), label: '' }]); + setPollType('singlechoice'); + setPollDuration(7); + setRemovedEmbeds(new Set()); + setUploadedFileTags([]); + setUploadedFileGroups(new Map()); + setWebxdcUuids(new Map()); + setWebxdcMetas(new Map()); + }, [initialMode]); + // Use controlled preview mode if provided, otherwise use internal state const previewMode = controlledPreviewMode !== undefined ? controlledPreviewMode : internalPreviewMode; @@ -919,15 +939,7 @@ export function ComposeBox({ }); } - setContent(''); - setCwEnabled(false); - setCwText(''); - setExpanded(false); - setRemovedEmbeds(new Set()); - setUploadedFileTags([]); - setUploadedFileGroups(new Map()); - setWebxdcUuids(new Map()); - setWebxdcMetas(new Map()); + resetComposeState(); // Optimistically bump the reply count on the parent event if (replyTo && !(replyTo instanceof URL)) { queryClient.setQueryData(['event-stats', replyTo.id], (prev) => @@ -975,12 +987,7 @@ export function ComposeBox({ try { await createEvent({ kind: 1068, content: pollQuestion.trim(), tags }); - // Reset poll state - setMode('post'); - setPollQuestion(''); - setPollOptions([{ id: pollOptionId(), label: '' }, { id: pollOptionId(), label: '' }]); - setPollType('singlechoice'); - setPollDuration(7); + resetComposeState(); queryClient.invalidateQueries({ queryKey: ['feed'] }); toast({ title: 'Poll published!' }); onSuccess?.();