@@ -2,7 +2,7 @@ import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';
22import { Platform } from 'react-native' ;
33import { SafeAreaProvider } from 'react-native-safe-area-context' ;
44
5- import Sendbird from '@sendbird/chat' ;
5+ import Sendbird , { DeviceOsPlatform , SendbirdPlatform , SendbirdProduct } from '@sendbird/chat' ;
66import { GroupChannelModule } from '@sendbird/chat/groupChannel' ;
77import { OpenChannelModule } from '@sendbird/chat/openChannel' ;
88import type { HeaderStyleContextType , UIKitTheme } from '@sendbird/uikit-react-native-foundation' ;
@@ -288,7 +288,17 @@ const initializeSendbird = (
288288 chatSDK = onInitialized ( chatSDK ) ;
289289 }
290290
291- if ( SendbirdUIKit . VERSION ) {
291+ const platform = getDeviceOSPlatform ( ) ;
292+ if ( SendbirdUIKit . VERSION && platform ) {
293+ const deviceOSInfo = { platform, version : String ( Platform . Version ) } ;
294+ const customData = { platform_version : getReactNativeVersion ( ) } ;
295+ const uikitExtension = {
296+ product : SendbirdProduct . UIKIT_CHAT ,
297+ version : SendbirdUIKit . VERSION ,
298+ platform : SendbirdPlatform . REACT_NATIVE ,
299+ } ;
300+
301+ chatSDK . addSendbirdExtensions ( [ uikitExtension ] , deviceOSInfo , customData ) ;
292302 chatSDK . addExtension ( 'sb_uikit' , SendbirdUIKit . VERSION ) ;
293303 }
294304
@@ -331,4 +341,24 @@ const initializeSendbird = (
331341 return { chatSDK, unsubscribes } ;
332342} ;
333343
344+ function getDeviceOSPlatform ( ) {
345+ switch ( Platform . OS ) {
346+ case 'android' :
347+ return DeviceOsPlatform . ANDROID ;
348+ case 'ios' :
349+ return DeviceOsPlatform . IOS ;
350+ case 'web' :
351+ return DeviceOsPlatform . WEB ;
352+ case 'windows' :
353+ return DeviceOsPlatform . WINDOWS ;
354+ default :
355+ return undefined ;
356+ }
357+ }
358+
359+ function getReactNativeVersion ( ) {
360+ const { major, minor, patch } = Platform . constants . reactNativeVersion ;
361+ return `${ major } .${ minor } .${ patch } ` ;
362+ }
363+
334364export default SendbirdUIKitContainer ;
0 commit comments