Skip to content

Add voice message functionality#176

Open
dozro wants to merge 35 commits intoSableClient:devfrom
dozro:feat/audio-recordings
Open

Add voice message functionality#176
dozro wants to merge 35 commits intoSableClient:devfrom
dozro:feat/audio-recordings

Conversation

@dozro
Copy link
Contributor

@dozro dozro commented Mar 11, 2026

Description

adding functionality to compose voice messages

image

Fixes #3

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

mohamad-fallah and others added 16 commits December 5, 2025 15:14
- Created core files including package.json, README.md, and TypeScript configuration.
- Implemented voice recording functionality with hooks and components.
- Added visual waveform representation and playback controls.
- Included TypeScript support and defined project structure.
- Added .gitignore to exclude unnecessary files and directories.
- Revised description for clarity and conciseness.
- Added new properties (width, height, style) to VoiceRecorderProps for customization.
- Expanded the UseVoiceRecorderReturn type with a new 'restart' method.
- Introduced a time formatting function for better time display in the UI.
- Updated the example UI to include the restart functionality and improved button layout.
- Added a new features section to highlight capabilities of the voice recorder.
- Updated DeleteIcon SVG for improved visual representation.
- Introduced a new types.ts file to define RecorderState and options for the voice recorder.
- Refactored useVoiceRecorder hook to include new state management and methods for handling recording, pausing, and stopping.
- Enhanced VoiceRecorder component to utilize updated state and methods, improving user interaction and control.
- Consolidated type exports in index.ts for better organization.
- Added ResumeIcon to the icon set for improved user experience.
- Expanded VoiceRecorderProps to include additional styling options such as backgroundColor, borderColor, and button customization.
- Updated the VoiceRecorder component to utilize new props for better visual customization and user interaction.
- Refactored visualizer bar properties for dynamic styling based on props.
- Improved button hover effects and icon rendering for enhanced usability.
- Revised project description for better readability.
- Enhanced VoiceRecorderProps section with clearer property descriptions and added styling options.
- Updated usage examples to reflect new features and improved component API.
- Added detailed recording states to clarify component behavior.
- Improved overall structure and formatting for better navigation.
…rding states

- Introduced a new section in README.md to showcase various states of the voice recorder.
- Added images for initial state, recording in progress, paused state, and completed recording.
- Enhanced documentation to improve user understanding of the component's functionality.
@dozro dozro marked this pull request as ready for review March 11, 2026 14:43
@dozro dozro requested a review from a team March 11, 2026 14:43
@hazre
Copy link
Collaborator

hazre commented Mar 11, 2026

Why do we need a dependency for this? can't we just use MediaRecorder api directly? also I personally don't like the UI, it doesn't fit sable. also would this work on safari and ios? it defaults to audio/webm

I rather avoid external dependencies for simple things. Gives us more control as well

@7w1
Copy link
Member

7w1 commented Mar 11, 2026

Safari and iOS have supported webm playback for years now. I do agree the theming doesn’t fit in too well.

@dozro dozro marked this pull request as draft March 11, 2026 16:47
@hazre
Copy link
Collaborator

hazre commented Mar 11, 2026

Safari and iOS have supported webm playback for years now. I do agree the theming doesn’t fit in too well.

I think ogg would be a better fit for audio files. https://caniuse.com/ogg-vorbis

@dozro
Copy link
Contributor Author

dozro commented Mar 12, 2026

probably using this adjusted to our needs fork then: https://github.com/dozro/sable-voice-recorder-kit

@hazre
Copy link
Collaborator

hazre commented Mar 12, 2026

can you integrate it within the codebase as a feature? tracking dependencies is pain and from what I can tell its just web apis and react, so no external dependencies.

@dozro dozro marked this pull request as ready for review March 12, 2026 02:47
@dozro dozro marked this pull request as draft March 12, 2026 15:26
@dozro dozro marked this pull request as ready for review March 12, 2026 20:29
@dozro
Copy link
Contributor Author

dozro commented Mar 13, 2026

screenshots from mobile:

image

TO-DO: streamline it more for mobile phone usage

on desktop:

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Voice messages

4 participants