239d958e1f2af25795d4ef418c7324ef5d9f1a56
Implement recording, publishing, and rendering of NIP-A0 voice messages: - VoiceMessagePlayer: compact waveform bar player when imeta waveform data is available, falls back to existing AudioVisualizer sinewave - useVoiceRecorder: MediaRecorder hook with real-time amplitude capture, 60s max duration, and waveform sampling for NIP-A0 imeta tags - ComposeBox: mic button in toolbar with recording UI (live waveform, timer, cancel/send controls), publishes kind 1222 (root) or 1244 (NIP-22 reply) with imeta waveform and duration fields - NoteCard + PostDetailPage: render kind 1222/1244 via VoiceMessagePlayer - Feed settings: voice messages registered in Other Stuff > Media with feed toggle (feedIncludeVoiceMessages), defaults to off
Description
Languages
TypeScript
95.7%
Java
1.5%
JavaScript
0.9%
Swift
0.9%
CSS
0.5%
Other
0.4%