Skip to content

Commit 70b3400

Browse files
authored
feat: Add Sendbird Extensions in connection (#682)
Call addSendbirdExtensions in connection [CLNP-197]: https://sendbird.atlassian.net/browse/CLNP-197?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
1 parent 4b450ad commit 70b3400

File tree

7 files changed

+33
-9
lines changed

7 files changed

+33
-9
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
"react-dom": "^16.8.6 || ^17.0.0 || ^18.0.0"
6868
},
6969
"dependencies": {
70-
"@sendbird/chat": "^4.9.2",
70+
"@sendbird/chat": "^4.9.6",
7171
"@sendbird/uikit-tools": "0.0.1-alpha.40",
7272
"css-vars-ponyfill": "^2.3.2",
7373
"date-fns": "^2.16.1",

src/lib/Sendbird.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { UIKitConfigProvider, useUIKitConfig } from '@sendbird/uikit-tools';
2424

2525
import { VoiceMessageProvider } from './VoiceMessageProvider';
2626
import { LocalizationProvider } from './LocalizationContext';
27-
import { MediaQueryProvider } from './MediaQueryContext';
27+
import { MediaQueryProvider, useMediaQueryContext } from './MediaQueryContext';
2828
import getStringSet from '../ui/Label/stringSet';
2929
import { VOICE_RECORDER_DEFAULT_MAX, VOICE_RECORDER_DEFAULT_MIN } from '../utils/consts';
3030
import { uikitConfigMapper } from './utils/uikitConfigMapper';
@@ -156,6 +156,7 @@ const SendbirdSDK = ({
156156
userMention = {},
157157
isREMUnitEnabled = false,
158158
} = config;
159+
const { isMobile } = useMediaQueryContext();
159160
const [logger, setLogger] = useState(LoggerFactory(logLevel as LogLevel));
160161
const [pubSub] = useState(pubSubFactory());
161162
const [sdkStore, sdkDispatcher] = useReducer(sdkReducers, sdkInitialState);
@@ -172,6 +173,7 @@ const SendbirdSDK = ({
172173
userId,
173174
accessToken,
174175
isUserIdUsedForNickname,
176+
isMobile,
175177
}, {
176178
logger,
177179
nickname,

src/lib/hooks/useConnect/connect.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export async function connect({
1717
accessToken,
1818
sdk,
1919
sdkInitParams,
20+
isMobile,
2021
}: ConnectTypes): Promise<void> {
2122
await disconnectSdk({
2223
logger,
@@ -38,5 +39,6 @@ export async function connect({
3839
profileUrl,
3940
accessToken,
4041
sdkInitParams,
42+
isMobile,
4143
});
4244
}

src/lib/hooks/useConnect/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ReconnectType, StaticTypes, TriggerTypes } from './types';
44
import { connect } from './connect';
55

66
export default function useConnect(triggerTypes: TriggerTypes, staticTypes: StaticTypes): ReconnectType {
7-
const { userId, appId, accessToken, isUserIdUsedForNickname } = triggerTypes;
7+
const { userId, appId, accessToken, isMobile, isUserIdUsedForNickname } = triggerTypes;
88
const {
99
logger,
1010
nickname,
@@ -39,6 +39,7 @@ export default function useConnect(triggerTypes: TriggerTypes, staticTypes: Stat
3939
initDashboardConfigs,
4040
isUserIdUsedForNickname,
4141
sdkInitParams,
42+
isMobile,
4243
});
4344
} catch (error) {
4445
logger?.error?.('SendbirdProvider | useConnect/useEffect', error);
@@ -64,6 +65,7 @@ export default function useConnect(triggerTypes: TriggerTypes, staticTypes: Stat
6465
initDashboardConfigs,
6566
isUserIdUsedForNickname,
6667
sdkInitParams,
68+
isMobile,
6769
});
6870
} catch (error) {
6971
logger?.error?.('SendbirdProvider | useConnect/reconnect/useCallback', error);

src/lib/hooks/useConnect/setupConnection.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import SendbirdChat, { SendbirdError, User } from '@sendbird/chat';
1+
import SendbirdChat, { DeviceOsPlatform, SendbirdError, SendbirdPlatform, SendbirdProduct, User } from '@sendbird/chat';
22
import { OpenChannelModule } from '@sendbird/chat/openChannel';
33
import { GroupChannelModule } from '@sendbird/chat/groupChannel';
44

@@ -80,6 +80,7 @@ export async function setUpConnection({
8080
accessToken,
8181
isUserIdUsedForNickname,
8282
sdkInitParams,
83+
isMobile = false,
8384
}: SetupConnectionTypes): Promise<void> {
8485
return new Promise((resolve, reject) => {
8586
logger?.info?.('SendbirdProvider | useConnect/setupConnection/init', { userId, appId });
@@ -100,6 +101,22 @@ export async function setUpConnection({
100101
}
101102

102103
logger?.info?.('SendbirdProvider | useConnect/setupConnection/setVersion', { version: APP_VERSION_STRING });
104+
/**
105+
* Keep optional chaining to the addSendbirdExtensions
106+
* for supporting the ChatSDK v4.9.5 or less
107+
*/
108+
newSdk?.addSendbirdExtensions?.(
109+
[
110+
{
111+
product: SendbirdProduct?.UIKIT_CHAT ?? 'uikit-chat',
112+
version: APP_VERSION_STRING,
113+
platform: SendbirdPlatform?.JS ?? 'js',
114+
},
115+
],
116+
isMobile
117+
? (DeviceOsPlatform?.MOBILE_WEB ?? 'mobile_web')
118+
: (DeviceOsPlatform?.WEB ?? 'web'),
119+
);
103120
newSdk.addExtension('sb_uikit', APP_VERSION_STRING);
104121

105122
const connectCbSucess = async (user: User) => {

src/lib/hooks/useConnect/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export type TriggerTypes = {
1818
// todo: doulbe check this type before merge
1919
accessToken?: string;
2020
isUserIdUsedForNickname?: boolean;
21+
isMobile?: boolean;
2122
};
2223

2324
export type ConfigureSessionTypes = (sdk: SendbirdChat | SendbirdGroupChat | SendbirdOpenChat) => SessionHandler;

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2430,15 +2430,15 @@ __metadata:
24302430
languageName: node
24312431
linkType: hard
24322432

2433-
"@sendbird/chat@npm:^4.9.2":
2434-
version: 4.9.2
2435-
resolution: "@sendbird/chat@npm:4.9.2"
2433+
"@sendbird/chat@npm:^4.9.6":
2434+
version: 4.9.6
2435+
resolution: "@sendbird/chat@npm:4.9.6"
24362436
peerDependencies:
24372437
"@react-native-async-storage/async-storage": ^1.17.6
24382438
peerDependenciesMeta:
24392439
"@react-native-async-storage/async-storage":
24402440
optional: true
2441-
checksum: 5b615711a1ee3c90525d810d748e6a3e777006fc2c0678c590d21730b9c225bca3215cb3382efb294a62f22b7e0328d5589789c54499a7c211eb0124238ae4d9
2441+
checksum: 70e3a92e2d0343519112b301c2fc5ddacc5b89f94c84cbba83a56a70a781bfb0207ec55bd2a310e1653dbc6bf1bf7d28d9592cfd6fe931a7e4d200f84b021c0d
24422442
languageName: node
24432443
linkType: hard
24442444

@@ -2459,7 +2459,7 @@ __metadata:
24592459
"@rollup/plugin-node-resolve": ^7.1.3
24602460
"@rollup/plugin-replace": ^2.4.2
24612461
"@rollup/plugin-typescript": ^8.2.1
2462-
"@sendbird/chat": ^4.9.2
2462+
"@sendbird/chat": ^4.9.6
24632463
"@sendbird/uikit-tools": 0.0.1-alpha.40
24642464
"@storybook/addon-actions": ^6.5.10
24652465
"@storybook/addon-docs": ^6.5.10

0 commit comments

Comments
 (0)