@sendbird/uikit-react-native 3.1.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/ChannelInput/SendInput.js +3 -3
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChatFlatList/index.js +15 -3
- package/lib/commonjs/components/ChatFlatList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +3 -3
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +17 -5
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/hooks/useMentionSuggestion.js +1 -1
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelInput/SendInput.js +4 -4
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChatFlatList/index.js +15 -3
- package/lib/module/components/ChatFlatList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +4 -4
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +17 -5
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/hooks/useMentionSuggestion.js +1 -1
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +3 -2
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +5 -5
- package/src/components/ChannelInput/SendInput.tsx +4 -4
- package/src/components/ChatFlatList/index.tsx +14 -3
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +4 -4
- package/src/containers/SendbirdUIKitContainer.tsx +13 -6
- package/src/hooks/useMentionSuggestion.ts +2 -1
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","Sendbird","DeviceOsPlatform","SendbirdPlatform","SendbirdProduct","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","UIKitConfigProvider","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","PLATFORM","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","SendbirdUIKitContainer","_ref","children","appId","chatOptions","uikitOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","userMention","imageCompression","localCacheStorage","Error","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","onInitialized","current","chatSDK","emojiManager","mentionManager","config","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","imageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","forEach","u","renderChildren","disabled","createElement","storage","localConfigs","common","groupChannel","channel","channelList","groupChannelList","setting","groupChannelSettings","openChannel","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","onCreateChannel","onBeforeCreateChannel","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","init","modules","localCacheEnabled","Boolean","useAsyncStorageStore","newInstance","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","UIKIT_CHAT","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","listener","callback","callbackType","callCount","unsubscribe","state","online","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline","ANDROID","IOS","WEB","WINDOWS","undefined","major","minor","patch","constants","reactNativeVersion"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport Sendbird, { DeviceOsPlatform, SendbirdPlatform, SendbirdProduct } from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SBUConfig, UIKitConfigProvider } from '@sendbird/uikit-tools';\nimport type {\n PartialDeep,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport { NOOP, useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\nimport type { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\ntype UnimplementedFeatures = 'enableVoiceMessage' | 'threadReplySelectType' | 'replyType';\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n USE_USER_ID_FOR_NICKNAME: false,\n IMAGE_COMPRESSION: true,\n },\n});\n\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n };\n chatOptions: {\n localCacheStorage: LocalCacheStorage;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n } & Partial<ChatRelatedFeaturesInUIKit>;\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], UnimplementedFeatures> & {\n replyType: Extract<SBUConfig['groupChannel']['channel']['replyType'], 'none' | 'quote_reply'>;\n };\n groupChannelList: SBUConfig['groupChannel']['channelList'];\n groupChannelSettings: SBUConfig['groupChannel']['setting'];\n openChannel: SBUConfig['openChannel']['channel'];\n }>;\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n userMention,\n imageCompression,\n}: SendbirdUIKitContainerProps) => {\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n }\n\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n\n const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, internalStorage, chatOptions.onInitialized);\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n\n const mentionManager = useMemo(() => {\n const config = new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n return new MentionManager(config);\n }, [userMention?.mentionLimit, userMention?.suggestionLimit, userMention?.debounceMills]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, internalStorage, chatOptions.onInitialized);\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n return (\n <SafeAreaProvider>\n <UIKitConfigProvider\n storage={internalStorage}\n localConfigs={{\n common: uikitOptions?.common,\n groupChannel: {\n channel: uikitOptions?.groupChannel,\n channelList: uikitOptions?.groupChannelList,\n setting: uikitOptions?.groupChannelSettings,\n },\n openChannel: {\n channel: uikitOptions?.openChannel,\n },\n }}\n >\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n enableAutoPushTokenRegistration={\n chatOptions.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableUseUserIdForNickname={\n chatOptions.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableImageCompression={chatOptions.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider\n onCreateChannel={userProfile?.onCreateChannel}\n onBeforeCreateChannel={userProfile?.onBeforeCreateChannel}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ReactionProvider>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </UIKitConfigProvider>\n </SafeAreaProvider>\n );\n};\n\nconst initializeSendbird = (\n appId: string,\n internalStorage?: InternalLocalCacheStorage,\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK,\n) => {\n const unsubscribes: Array<() => void> = [];\n let chatSDK: SendbirdChatSDK;\n\n chatSDK = Sendbird.init({\n appId,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: Boolean(internalStorage),\n useAsyncStorageStore: internalStorage as never,\n newInstance: true,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n const platform = getDeviceOSPlatform();\n if (SendbirdUIKit.VERSION && platform) {\n const deviceOSInfo = { platform, version: String(Platform.Version) };\n const customData = { platform_version: getReactNativeVersion() };\n const uikitExtension = {\n product: SendbirdProduct.UIKIT_CHAT,\n version: SendbirdUIKit.VERSION,\n platform: SendbirdPlatform.REACT_NATIVE,\n };\n\n chatSDK.addSendbirdExtensions([uikitExtension], deviceOSInfo, customData);\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nfunction getDeviceOSPlatform() {\n switch (Platform.OS) {\n case 'android':\n return DeviceOsPlatform.ANDROID;\n case 'ios':\n return DeviceOsPlatform.IOS;\n case 'web':\n return DeviceOsPlatform.WEB;\n case 'windows':\n return DeviceOsPlatform.WINDOWS;\n default:\n return undefined;\n }\n}\n\nfunction getReactNativeVersion() {\n const { major, minor, patch } = Platform.constants.reactNativeVersion;\n return `${major}.${minor}.${patch}`;\n}\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,gBAAgB,QAAQ,gCAAgC;AAEjE,OAAOC,QAAQ,IAAIC,gBAAgB,EAAEC,gBAAgB,EAAEC,eAAe,QAAQ,gBAAgB;AAC9F,SAASC,kBAAkB,QAAQ,6BAA6B;AAChE,SAASC,iBAAiB,QAAQ,4BAA4B;AAE9D,SACEC,cAAc,EACdC,MAAM,EACNC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,EACbC,kBAAkB,QACb,yCAAyC;AAChD,SAAoBC,mBAAmB,QAAQ,uBAAuB;AAStE,SAASC,IAAI,EAAEC,eAAe,QAAQ,uBAAuB;AAE7D,SAASC,mBAAmB,EAAEC,oBAAoB,QAAQ,6BAA6B;AACvF,SAASC,uBAAuB,QAAQ,gCAAgC;AACxE,SAASC,gBAAgB,QAAQ,yBAAyB;AAE1D,SAASC,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,OAAOC,YAAY,MAAM,sBAAsB;AAE/C,OAAOC,sBAAsB,MAAM,gCAAgC;AACnE,OAAOC,yBAAyB,MAAM,mCAAmC;AACzE,OAAOC,aAAa,MAAkC,uBAAuB;AAC7E,OAAOC,cAAc,MAAM,wBAAwB;AACnD,OAAOC,WAAW,MAAM,8BAA8B;AAEtD,OAAOC,gBAAgB,MAAM,2BAA2B;AAQxD,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,8BAA8B,MAAM,kCAAkC;AAE7E,MAAMC,OAAO,GAAGH,gBAAgB,CAACI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC;AAE/E,OAAO,MAAMC,aAAa,GAAGC,MAAM,CAACC,MAAM,CAAC;EACzCN,OAAO;EACPO,QAAQ,EAAErC,QAAQ,CAACsC,EAAE,CAACC,WAAW,EAAE;EACnCC,OAAO,EAAE;IACPC,4BAA4B,EAAE,IAAI;IAClCC,wBAAwB,EAAE,KAAK;IAC/BC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAoDF,MAAMC,sBAAsB,GAAGC,IAAA,IAaI;EAAA,IAbH;IAC9BC,QAAQ;IACRC,KAAK;IACLC,WAAW;IACXC,YAAY;IACZC,gBAAgB;IAChBC,YAAY;IACZC,MAAM;IACNC,aAAa;IACbC,KAAK;IACLC,WAAW;IACXC,WAAW;IACXC;EAC2B,CAAC,GAAAZ,IAAA;EAC5B,IAAI,CAACG,WAAW,CAACU,iBAAiB,EAAE;IAClC,MAAM,IAAIC,KAAK,CAAC,mEAAmE,CAAC;EACtF;EAEA,MAAMC,gBAAgB,GAAG,CAAAT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,SAAS,KAAIjC,WAAW;EAE/D,MAAMkC,YAAY,GAAG9C,eAAe,EAAE;EACtC,MAAM+C,YAAY,GAAGjE,MAAM,CAAoB,EAAE,CAAC;EAElD,MAAM,CAACkE,eAAe,CAAC,GAAGjE,QAAQ,CAAC,MAAM,IAAI0B,yBAAyB,CAACuB,WAAW,CAACU,iBAAiB,CAAC,CAAC;EACtG,MAAM,CAACO,WAAW,EAAEC,cAAc,CAAC,GAAGnE,QAAQ,CAAkB,MAAM;IACpE,MAAMoE,QAAQ,GAAGC,kBAAkB,CAACrB,KAAK,EAAEiB,eAAe,EAAEhB,WAAW,CAACqB,aAAa,CAAC;IACtFN,YAAY,CAACO,OAAO,GAAGH,QAAQ,CAACJ,YAAY;IAC5C,OAAOI,QAAQ,CAACI,OAAO;EACzB,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAG3E,OAAO,CAAC,MAAM,IAAI0B,YAAY,CAACyC,eAAe,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAExF,MAAMS,cAAc,GAAG5E,OAAO,CAAC,MAAM;IACnC,MAAM6E,MAAM,GAAG,IAAIhD,aAAa,CAAC;MAC/BiD,YAAY,EAAE,CAAAnB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmB,YAAY,KAAIjD,aAAa,CAACc,OAAO,CAACoC,aAAa;MAC9EC,eAAe,EAAE,CAAArB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEqB,eAAe,KAAInD,aAAa,CAACc,OAAO,CAACsC,gBAAgB;MACvFC,aAAa,EAAE,CAAAvB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEuB,aAAa,KAAIrD,aAAa,CAACc,OAAO,CAACwC,cAAc;MACjFC,SAAS,EAAEvD,aAAa,CAACc,OAAO,CAAC0C,SAAS;MAC1CC,OAAO,EAAEzD,aAAa,CAACc,OAAO,CAAC4C;IACjC,CAAC,CAAC;IACF,OAAO,IAAIzD,cAAc,CAAC+C,MAAM,CAAC;EACnC,CAAC,EAAE,CAAClB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmB,YAAY,EAAEnB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEqB,eAAe,EAAErB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEuB,aAAa,CAAC,CAAC;EAEzF,MAAMM,sBAAsB,GAAGxF,OAAO,CAAC,MAAM;IAC3C,OAAO,IAAI2B,sBAAsB,CAAC;MAChC8D,eAAe,EAAE,CAAA7B,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE6B,eAAe,KAAI9D,sBAAsB,CAACgB,OAAO,CAAC+C,gBAAgB;MACrGC,KAAK,EAAE/B,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE+B,KAAK;MAC9BC,MAAM,EAAEhC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEgC;IAC5B,CAAC,CAAC;EACJ,CAAC,EAAE,CAAChC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE6B,eAAe,EAAE7B,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE+B,KAAK,EAAE/B,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEgC,MAAM,CAAC,CAAC;EAE1F7F,eAAe,CAAC,MAAM;IACpB,IAAI,CAACkE,YAAY,EAAE;MACjB,MAAMK,QAAQ,GAAGC,kBAAkB,CAACrB,KAAK,EAAEiB,eAAe,EAAEhB,WAAW,CAACqB,aAAa,CAAC;MACtFH,cAAc,CAACC,QAAQ,CAACI,OAAO,CAAC;MAChCR,YAAY,CAACO,OAAO,GAAGH,QAAQ,CAACJ,YAAY;IAC9C;IAEA,OAAO,MAAM;MACXA,YAAY,CAACO,OAAO,CAACoB,OAAO,CAAEC,CAAC,IAAK;QAClC,IAAI;UACFA,CAAC,EAAE;QACL,CAAC,CAAC,MAAM,CAAC;MACX,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAAC5C,KAAK,EAAEiB,eAAe,CAAC,CAAC;EAE5B,MAAM4B,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAIvC,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEwC,QAAQ,EAAE;MAC3B,OAAO/C,QAAQ;IACjB,CAAC,MAAM;MACL,oBAAOnD,KAAA,CAAAmG,aAAA,CAAC/D,8BAA8B,EAAKsB,aAAa,EAAGP,QAAQ,CAAkC;IACvG;EACF,CAAC;EAED,oBACEnD,KAAA,CAAAmG,aAAA,CAAC7F,gBAAgB,qBACfN,KAAA,CAAAmG,aAAA,CAAChF,mBAAmB;IAClBiF,OAAO,EAAE/B,eAAgB;IACzBgC,YAAY,EAAE;MACZC,MAAM,EAAEhD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgD,MAAM;MAC5BC,YAAY,EAAE;QACZC,OAAO,EAAElD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEiD,YAAY;QACnCE,WAAW,EAAEnD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEoD,gBAAgB;QAC3CC,OAAO,EAAErD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsD;MACzB,CAAC;MACDC,WAAW,EAAE;QACXL,OAAO,EAAElD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEuD;MACzB;IACF;EAAE,gBAEF7G,KAAA,CAAAmG,aAAA,CAACzE,oBAAoB;IACnB4C,WAAW,EAAEA,WAAY;IACzBO,YAAY,EAAEA,YAAa;IAC3BC,cAAc,EAAEA,cAAe;IAC/BY,sBAAsB,EAAEA,sBAAuB;IAC/CoB,+BAA+B,EAC7BzD,WAAW,CAACyD,+BAA+B,IAAIvE,aAAa,CAACM,OAAO,CAACC,4BACtE;IACDiE,0BAA0B,EACxB1D,WAAW,CAAC0D,0BAA0B,IAAIxE,aAAa,CAACM,OAAO,CAACE,wBACjE;IACDiE,sBAAsB,EAAE3D,WAAW,CAAC2D,sBAAsB,IAAIzE,aAAa,CAACM,OAAO,CAACG;EAAkB,gBAEtGhD,KAAA,CAAAmG,aAAA,CAAC5E,oBAAoB;IAAC2C,SAAS,EAAED;EAAiB,gBAChDjE,KAAA,CAAAmG,aAAA,CAAC3E,uBAAuB;IACtByF,WAAW,EAAE1D,gBAAgB,CAAC2D,IAAK;IACnCC,mBAAmB,EAAE5D,gBAAgB,CAAC6D,YAAa;IACnDC,gBAAgB,EAAE9D,gBAAgB,CAAC+D,SAAU;IAC7CC,YAAY,EAAEhE,gBAAgB,CAACiE;EAAM,gBAErCxH,KAAA,CAAAmG,aAAA,CAACjF,kBAAkB;IAACuG,KAAK,EAAE,CAAAhE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEgE,KAAK,KAAIzG;EAAgB,gBAC1DhB,KAAA,CAAAmG,aAAA,CAACpF,mBAAmB;IAClB2G,eAAe,EAAE,CAAAjE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEiE,eAAe,KAAI5G,MAAO;IACnD6G,iBAAiB,EAAE,CAAAlE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEmE,uBAAuB,KAAI,MAAO;IAC7DC,oBAAoB,EAAE,CAAApE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEoE,oBAAoB,KAAI;EAAK,gBAE3D7H,KAAA,CAAAmG,aAAA,CAAClF,aAAa;IAAC6G,cAAc,EAAEnE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEmE;EAAe,gBACnD9H,KAAA,CAAAmG,aAAA,CAACxE,mBAAmB;IAClBoG,eAAe,EAAEnE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmE,eAAgB;IAC9CC,qBAAqB,EAAEpE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEoE,qBAAsB;IAC1DH,oBAAoB,EAAE,CAAApE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEoE,oBAAoB,KAAI;EAAK,gBAE3D7H,KAAA,CAAAmG,aAAA,CAAC1E,gBAAgB,qBACfzB,KAAA,CAAAmG,aAAA,CAAC7E,mBAAmB,CAAC2G,QAAQ,QACzBC,KAAK,IAAK;IACV,MAAMC,OAAO,GAAG,CAAAD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,OAAO,KAAIlE,gBAAgB;IAClD,oBACEjE,KAAA,CAAAmG,aAAA,CAACtF,cAAc;MACbuH,aAAa,EAAE;QACbC,KAAK,EAAE;UAAEC,EAAE,EAAEH,OAAO,CAACI,MAAM,CAACC;QAAiB,CAAC;QAC9CC,MAAM,EAAE;UACNH,EAAE,EAAEH,OAAO,CAACI,MAAM,CAACG,iBAAiB;UACpCC,MAAM,EAAER,OAAO,CAACI,MAAM,CAACK,qBAAqB;UAC5CC,WAAW,EAAEV,OAAO,CAACI,MAAM,CAACO;QAC9B;MACF;IAAE,GAED7C,cAAc,EAAE,CACF;EAErB,CAAC,CAC4B,CACd,CACC,CACR,CACI,CACH,CACG,CACL,CACF,CACH,CACL;AAEvB,CAAC;AAED,MAAMxB,kBAAkB,GAAGA,CACzBrB,KAAa,EACbiB,eAA2C,EAC3CK,aAAyD,KACtD;EACH,MAAMN,YAA+B,GAAG,EAAE;EAC1C,IAAIQ,OAAwB;EAE5BA,OAAO,GAAGrE,QAAQ,CAACwI,IAAI,CAAC;IACtB3F,KAAK;IACL4F,OAAO,EAAE,CAAC,IAAIrI,kBAAkB,EAAE,EAAE,IAAIC,iBAAiB,EAAE,CAAC;IAC5DqI,iBAAiB,EAAEC,OAAO,CAAC7E,eAAe,CAAC;IAC3C8E,oBAAoB,EAAE9E,eAAwB;IAC9C+E,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,IAAI1E,aAAa,EAAE;IACjBE,OAAO,GAAGF,aAAa,CAACE,OAAO,CAAC;EAClC;EAEA,MAAMyE,QAAQ,GAAGC,mBAAmB,EAAE;EACtC,IAAI/G,aAAa,CAACJ,OAAO,IAAIkH,QAAQ,EAAE;IACrC,MAAME,YAAY,GAAG;MAAEF,QAAQ;MAAEG,OAAO,EAAEC,MAAM,CAACpJ,QAAQ,CAACqJ,OAAO;IAAE,CAAC;IACpE,MAAMC,UAAU,GAAG;MAAEC,gBAAgB,EAAEC,qBAAqB;IAAG,CAAC;IAChE,MAAMC,cAAc,GAAG;MACrBC,OAAO,EAAErJ,eAAe,CAACsJ,UAAU;MACnCR,OAAO,EAAEjH,aAAa,CAACJ,OAAO;MAC9BkH,QAAQ,EAAE5I,gBAAgB,CAACwJ;IAC7B,CAAC;IAEDrF,OAAO,CAACsF,qBAAqB,CAAC,CAACJ,cAAc,CAAC,EAAEP,YAAY,EAAEI,UAAU,CAAC;IACzE/E,OAAO,CAACuF,YAAY,CAAC,UAAU,EAAE5H,aAAa,CAACJ,OAAO,CAAC;EACzD;EAEA,IAAII,aAAa,CAACG,QAAQ,EAAE;IAC1BkC,OAAO,CAACuF,YAAY,CAAC,oBAAoB,EAAE5H,aAAa,CAACG,QAAQ,CAAC;EACpE;EAEA,IAAIL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE+H,gBAAgB,EAAE;IAAA,IAAAC,qBAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,SAAA;IAC7B,IAAI;MACF;MACA;MACA;MACA;MACA;MACAnI,OAAO,CAAC+H,gBAAgB,CAAChJ,IAAI,CAAC,EAAE;IAClC,CAAC,CAAC,MAAM,CAAC;IAET,MAAMqJ,QAAQ,GAAGA,CAACC,QAAoB,EAAEC,YAAkC,KAAK;MAC7E,IAAIC,SAAS,GAAG,CAAC;MACjB,MAAMC,WAAW,GAAGxI,OAAO,CAAC+H,gBAAgB,CAAEU,KAAK,IAAK;QACtD,MAAMC,MAAM,GAAG7B,OAAO,CAAC4B,KAAK,CAACE,WAAW,CAAC,IAAI9B,OAAO,CAAC4B,KAAK,CAACG,mBAAmB,CAAC;;QAE/E;QACA;QACA;QACA,IAAIL,SAAS,KAAK,CAAC,EAAE;UACnBA,SAAS,EAAE;UACX;QACF;QAEA,IAAIG,MAAM,IAAIJ,YAAY,KAAK,QAAQ,EAAED,QAAQ,EAAE;QACnD,IAAI,CAACK,MAAM,IAAIJ,YAAY,KAAK,SAAS,EAAED,QAAQ,EAAE;MACvD,CAAC,CAAC;MACFtG,YAAY,CAAC8G,IAAI,CAACL,WAAW,CAAC;MAC9B,OAAOA,WAAW;IACpB,CAAC;IACD,CAAAR,qBAAA,IAAAC,QAAA,GAAA1F,OAAO,EAACuG,iBAAiB,cAAAd,qBAAA,uBAAzBA,qBAAA,CAAAe,IAAA,CAAAd,QAAA,EAA6Be,QAAQ,IAAKZ,QAAQ,CAACY,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAAd,qBAAA,IAAAC,SAAA,GAAA5F,OAAO,EAAC0G,kBAAkB,cAAAf,qBAAA,uBAA1BA,qBAAA,CAAAa,IAAA,CAAAZ,SAAA,EAA8Be,SAAS,IAAKd,QAAQ,CAACc,SAAS,EAAE,SAAS,CAAC,CAAC;EAC7E;EACA,OAAO;IAAE3G,OAAO;IAAER;EAAa,CAAC;AAClC,CAAC;AAED,SAASkF,mBAAmBA,CAAA,EAAG;EAC7B,QAAQjJ,QAAQ,CAACsC,EAAE;IACjB,KAAK,SAAS;MACZ,OAAOnC,gBAAgB,CAACgL,OAAO;IACjC,KAAK,KAAK;MACR,OAAOhL,gBAAgB,CAACiL,GAAG;IAC7B,KAAK,KAAK;MACR,OAAOjL,gBAAgB,CAACkL,GAAG;IAC7B,KAAK,SAAS;MACZ,OAAOlL,gBAAgB,CAACmL,OAAO;IACjC;MACE,OAAOC,SAAS;EAAC;AAEvB;AAEA,SAAS/B,qBAAqBA,CAAA,EAAG;EAC/B,MAAM;IAAEgC,KAAK;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAG1L,QAAQ,CAAC2L,SAAS,CAACC,kBAAkB;EACrE,OAAQ,GAAEJ,KAAM,IAAGC,KAAM,IAAGC,KAAM,EAAC;AACrC;AAEA,eAAe9I,sBAAsB"}
|
|
1
|
+
{"version":3,"names":["React","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","Sendbird","DeviceOsPlatform","SendbirdPlatform","SendbirdProduct","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","UIKitConfigProvider","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","PLATFORM","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","SendbirdUIKitContainer","_ref","children","appId","chatOptions","uikitOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","userMention","imageCompression","localCacheStorage","Error","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","emojiManager","mentionManager","config","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","imageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","forEach","u","renderChildren","disabled","createElement","storage","localConfigs","common","groupChannel","channel","channelList","groupChannelList","setting","groupChannelSettings","openChannel","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","onCreateChannel","onBeforeCreateChannel","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","localCacheEncryption","onInitialized","init","newInstance","modules","localCacheEnabled","Boolean","useAsyncStorageStore","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","UIKIT_CHAT","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","listener","callback","callbackType","callCount","unsubscribe","state","online","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline","ANDROID","IOS","WEB","WINDOWS","undefined","major","minor","patch","constants","reactNativeVersion"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport Sendbird, { DeviceOsPlatform, SendbirdPlatform, SendbirdProduct } from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SBUConfig, UIKitConfigProvider } from '@sendbird/uikit-tools';\nimport type {\n PartialDeep,\n SendbirdChatSDK,\n SendbirdEncryption,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport { NOOP, useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\nimport type { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\ntype UnimplementedFeatures = 'enableVoiceMessage' | 'threadReplySelectType' | 'replyType';\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n USE_USER_ID_FOR_NICKNAME: false,\n IMAGE_COMPRESSION: true,\n },\n});\n\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n };\n chatOptions: {\n localCacheStorage: LocalCacheStorage;\n localCacheEncryption?: SendbirdEncryption;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n } & Partial<ChatRelatedFeaturesInUIKit>;\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], UnimplementedFeatures> & {\n replyType: Extract<SBUConfig['groupChannel']['channel']['replyType'], 'none' | 'quote_reply'>;\n };\n groupChannelList: SBUConfig['groupChannel']['channelList'];\n groupChannelSettings: SBUConfig['groupChannel']['setting'];\n openChannel: SBUConfig['openChannel']['channel'];\n }>;\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n userMention,\n imageCompression,\n}: SendbirdUIKitContainerProps) => {\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n }\n\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n\n const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, { internalStorage, ...chatOptions });\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n\n const mentionManager = useMemo(() => {\n const config = new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n return new MentionManager(config);\n }, [userMention?.mentionLimit, userMention?.suggestionLimit, userMention?.debounceMills]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, { internalStorage, ...chatOptions });\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n return (\n <SafeAreaProvider>\n <UIKitConfigProvider\n storage={internalStorage}\n localConfigs={{\n common: uikitOptions?.common,\n groupChannel: {\n channel: uikitOptions?.groupChannel,\n channelList: uikitOptions?.groupChannelList,\n setting: uikitOptions?.groupChannelSettings,\n },\n openChannel: {\n channel: uikitOptions?.openChannel,\n },\n }}\n >\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n enableAutoPushTokenRegistration={\n chatOptions.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableUseUserIdForNickname={\n chatOptions.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableImageCompression={chatOptions.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider\n onCreateChannel={userProfile?.onCreateChannel}\n onBeforeCreateChannel={userProfile?.onBeforeCreateChannel}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ReactionProvider>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </UIKitConfigProvider>\n </SafeAreaProvider>\n );\n};\n\nconst initializeSendbird = (\n appId: string,\n options: {\n internalStorage?: InternalLocalCacheStorage;\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;\n localCacheEncryption?: SendbirdEncryption;\n },\n) => {\n let chatSDK: SendbirdChatSDK;\n const unsubscribes: Array<() => void> = [];\n const { internalStorage, localCacheEncryption, onInitialized } = options;\n\n chatSDK = Sendbird.init({\n appId,\n newInstance: true,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: Boolean(internalStorage),\n useAsyncStorageStore: internalStorage as never,\n localCacheEncryption,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n const platform = getDeviceOSPlatform();\n if (SendbirdUIKit.VERSION && platform) {\n const deviceOSInfo = { platform, version: String(Platform.Version) };\n const customData = { platform_version: getReactNativeVersion() };\n const uikitExtension = {\n product: SendbirdProduct.UIKIT_CHAT,\n version: SendbirdUIKit.VERSION,\n platform: SendbirdPlatform.REACT_NATIVE,\n };\n\n chatSDK.addSendbirdExtensions([uikitExtension], deviceOSInfo, customData);\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nfunction getDeviceOSPlatform() {\n switch (Platform.OS) {\n case 'android':\n return DeviceOsPlatform.ANDROID;\n case 'ios':\n return DeviceOsPlatform.IOS;\n case 'web':\n return DeviceOsPlatform.WEB;\n case 'windows':\n return DeviceOsPlatform.WINDOWS;\n default:\n return undefined;\n }\n}\n\nfunction getReactNativeVersion() {\n const { major, minor, patch } = Platform.constants.reactNativeVersion;\n return `${major}.${minor}.${patch}`;\n}\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
|
|
@@ -80,7 +80,7 @@ const useMentionSuggestion = params => {
|
|
|
80
80
|
return (_a$nickname = a.nickname) === null || _a$nickname === void 0 ? void 0 : _a$nickname.localeCompare(b.nickname);
|
|
81
81
|
}).filter(member => {
|
|
82
82
|
var _member$nickname;
|
|
83
|
-
return ((_member$nickname = member.nickname) === null || _member$nickname === void 0 ? void 0 : _member$nickname.toLowerCase().startsWith(searchString.toLowerCase())) && member.userId !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
|
|
83
|
+
return ((_member$nickname = member.nickname) === null || _member$nickname === void 0 ? void 0 : _member$nickname.toLowerCase().startsWith(searchString.toLowerCase())) && member.userId !== (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) && member.isActive;
|
|
84
84
|
}).slice(0, mentionManager.config.suggestionLimit);
|
|
85
85
|
}
|
|
86
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRef","useState","useChannelHandler","isDifferentChannel","useAsyncEffect","useDebounceEffect","useUniqHandlerId","useSendbirdChat","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","refresh","url","id","sdk","onUserJoined","eventChannel","onUserLeft","onUserBanned","isGroupChannel","mentionManager","currentUser","members","setMembers","searchStringRangeRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","slice","sort","a","b","_a$nickname","nickname","localeCompare","_member$nickname","toLowerCase","startsWith","catch","debounceMills","reset","searchStringRange","searchLimited"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { isDifferentChannel, useAsyncEffect, useDebounceEffect, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n sdk: SendbirdChatSDK;\n channel: SendbirdGroupChannel;\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n const id = useUniqHandlerId('useMentionSuggestion');\n\n useChannelHandler(params.sdk, id, {\n onUserJoined(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserLeft(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserBanned(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n if (!eventChannel.isGroupChannel()) return;\n setFreshChannel(eventChannel);\n },\n });\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId))\n .then((members) => members.slice(0, mentionManager.config.suggestionLimit));\n } else {\n return freshChannel.members\n .sort((a, b) => a.nickname?.localeCompare(b.nickname))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId,\n )\n .slice(0, mentionManager.config.suggestionLimit);\n }\n };\n\n useDebounceEffect(\n () => {\n return fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]));\n },\n mentionManager.config.debounceMills,\n [text, selection],\n );\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","useState","useChannelHandler","isDifferentChannel","useAsyncEffect","useDebounceEffect","useUniqHandlerId","useSendbirdChat","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","refresh","url","id","sdk","onUserJoined","eventChannel","onUserLeft","onUserBanned","isGroupChannel","mentionManager","currentUser","members","setMembers","searchStringRangeRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","slice","sort","a","b","_a$nickname","nickname","localeCompare","_member$nickname","toLowerCase","startsWith","isActive","catch","debounceMills","reset","searchStringRange","searchLimited"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { isDifferentChannel, useAsyncEffect, useDebounceEffect, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n sdk: SendbirdChatSDK;\n channel: SendbirdGroupChannel;\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n const id = useUniqHandlerId('useMentionSuggestion');\n\n useChannelHandler(params.sdk, id, {\n onUserJoined(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserLeft(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserBanned(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n if (!eventChannel.isGroupChannel()) return;\n setFreshChannel(eventChannel);\n },\n });\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId))\n .then((members) => members.slice(0, mentionManager.config.suggestionLimit));\n } else {\n return freshChannel.members\n .sort((a, b) => a.nickname?.localeCompare(b.nickname))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId &&\n member.isActive,\n )\n .slice(0, mentionManager.config.suggestionLimit);\n }\n };\n\n useDebounceEffect(\n () => {\n return fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]));\n },\n mentionManager.config.debounceMills,\n [text, selection],\n );\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"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"}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.1.
|
|
1
|
+
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.1.2';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
3
3
|
import { SBUConfig } from '@sendbird/uikit-tools';
|
|
4
|
-
import type { PartialDeep, SendbirdChatSDK, SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';
|
|
4
|
+
import type { PartialDeep, SendbirdChatSDK, SendbirdEncryption, SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';
|
|
5
5
|
import type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';
|
|
6
6
|
import type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';
|
|
7
7
|
import { MentionConfigInterface } from '../libs/MentionConfig';
|
|
@@ -10,7 +10,7 @@ import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInter
|
|
|
10
10
|
import type { ErrorBoundaryProps, LocalCacheStorage } from '../types';
|
|
11
11
|
type UnimplementedFeatures = 'enableVoiceMessage' | 'threadReplySelectType' | 'replyType';
|
|
12
12
|
export declare const SendbirdUIKit: Readonly<{
|
|
13
|
-
VERSION: "3.1.
|
|
13
|
+
VERSION: "3.1.2";
|
|
14
14
|
PLATFORM: string;
|
|
15
15
|
DEFAULT: {
|
|
16
16
|
AUTO_PUSH_TOKEN_REGISTRATION: boolean;
|
|
@@ -28,6 +28,7 @@ export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
|
28
28
|
};
|
|
29
29
|
chatOptions: {
|
|
30
30
|
localCacheStorage: LocalCacheStorage;
|
|
31
|
+
localCacheEncryption?: SendbirdEncryption;
|
|
31
32
|
onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;
|
|
32
33
|
} & Partial<ChatRelatedFeaturesInUIKit>;
|
|
33
34
|
uikitOptions?: PartialDeep<{
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const VERSION = "3.1.
|
|
1
|
+
declare const VERSION = "3.1.2";
|
|
2
2
|
export default VERSION;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sendbird/uikit-react-native",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.2",
|
|
4
4
|
"description": "Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sendbird",
|
|
@@ -58,10 +58,10 @@
|
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@sendbird/uikit-chat-hooks": "3.1.
|
|
62
|
-
"@sendbird/uikit-react-native-foundation": "3.1.
|
|
61
|
+
"@sendbird/uikit-chat-hooks": "3.1.2",
|
|
62
|
+
"@sendbird/uikit-react-native-foundation": "3.1.2",
|
|
63
63
|
"@sendbird/uikit-tools": "^0.0.1-alpha.38",
|
|
64
|
-
"@sendbird/uikit-utils": "3.1.
|
|
64
|
+
"@sendbird/uikit-utils": "3.1.2"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@bam.tech/react-native-image-resizer": "^3.0.4",
|
|
@@ -204,5 +204,5 @@
|
|
|
204
204
|
"readmeFile": "./README.md",
|
|
205
205
|
"displayName": "@sendbird/uikit-react-native"
|
|
206
206
|
},
|
|
207
|
-
"gitHead": "
|
|
207
|
+
"gitHead": "49d482105f9e2bc0643916682126935747a84011"
|
|
208
208
|
}
|
|
@@ -27,9 +27,9 @@ import {
|
|
|
27
27
|
Logger,
|
|
28
28
|
SendbirdBaseMessage,
|
|
29
29
|
SendbirdChannel,
|
|
30
|
-
getAvailableUriFromFileMessage,
|
|
31
30
|
getFileIconFromMessageType,
|
|
32
31
|
getMessageType,
|
|
32
|
+
getThumbnailUriFromFileMessage,
|
|
33
33
|
isImage,
|
|
34
34
|
shouldCompressImage,
|
|
35
35
|
useIIFE,
|
|
@@ -143,7 +143,7 @@ const SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(
|
|
|
143
143
|
<VideoThumbnail
|
|
144
144
|
style={styles.previewImage}
|
|
145
145
|
iconSize={0}
|
|
146
|
-
|
|
146
|
+
source={url}
|
|
147
147
|
fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}
|
|
148
148
|
/>
|
|
149
149
|
);
|
|
@@ -175,9 +175,9 @@ const SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(
|
|
|
175
175
|
const messageType = getMessageType(messageToReply);
|
|
176
176
|
switch (messageType) {
|
|
177
177
|
case 'file.image':
|
|
178
|
-
return getFileIconAsImage(
|
|
178
|
+
return getFileIconAsImage(getThumbnailUriFromFileMessage(messageToReply));
|
|
179
179
|
case 'file.video':
|
|
180
|
-
return getFileIconAsVideoThumbnail(
|
|
180
|
+
return getFileIconAsVideoThumbnail(getThumbnailUriFromFileMessage(messageToReply));
|
|
181
181
|
default:
|
|
182
182
|
return getFileIconAsSymbol(getFileIconFromMessageType(messageType));
|
|
183
183
|
}
|
|
@@ -6,7 +6,18 @@ import { NOOP, SendbirdMessage, getMessageUniqId, useFreshCallback } from '@send
|
|
|
6
6
|
|
|
7
7
|
import FlatListInternal from './FlatListInternal';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
function isInvertedFlatListFixedVersion() {
|
|
10
|
+
if (Platform.constants.reactNativeVersion?.major < 1) {
|
|
11
|
+
if (Platform.constants.reactNativeVersion?.minor < 73) {
|
|
12
|
+
if (Platform.constants.reactNativeVersion?.patch < 4) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let ANDROID_BUG_ALERT_SHOWED = Platform.OS !== 'android' || isInvertedFlatListFixedVersion();
|
|
10
21
|
const BOTTOM_DETECT_THRESHOLD = 50;
|
|
11
22
|
const UNREACHABLE_THRESHOLD = Number.MIN_SAFE_INTEGER;
|
|
12
23
|
|
|
@@ -15,7 +26,6 @@ type Props = Omit<FlatListProps<SendbirdMessage>, 'onEndReached'> & {
|
|
|
15
26
|
onTopReached: () => void;
|
|
16
27
|
onScrolledAwayFromBottom: (value: boolean) => void;
|
|
17
28
|
};
|
|
18
|
-
// FIXME: Inverted FlatList performance issue on Android {@link https://github.com/facebook/react-native/issues/30034}
|
|
19
29
|
const ChatFlatList = forwardRef<RNFlatList, Props>(function ChatFlatList(
|
|
20
30
|
{ onTopReached, onBottomReached, onScrolledAwayFromBottom, onScroll, ...props },
|
|
21
31
|
ref,
|
|
@@ -44,7 +54,8 @@ const ChatFlatList = forwardRef<RNFlatList, Props>(function ChatFlatList(
|
|
|
44
54
|
ANDROID_BUG_ALERT_SHOWED = true;
|
|
45
55
|
// eslint-disable-next-line no-console
|
|
46
56
|
console.warn(
|
|
47
|
-
'UIKit Warning: The
|
|
57
|
+
'UIKit Warning: The Inverted FlatList had performance issues on Android.\n' +
|
|
58
|
+
'This issue was fixed in 0.72.4+\n' +
|
|
48
59
|
'Please refer to the link: https://github.com/facebook/react-native/issues/30034',
|
|
49
60
|
);
|
|
50
61
|
}
|
|
@@ -14,9 +14,9 @@ import {
|
|
|
14
14
|
SendbirdFileMessage,
|
|
15
15
|
SendbirdMessage,
|
|
16
16
|
SendbirdUserMessage,
|
|
17
|
-
getAvailableUriFromFileMessage,
|
|
18
17
|
getFileIconFromMessageType,
|
|
19
18
|
getMessageType,
|
|
19
|
+
getThumbnailUriFromFileMessage,
|
|
20
20
|
truncate,
|
|
21
21
|
useIIFE,
|
|
22
22
|
} from '@sendbird/uikit-utils';
|
|
@@ -57,7 +57,7 @@ const GroupChannelMessageParentMessage = ({ variant, message, childMessage, onPr
|
|
|
57
57
|
<VideoThumbnail
|
|
58
58
|
style={styles.image}
|
|
59
59
|
iconSize={18}
|
|
60
|
-
|
|
60
|
+
source={url}
|
|
61
61
|
fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}
|
|
62
62
|
/>
|
|
63
63
|
);
|
|
@@ -104,10 +104,10 @@ const GroupChannelMessageParentMessage = ({ variant, message, childMessage, onPr
|
|
|
104
104
|
return renderFileMessageAsDownloadable((parentMessage as SendbirdFileMessage).name);
|
|
105
105
|
}
|
|
106
106
|
case 'file.video': {
|
|
107
|
-
return renderFileMessageAsVideoThumbnail(
|
|
107
|
+
return renderFileMessageAsVideoThumbnail(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));
|
|
108
108
|
}
|
|
109
109
|
case 'file.image': {
|
|
110
|
-
return renderFileMessageAsPreview(
|
|
110
|
+
return renderFileMessageAsPreview(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));
|
|
111
111
|
}
|
|
112
112
|
default: {
|
|
113
113
|
return null;
|
|
@@ -18,6 +18,7 @@ import { SBUConfig, UIKitConfigProvider } from '@sendbird/uikit-tools';
|
|
|
18
18
|
import type {
|
|
19
19
|
PartialDeep,
|
|
20
20
|
SendbirdChatSDK,
|
|
21
|
+
SendbirdEncryption,
|
|
21
22
|
SendbirdGroupChannel,
|
|
22
23
|
SendbirdGroupChannelCreateParams,
|
|
23
24
|
SendbirdMember,
|
|
@@ -72,6 +73,7 @@ export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
|
72
73
|
};
|
|
73
74
|
chatOptions: {
|
|
74
75
|
localCacheStorage: LocalCacheStorage;
|
|
76
|
+
localCacheEncryption?: SendbirdEncryption;
|
|
75
77
|
onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;
|
|
76
78
|
} & Partial<ChatRelatedFeaturesInUIKit>;
|
|
77
79
|
uikitOptions?: PartialDeep<{
|
|
@@ -137,7 +139,7 @@ const SendbirdUIKitContainer = ({
|
|
|
137
139
|
|
|
138
140
|
const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));
|
|
139
141
|
const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {
|
|
140
|
-
const sendbird = initializeSendbird(appId, internalStorage, chatOptions
|
|
142
|
+
const sendbird = initializeSendbird(appId, { internalStorage, ...chatOptions });
|
|
141
143
|
unsubscribes.current = sendbird.unsubscribes;
|
|
142
144
|
return sendbird.chatSDK;
|
|
143
145
|
});
|
|
@@ -165,7 +167,7 @@ const SendbirdUIKitContainer = ({
|
|
|
165
167
|
|
|
166
168
|
useLayoutEffect(() => {
|
|
167
169
|
if (!isFirstMount) {
|
|
168
|
-
const sendbird = initializeSendbird(appId, internalStorage, chatOptions
|
|
170
|
+
const sendbird = initializeSendbird(appId, { internalStorage, ...chatOptions });
|
|
169
171
|
setSdkInstance(sendbird.chatSDK);
|
|
170
172
|
unsubscribes.current = sendbird.unsubscribes;
|
|
171
173
|
}
|
|
@@ -270,18 +272,23 @@ const SendbirdUIKitContainer = ({
|
|
|
270
272
|
|
|
271
273
|
const initializeSendbird = (
|
|
272
274
|
appId: string,
|
|
273
|
-
|
|
274
|
-
|
|
275
|
+
options: {
|
|
276
|
+
internalStorage?: InternalLocalCacheStorage;
|
|
277
|
+
onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;
|
|
278
|
+
localCacheEncryption?: SendbirdEncryption;
|
|
279
|
+
},
|
|
275
280
|
) => {
|
|
276
|
-
const unsubscribes: Array<() => void> = [];
|
|
277
281
|
let chatSDK: SendbirdChatSDK;
|
|
282
|
+
const unsubscribes: Array<() => void> = [];
|
|
283
|
+
const { internalStorage, localCacheEncryption, onInitialized } = options;
|
|
278
284
|
|
|
279
285
|
chatSDK = Sendbird.init({
|
|
280
286
|
appId,
|
|
287
|
+
newInstance: true,
|
|
281
288
|
modules: [new GroupChannelModule(), new OpenChannelModule()],
|
|
282
289
|
localCacheEnabled: Boolean(internalStorage),
|
|
283
290
|
useAsyncStorageStore: internalStorage as never,
|
|
284
|
-
|
|
291
|
+
localCacheEncryption,
|
|
285
292
|
});
|
|
286
293
|
|
|
287
294
|
if (onInitialized) {
|
|
@@ -93,7 +93,8 @@ const useMentionSuggestion = (params: {
|
|
|
93
93
|
.filter(
|
|
94
94
|
(member) =>
|
|
95
95
|
member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&
|
|
96
|
-
member.userId !== currentUser?.userId
|
|
96
|
+
member.userId !== currentUser?.userId &&
|
|
97
|
+
member.isActive,
|
|
97
98
|
)
|
|
98
99
|
.slice(0, mentionManager.config.suggestionLimit);
|
|
99
100
|
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const VERSION = '3.1.
|
|
1
|
+
const VERSION = '3.1.2';
|
|
2
2
|
export default VERSION;
|