Skip to content

Commit b092569

Browse files
authored
refactor: Merge Voice recorder and player providers to VoiceMessageProvider (#454)
[UIKIT-3260](https://sendbird.atlassian.net/browse/UIKIT-3260) * Merge VoiceRecorderProvider and VoicePlayerProvider to VoiceMessageProvider
1 parent b5a251e commit b092569

File tree

2 files changed

+34
-7
lines changed

2 files changed

+34
-7
lines changed

src/lib/Sendbird.jsx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ import { LoggerFactory } from './Logger';
2020
import pubSubFactory from './pubSub/index';
2121
import useAppendDomNode from '../hooks/useAppendDomNode';
2222

23-
import { VoiceRecorderProvider } from '../hooks/VoiceRecorder';
24-
import { VoicePlayerProvider } from '../hooks/VoicePlayer';
23+
import { VoiceMessageProvider } from './VoiceMessageProvider';
2524
import { LocalizationProvider } from './LocalizationContext';
2625
import { MediaQueryProvider } from './MediaQueryContext';
2726
import getStringSet from '../ui/Label/stringSet';
@@ -215,11 +214,9 @@ export default function Sendbird(props) {
215214
>
216215
<MediaQueryProvider logger={logger} mediaQueryBreakPoint={mediaQueryBreakPoint}>
217216
<LocalizationProvider stringSet={localeStringSet} dateLocale={dateLocale}>
218-
<VoiceRecorderProvider>
219-
<VoicePlayerProvider>
220-
{children}
221-
</VoicePlayerProvider>
222-
</VoiceRecorderProvider>
217+
<VoiceMessageProvider isVoiceMessageEnabled={isVoiceMessageEnabled}>
218+
{children}
219+
</VoiceMessageProvider>
223220
</LocalizationProvider>
224221
</MediaQueryProvider>
225222
</SendbirdSdkContext.Provider>

src/lib/VoiceMessageProvider.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import React from 'react';
2+
import { VoicePlayerProvider } from '../hooks/VoicePlayer';
3+
import { VoiceRecorderProvider } from '../hooks/VoiceRecorder';
4+
5+
export interface VoiceMessageProviderProps {
6+
children: React.ReactElement;
7+
isVoiceMessageEnabled?: boolean;
8+
}
9+
10+
export const VoiceMessageProvider = ({
11+
children,
12+
isVoiceMessageEnabled = true,
13+
}: VoiceMessageProviderProps): React.ReactElement => {
14+
if (!isVoiceMessageEnabled) {
15+
return (
16+
<VoicePlayerProvider>
17+
{children}
18+
</VoicePlayerProvider>
19+
);
20+
}
21+
return (
22+
<VoiceRecorderProvider>
23+
<VoicePlayerProvider>
24+
{children}
25+
</VoicePlayerProvider>
26+
</VoiceRecorderProvider>
27+
);
28+
};
29+
30+
export default VoiceMessageProvider;

0 commit comments

Comments
 (0)