import { forwardRef, useMemo } from 'react'; import { MessageComposerPreviews, StartRecordingAudioButton, type StartRecordingAudioButtonProps, } from 'stream-chat-react'; import { useAppSettingsSelector } from '../AppSettings'; import { buildPreviewSet } from './previewSections'; /** The composer's previews, in the order and selection set in Settings -> Composer. */ export const ConfigurableComposerPreviews = () => { const { disabledPreviewSections, previewSectionOrder } = useAppSettingsSelector( (state) => state.composer, ); const previewSet = useMemo( () => buildPreviewSet(previewSectionOrder, disabledPreviewSections), [disabledPreviewSections, previewSectionOrder], ); return ; }; /** The record button, gone while the voice recording preview is left out of the composer. */ export const ConfigurableStartRecordingAudioButton = forwardRef< HTMLButtonElement, StartRecordingAudioButtonProps >(function ConfigurableStartRecordingAudioButton(props, ref) { const { disabledPreviewSections } = useAppSettingsSelector((state) => state.composer); if (disabledPreviewSections.includes('voiceRecording')) return null; return ; });