@sendbird/uikit-react-native 3.7.1 → 3.7.3
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/ChannelMessageList/index.js +2 -3
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChannelThreadMessageList/index.js +2 -3
- package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +2 -2
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +2 -2
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +2 -2
- package/lib/commonjs/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +2 -2
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +2 -2
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +10 -2
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SBUHandlersCtx.js +25 -0
- package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +2 -3
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
- package/lib/commonjs/hooks/useContext.js +8 -1
- package/lib/commonjs/hooks/useContext.js.map +1 -1
- package/lib/commonjs/hooks/usePushTokenRegistration.js +10 -7
- package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
- package/lib/commonjs/localization/StringSet.en.js +2 -3
- package/lib/commonjs/localization/StringSet.en.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +3 -4
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/ChannelThreadMessageList/index.js +3 -4
- package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/index.js +3 -3
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/index.js +3 -3
- package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/index.js +3 -3
- package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +10 -2
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SBUHandlersCtx.js +16 -0
- package/lib/module/contexts/SBUHandlersCtx.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +3 -4
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
- package/lib/module/hooks/useContext.js +6 -0
- package/lib/module/hooks/useContext.js.map +1 -1
- package/lib/module/hooks/usePushTokenRegistration.js +10 -7
- package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
- package/lib/module/localization/StringSet.en.js +2 -2
- package/lib/module/localization/StringSet.en.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 -1
- package/lib/typescript/src/contexts/SBUHandlersCtx.d.ts +21 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadInput.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -1
- package/lib/typescript/src/hooks/useContext.d.ts +1 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/ChannelMessageList/index.tsx +9 -4
- package/src/components/ChannelThreadMessageList/index.tsx +9 -4
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.tsx +1 -1
- package/src/components/GroupChannelMessageRenderer/index.tsx +3 -3
- package/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.tsx +1 -1
- package/src/components/OpenChannelMessageRenderer/index.tsx +3 -3
- package/src/components/ThreadParentMessageRenderer/index.tsx +3 -3
- package/src/containers/SendbirdUIKitContainer.tsx +89 -77
- package/src/contexts/SBUHandlersCtx.tsx +27 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +3 -4
- package/src/hooks/useContext.ts +7 -0
- package/src/hooks/usePushTokenRegistration.ts +10 -7
- package/src/localization/StringSet.en.ts +2 -2
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","SendbirdChat","DeviceOsPlatform","SendbirdPlatform","SendbirdProduct","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","UIKitConfigProvider","Logger","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","VoiceMessageConfig","VoiceMessageStatusManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","PLATFORM","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","chatOmitKeys","sanitizeChatOptions","chatOptions","opts","forEach","key","SendbirdUIKitContainer","props","children","appId","uikitOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","reaction","localCacheStorage","Error","warn","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","imageCompressionConfig","voiceMessageConfig","mentionConfig","useConfigInstance","emojiManager","mentionManager","voiceMessageStatusManager","u","renderChildren","disabled","createElement","storage","localConfigs","common","groupChannel","channel","enableReactionsSupergroup","undefined","channelList","groupChannelList","setting","groupChannelSettings","openChannel","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","playerService","player","recorderService","recorder","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","_extends","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","onInitialized","chatInitParams","isMMKVStorage","init","newInstance","modules","localCacheEnabled","useMMKVStorageStore","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","Boolean","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline","ANDROID","IOS","WEB","WINDOWS","major","minor","patch","constants","reactNativeVersion","_ref","_voiceMessage$recorde3","_voiceMessage$recorde4","imageCompression","userMention","voiceMessage","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","compressionRate","COMPRESSION_RATE","width","height","_voiceMessage$recorde","_voiceMessage$recorde2","minDuration","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import type { AsyncStorageStatic } from '@react-native-async-storage/async-storage';\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport type { MMKV } from 'react-native-mmkv';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport SendbirdChat, { DeviceOsPlatform, SendbirdChatParams, 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 {\n Logger,\n NOOP,\n PartialDeep,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n useIsFirstMount,\n} 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 VoiceMessageConfig, { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig';\nimport VoiceMessageStatusManager from '../libs/VoiceMessageStatusManager';\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 PlayerServiceInterface,\n RecorderServiceInterface,\n} from '../platform/types';\nimport { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\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 ChatOmittedInitParams = Omit<\n SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>,\n (typeof chatOmitKeys)[number]\n>;\n\nconst chatOmitKeys = [\n 'appId',\n 'newInstance',\n 'modules',\n 'debugMode',\n 'appVersion',\n 'localCacheEnabled',\n 'useAsyncStorageStore',\n 'useMMKVStorageStore',\n] as const;\nfunction sanitizeChatOptions<T extends Record<string, unknown>>(chatOptions: T): T {\n const opts = { ...chatOptions };\n chatOmitKeys.forEach((key) => delete opts[key]);\n return opts;\n}\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n player: PlayerServiceInterface;\n recorder: RecorderServiceInterface;\n };\n chatOptions: Partial<ChatOmittedInitParams> &\n Partial<ChatRelatedFeaturesInUIKit> & {\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n localCacheStorage: LocalCacheStorage;\n };\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], 'enableReactionsSupergroup'> & {\n /**\n * @deprecated Currently, this feature is turned off by default. If you wish to use this feature, contact us: {@link https://dashboard.sendbird.com/settings/contact_us?category=feedback_and_feature_requests&product=UIKit}\n */\n enableReactionsSupergroup: never;\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) => React.ReactNode;\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 reaction?: {\n onPressUserProfile?: (user: SendbirdUser | SendbirdMember) => void;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n voiceMessage?: PartialDeep<VoiceMessageConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = (props: SendbirdUIKitContainerProps) => {\n const {\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n reaction,\n } = props;\n\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n } else if ('getItem' in chatOptions.localCacheStorage) {\n Logger.warn(\n 'SendbirdUIKitContainer: localCacheStorage for `AsyncStorage` is deprecated. Please use `MMKV` instead.',\n );\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, sanitizeChatOptions(chatOptions));\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const { imageCompressionConfig, voiceMessageConfig, mentionConfig } = useConfigInstance(props);\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n const mentionManager = useMemo(() => new MentionManager(mentionConfig), [mentionConfig]);\n const voiceMessageStatusManager = useMemo(() => new VoiceMessageStatusManager(), []);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, sanitizeChatOptions(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, enableReactionsSupergroup: undefined },\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 voiceMessageConfig={voiceMessageConfig}\n voiceMessageStatusManager={voiceMessageStatusManager}\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 playerService={platformServices.player}\n recorderService={platformServices.recorder}\n voiceMessageConfig={voiceMessageConfig}\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 {...userProfile} statusBarTranslucent={styles?.statusBarTranslucent ?? true}>\n <ReactionProvider {...reaction}>\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\ninterface InitOptions extends ChatOmittedInitParams {\n localCacheStorage: LocalCacheStorage;\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;\n}\nconst initializeSendbird = (appId: string, options: InitOptions) => {\n let chatSDK: SendbirdChatSDK;\n const unsubscribes: Array<() => void> = [];\n const { localCacheStorage, onInitialized, ...chatInitParams } = options;\n\n const isMMKVStorage = 'getString' in localCacheStorage;\n chatSDK = SendbirdChat.init({\n ...chatInitParams,\n appId,\n newInstance: true,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: true,\n useMMKVStorageStore: isMMKVStorage ? (localCacheStorage as MMKV) : undefined,\n useAsyncStorageStore: !isMMKVStorage ? (localCacheStorage as AsyncStorageStatic) : undefined,\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\nconst useConfigInstance = ({ imageCompression, userMention, voiceMessage }: SendbirdUIKitContainerProps) => {\n const mentionConfig = useMemo(() => {\n return 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 }, [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 const voiceMessageConfig = useMemo(() => {\n return new VoiceMessageConfig({\n recorder: {\n minDuration: voiceMessage?.recorder?.minDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: voiceMessage?.recorder?.maxDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n },\n });\n }, [voiceMessage?.recorder?.minDuration, voiceMessage?.recorder?.maxDuration]);\n\n return {\n mentionConfig,\n imageCompressionConfig,\n voiceMessageConfig,\n };\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","SendbirdChat","DeviceOsPlatform","SendbirdPlatform","SendbirdProduct","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","UIKitConfigProvider","Logger","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SBUHandlersProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","SBUUtils","VoiceMessageConfig","VoiceMessageStatusManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","PLATFORM","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","chatOmitKeys","sanitizeChatOptions","chatOptions","opts","forEach","key","SendbirdUIKitContainer","props","children","appId","uikitOptions","platformServices","localization","styles","errorBoundary","handlers","toast","userProfile","reaction","localCacheStorage","Error","warn","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","imageCompressionConfig","voiceMessageConfig","mentionConfig","useConfigInstance","emojiManager","mentionManager","voiceMessageStatusManager","u","renderChildren","disabled","createElement","sbuHandlers","onOpenURL","openURL","onOpenFileURL","storage","localConfigs","common","groupChannel","channel","enableReactionsSupergroup","undefined","channelList","groupChannelList","setting","groupChannelSettings","openChannel","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","playerService","player","recorderService","recorder","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","_extends","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","onInitialized","chatInitParams","isMMKVStorage","init","newInstance","modules","localCacheEnabled","useMMKVStorageStore","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","Boolean","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline","ANDROID","IOS","WEB","WINDOWS","major","minor","patch","constants","reactNativeVersion","_ref","_voiceMessage$recorde3","_voiceMessage$recorde4","imageCompression","userMention","voiceMessage","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","compressionRate","COMPRESSION_RATE","width","height","_voiceMessage$recorde","_voiceMessage$recorde2","minDuration","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import type { AsyncStorageStatic } from '@react-native-async-storage/async-storage';\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport type { MMKV } from 'react-native-mmkv';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport SendbirdChat, { DeviceOsPlatform, SendbirdChatParams, 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 {\n Logger,\n NOOP,\n PartialDeep,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n useIsFirstMount,\n} from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport { type SBUHandlers, SBUHandlersProvider } from '../contexts/SBUHandlersCtx';\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 SBUUtils from '../libs/SBUUtils';\nimport VoiceMessageConfig, { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig';\nimport VoiceMessageStatusManager from '../libs/VoiceMessageStatusManager';\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 PlayerServiceInterface,\n RecorderServiceInterface,\n} from '../platform/types';\nimport { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\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 ChatOmittedInitParams = Omit<\n SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>,\n (typeof chatOmitKeys)[number]\n>;\n\nconst chatOmitKeys = [\n 'appId',\n 'newInstance',\n 'modules',\n 'debugMode',\n 'appVersion',\n 'localCacheEnabled',\n 'useAsyncStorageStore',\n 'useMMKVStorageStore',\n] as const;\nfunction sanitizeChatOptions<T extends Record<string, unknown>>(chatOptions: T): T {\n const opts = { ...chatOptions };\n chatOmitKeys.forEach((key) => delete opts[key]);\n return opts;\n}\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n player: PlayerServiceInterface;\n recorder: RecorderServiceInterface;\n };\n chatOptions: Partial<ChatOmittedInitParams> &\n Partial<ChatRelatedFeaturesInUIKit> & {\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n localCacheStorage: LocalCacheStorage;\n };\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], 'enableReactionsSupergroup'> & {\n /**\n * @deprecated Currently, this feature is turned off by default. If you wish to use this feature, contact us: {@link https://dashboard.sendbird.com/settings/contact_us?category=feedback_and_feature_requests&product=UIKit}\n */\n enableReactionsSupergroup: never;\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) => React.ReactNode;\n };\n handlers?: Partial<SBUHandlers>;\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 reaction?: {\n onPressUserProfile?: (user: SendbirdUser | SendbirdMember) => void;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n voiceMessage?: PartialDeep<VoiceMessageConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = (props: SendbirdUIKitContainerProps) => {\n const {\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n handlers,\n toast,\n userProfile,\n reaction,\n } = props;\n\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n } else if ('getItem' in chatOptions.localCacheStorage) {\n Logger.warn(\n 'SendbirdUIKitContainer: localCacheStorage for `AsyncStorage` is deprecated. Please use `MMKV` instead.',\n );\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, sanitizeChatOptions(chatOptions));\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const { imageCompressionConfig, voiceMessageConfig, mentionConfig } = useConfigInstance(props);\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n const mentionManager = useMemo(() => new MentionManager(mentionConfig), [mentionConfig]);\n const voiceMessageStatusManager = useMemo(() => new VoiceMessageStatusManager(), []);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, sanitizeChatOptions(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 const sbuHandlers: SBUHandlers = {\n onOpenURL: SBUUtils.openURL,\n onOpenFileURL: SBUUtils.openURL,\n ...handlers,\n };\n\n return (\n <SBUHandlersProvider {...sbuHandlers}>\n <SafeAreaProvider>\n <UIKitConfigProvider\n storage={internalStorage}\n localConfigs={{\n common: uikitOptions?.common,\n groupChannel: {\n channel: { ...uikitOptions?.groupChannel, enableReactionsSupergroup: undefined },\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 voiceMessageConfig={voiceMessageConfig}\n voiceMessageStatusManager={voiceMessageStatusManager}\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 playerService={platformServices.player}\n recorderService={platformServices.recorder}\n voiceMessageConfig={voiceMessageConfig}\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 {...userProfile} statusBarTranslucent={styles?.statusBarTranslucent ?? true}>\n <ReactionProvider {...reaction}>\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 </SBUHandlersProvider>\n );\n};\n\ninterface InitOptions extends ChatOmittedInitParams {\n localCacheStorage: LocalCacheStorage;\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;\n}\nconst initializeSendbird = (appId: string, options: InitOptions) => {\n let chatSDK: SendbirdChatSDK;\n const unsubscribes: Array<() => void> = [];\n const { localCacheStorage, onInitialized, ...chatInitParams } = options;\n\n const isMMKVStorage = 'getString' in localCacheStorage;\n chatSDK = SendbirdChat.init({\n ...chatInitParams,\n appId,\n newInstance: true,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: true,\n useMMKVStorageStore: isMMKVStorage ? (localCacheStorage as MMKV) : undefined,\n useAsyncStorageStore: !isMMKVStorage ? (localCacheStorage as AsyncStorageStatic) : undefined,\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\nconst useConfigInstance = ({ imageCompression, userMention, voiceMessage }: SendbirdUIKitContainerProps) => {\n const mentionConfig = useMemo(() => {\n return 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 }, [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 const voiceMessageConfig = useMemo(() => {\n return new VoiceMessageConfig({\n recorder: {\n minDuration: voiceMessage?.recorder?.minDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: voiceMessage?.recorder?.maxDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n },\n });\n }, [voiceMessage?.recorder?.minDuration, voiceMessage?.recorder?.maxDuration]);\n\n return {\n mentionConfig,\n imageCompressionConfig,\n voiceMessageConfig,\n };\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export const SBUHandlersContext = /*#__PURE__*/React.createContext(null);
|
|
3
|
+
export const SBUHandlersProvider = _ref => {
|
|
4
|
+
let {
|
|
5
|
+
children,
|
|
6
|
+
onOpenURL,
|
|
7
|
+
onOpenFileURL
|
|
8
|
+
} = _ref;
|
|
9
|
+
return /*#__PURE__*/React.createElement(SBUHandlersContext.Provider, {
|
|
10
|
+
value: {
|
|
11
|
+
onOpenURL,
|
|
12
|
+
onOpenFileURL
|
|
13
|
+
}
|
|
14
|
+
}, children);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=SBUHandlersCtx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","SBUHandlersContext","createContext","SBUHandlersProvider","_ref","children","onOpenURL","onOpenFileURL","createElement","Provider","value"],"sources":["SBUHandlersCtx.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface SBUHandlers {\n /**\n * Callback function to handle opening a URL.\n * This is triggered when a URL needs to be opened.\n */\n onOpenURL: (url: string) => void;\n\n /**\n * Callback function to handle opening a file URL.\n * This is triggered when a file URL needs to be opened.\n *\n * Note that this function is also called redundantly\n * when `onPressMediaMessage` handler is triggered by clicking on media messages containing images, videos, or audio.\n */\n onOpenFileURL: (url: string) => void;\n}\n\ntype Props = React.PropsWithChildren<SBUHandlers>;\n\nexport type SBUHandlersContextType = SBUHandlers;\n\nexport const SBUHandlersContext = React.createContext<SBUHandlersContextType | null>(null);\nexport const SBUHandlersProvider = ({ children, onOpenURL, onOpenFileURL }: Props) => {\n return <SBUHandlersContext.Provider value={{ onOpenURL, onOpenFileURL }}>{children}</SBUHandlersContext.Provider>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAuBzB,OAAO,MAAMC,kBAAkB,gBAAGD,KAAK,CAACE,aAAa,CAAgC,IAAI,CAAC;AAC1F,OAAO,MAAMC,mBAAmB,GAAGC,IAAA,IAAmD;EAAA,IAAlD;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAqB,CAAC,GAAAH,IAAA;EAC/E,oBAAOJ,KAAA,CAAAQ,aAAA,CAACP,kBAAkB,CAACQ,QAAQ;IAACC,KAAK,EAAE;MAAEJ,SAAS;MAAEC;IAAc;EAAE,GAAEF,QAAQ,CAA+B;AACnH,CAAC"}
|
package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js
CHANGED
|
@@ -3,8 +3,7 @@ import { TouchableOpacity, View } from 'react-native';
|
|
|
3
3
|
import { Avatar, Divider, Icon, Text, createStyleSheet, useAlert, useBottomSheet, useToast, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
4
4
|
import { Logger, getAvailableUriFromFileMessage, getFileExtension, getFileType, isMyMessage, isVoiceMessage, shouldRenderReaction, toMegabyte } from '@sendbird/uikit-utils';
|
|
5
5
|
import ThreadParentMessageRenderer from '../../../components/ThreadParentMessageRenderer';
|
|
6
|
-
import { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';
|
|
7
|
-
import SBUUtils from '../../../libs/SBUUtils';
|
|
6
|
+
import { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../../hooks/useContext';
|
|
8
7
|
import { GroupChannelThreadContexts } from '../module/moduleContext';
|
|
9
8
|
import { ReactionAddons } from './../../../components/ReactionAddons';
|
|
10
9
|
const GroupChannelThreadParentMessageInfo = props => {
|
|
@@ -155,6 +154,7 @@ const useCreateMessagePressActions = _ref => {
|
|
|
155
154
|
onPressMediaMessage,
|
|
156
155
|
onEditMessage
|
|
157
156
|
} = _ref;
|
|
157
|
+
const handlers = useSBUHandlers();
|
|
158
158
|
const {
|
|
159
159
|
STRINGS
|
|
160
160
|
} = useLocalization();
|
|
@@ -205,9 +205,8 @@ const useCreateMessagePressActions = _ref => {
|
|
|
205
205
|
const fileType = getFileType(message.type || getFileExtension(message.name));
|
|
206
206
|
if (['image', 'video', 'audio'].includes(fileType)) {
|
|
207
207
|
onPressMediaMessage === null || onPressMediaMessage === void 0 ? void 0 : onPressMediaMessage(message, () => onDeleteMessage === null || onDeleteMessage === void 0 ? void 0 : onDeleteMessage(message), getAvailableUriFromFileMessage(message));
|
|
208
|
-
} else {
|
|
209
|
-
SBUUtils.openURL(message.url);
|
|
210
208
|
}
|
|
209
|
+
handlers.onOpenFileURL(message.url);
|
|
211
210
|
}
|
|
212
211
|
};
|
|
213
212
|
const alertForMessageDelete = message => {
|
package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useContext","TouchableOpacity","View","Avatar","Divider","Icon","Text","createStyleSheet","useAlert","useBottomSheet","useToast","useUIKitTheme","Logger","getAvailableUriFromFileMessage","getFileExtension","getFileType","isMyMessage","isVoiceMessage","shouldRenderReaction","toMegabyte","ThreadParentMessageRenderer","useLocalization","usePlatformService","useSendbirdChat","SBUUtils","GroupChannelThreadContexts","ReactionAddons","GroupChannelThreadParentMessageInfo","props","_parentMessage$sender","_parentMessage$thread","channel","parentMessage","setMessageToEdit","Fragment","STRINGS","colors","sbOptions","nickName","sender","nickname","LABELS","USER_NO_NAME","messageTimestamp","GROUP_CHANNEL_THREAD","PARENT_MESSAGE_TIME","replyCountText","REPLY_COUNT","threadInfo","replyCount","createMessagePressActions","useCreateMessagePressActions","currentUserId","onDeleteMessage","onPressMediaMessage","onEditMessage","onPress","onLongPress","bottomSheetItem","message","renderMessageInfoAndMenu","_parentMessage$sender2","createElement","style","styles","infoAndMenuContainer","size","uri","profileUrl","userNickAndTimeContainer","h2","color","onBackground01","numberOfLines","userNickname","caption2","onBackground03","messageTime","activeOpacity","undefined","icon","onBackground02","renderReplyCount","replyContainer","caption3","replyText","renderReactionAddons","configs","uikitWithAppInfo","groupChannel","isSuper","enableReactionsSupergroup","enableReactions","reactionButtonContainer","Message","reactionAddonType","messageProps","container","messageContainer","flexDirection","height","padding","paddingBottom","flex","marginLeft","marginBottom","marginTop","contextMenuButton","width","justifyContent","paddingHorizontal","paddingVertical","paddingLeft","_ref","toast","openSheet","alert","clipboardService","fileService","onDeleteFailure","error","show","TOAST","DELETE_MSG_ERROR","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","includes","openURL","alertForMessageDelete","title","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","text","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","_ref2","sheetItems","menu","copy","CHANNEL_MESSAGE_COPY","edit","CHANNEL_MESSAGE_EDIT","delete","disabled","CHANNEL_MESSAGE_DELETE","download","CHANNEL_MESSAGE_SAVE","push","isEphemeral","sendingStatus","HeaderComponent","isGroupChannel","_ref3","onClose","BottomSheet","memo"],"sources":["GroupChannelThreadParentMessageInfo.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport {\n Avatar,\n BottomSheetItem,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n getAvailableUriFromFileMessage,\n getFileExtension,\n getFileType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderReaction,\n toMegabyte,\n} from '@sendbird/uikit-utils';\n\nimport ThreadParentMessageRenderer, {\n ThreadParentMessageRendererProps,\n} from '../../../components/ThreadParentMessageRenderer';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';\nimport SBUUtils from '../../../libs/SBUUtils';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\nimport { ReactionAddons } from './../../../components/ReactionAddons';\n\ntype PressActions = { onPress?: () => void; onLongPress?: () => void; bottomSheetItem?: BottomSheetItem };\ntype HandleableMessage = SendbirdUserMessage | SendbirdFileMessage;\ntype CreateMessagePressActions = (params: { message: SendbirdMessage }) => PressActions;\n\nconst GroupChannelThreadParentMessageInfo = (props: GroupChannelThreadProps['ParentMessageInfo']) => {\n const { channel, parentMessage, setMessageToEdit } = useContext(GroupChannelThreadContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { sbOptions } = useSendbirdChat();\n\n const nickName = parentMessage.sender?.nickname || STRINGS.LABELS.USER_NO_NAME;\n const messageTimestamp = STRINGS.GROUP_CHANNEL_THREAD.PARENT_MESSAGE_TIME(parentMessage);\n const replyCountText = STRINGS.GROUP_CHANNEL_THREAD.REPLY_COUNT(parentMessage.threadInfo?.replyCount || 0);\n const createMessagePressActions = useCreateMessagePressActions({\n channel: props.channel,\n currentUserId: props.currentUserId,\n onDeleteMessage: props.onDeleteMessage,\n onPressMediaMessage: props.onPressMediaMessage,\n onEditMessage: setMessageToEdit,\n });\n const { onPress, onLongPress, bottomSheetItem } = createMessagePressActions({ message: parentMessage });\n\n const renderMessageInfoAndMenu = () => {\n return (\n <View style={styles.infoAndMenuContainer}>\n <Avatar size={34} uri={parentMessage.sender?.profileUrl} />\n <View style={styles.userNickAndTimeContainer}>\n <Text h2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {nickName}\n </Text>\n <Text caption2 color={colors.onBackground03} style={styles.messageTime}>\n {messageTimestamp}\n </Text>\n </View>\n <TouchableOpacity activeOpacity={0.7} onPress={bottomSheetItem ? onLongPress : undefined}>\n <Icon icon={'more'} color={colors.onBackground02} />\n </TouchableOpacity>\n </View>\n );\n };\n\n const renderReplyCount = (replyCountText: string) => {\n if (replyCountText) {\n return (\n <View style={styles.replyContainer}>\n <Text caption3 color={colors.onBackground03} style={styles.replyText}>\n {replyCountText}\n </Text>\n <Divider />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const renderReactionAddons = () => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions)) {\n return (\n <View style={styles.reactionButtonContainer}>\n <ReactionAddons.Message\n channel={props.channel}\n message={parentMessage}\n reactionAddonType={'thread_parent_message'}\n />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const messageProps: ThreadParentMessageRendererProps = {\n parentMessage,\n onPress,\n onLongPress,\n };\n\n return (\n <View>\n <View style={styles.container}>{renderMessageInfoAndMenu()}</View>\n <View style={styles.messageContainer}>\n <ThreadParentMessageRenderer {...messageProps}></ThreadParentMessageRenderer>\n </View>\n {renderReactionAddons()}\n <Divider />\n {renderReplyCount(replyCountText)}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'column',\n },\n infoAndMenuContainer: {\n flexDirection: 'row',\n height: 50,\n padding: 16,\n paddingBottom: 0,\n },\n userNickAndTimeContainer: {\n flexDirection: 'column',\n flex: 1,\n marginLeft: 8,\n },\n userNickname: {\n marginBottom: 2,\n },\n messageTime: {\n marginTop: 2,\n },\n contextMenuButton: {\n width: 34,\n height: 34,\n justifyContent: 'flex-end',\n },\n messageContainer: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n reactionButtonContainer: {\n paddingLeft: 16,\n marginBottom: 16,\n },\n replyContainer: {\n flexDirection: 'column',\n },\n replyText: {\n justifyContent: 'center',\n paddingHorizontal: 16,\n paddingVertical: 12,\n },\n});\n\nconst useCreateMessagePressActions = ({\n channel,\n currentUserId,\n onDeleteMessage,\n onPressMediaMessage,\n onEditMessage,\n}: Pick<\n GroupChannelThreadProps['ParentMessageInfo'],\n 'channel' | 'currentUserId' | 'onDeleteMessage' | 'onPressMediaMessage'\n> & { onEditMessage: (message: HandleableMessage) => void }): CreateMessagePressActions => {\n const { STRINGS } = useLocalization();\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { alert } = useAlert();\n const { clipboardService, fileService } = usePlatformService();\n const { sbOptions } = useSendbirdChat();\n\n const onDeleteFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.DELETE_MSG_ERROR, error);\n };\n\n const onCopyText = (message: HandleableMessage) => {\n if (message.isUserMessage()) {\n clipboardService.setString(message.message || '');\n toast.show(STRINGS.TOAST.COPY_OK, 'success');\n }\n };\n\n const onDownloadFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n if (toMegabyte(message.size) > 4) {\n toast.show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: message.url, fileName: message.name, fileType: message.type })\n .then((response) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n const onOpenFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n const fileType = getFileType(message.type || getFileExtension(message.name));\n if (['image', 'video', 'audio'].includes(fileType)) {\n onPressMediaMessage?.(message, () => onDeleteMessage?.(message), getAvailableUriFromFileMessage(message));\n } else {\n SBUUtils.openURL(message.url);\n }\n }\n };\n\n const alertForMessageDelete = (message: HandleableMessage) => {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n { text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n onDeleteMessage?.(message).catch(onDeleteFailure);\n },\n },\n ],\n });\n };\n\n return ({ message }) => {\n if (!message.isUserMessage() && !message.isFileMessage()) return {};\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const menu = {\n copy: (message: HandleableMessage) => ({\n icon: 'copy' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,\n onPress: () => onCopyText(message),\n }),\n edit: (message: HandleableMessage) => ({\n icon: 'edit' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,\n onPress: () => onEditMessage?.(message),\n }),\n delete: (message: HandleableMessage) => ({\n disabled: message.threadInfo ? message.threadInfo.replyCount > 0 : undefined,\n icon: 'delete' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE,\n onPress: () => alertForMessageDelete(message),\n }),\n download: (message: HandleableMessage) => ({\n icon: 'download' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_SAVE,\n onPress: () => onDownloadFile(message),\n }),\n };\n\n if (message.isUserMessage()) {\n sheetItems.push(menu.copy(message));\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.edit(message));\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n if (message.isFileMessage()) {\n if (!isVoiceMessage(message)) {\n sheetItems.push(menu.download(message));\n }\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n const bottomSheetItem: BottomSheetItem = {\n sheetItems,\n HeaderComponent: shouldRenderReaction(\n channel,\n channel.isGroupChannel() && (channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions),\n )\n ? ({ onClose }) => <ReactionAddons.BottomSheet message={message} channel={channel} onClose={onClose} />\n : undefined,\n };\n\n if (message.isFileMessage()) {\n return {\n onPress: () => onOpenFile(message),\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n } else {\n return {\n onPress: undefined,\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n };\n};\n\nexport default React.memo(GroupChannelThreadParentMessageInfo);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useContext","TouchableOpacity","View","Avatar","Divider","Icon","Text","createStyleSheet","useAlert","useBottomSheet","useToast","useUIKitTheme","Logger","getAvailableUriFromFileMessage","getFileExtension","getFileType","isMyMessage","isVoiceMessage","shouldRenderReaction","toMegabyte","ThreadParentMessageRenderer","useLocalization","usePlatformService","useSBUHandlers","useSendbirdChat","GroupChannelThreadContexts","ReactionAddons","GroupChannelThreadParentMessageInfo","props","_parentMessage$sender","_parentMessage$thread","channel","parentMessage","setMessageToEdit","Fragment","STRINGS","colors","sbOptions","nickName","sender","nickname","LABELS","USER_NO_NAME","messageTimestamp","GROUP_CHANNEL_THREAD","PARENT_MESSAGE_TIME","replyCountText","REPLY_COUNT","threadInfo","replyCount","createMessagePressActions","useCreateMessagePressActions","currentUserId","onDeleteMessage","onPressMediaMessage","onEditMessage","onPress","onLongPress","bottomSheetItem","message","renderMessageInfoAndMenu","_parentMessage$sender2","createElement","style","styles","infoAndMenuContainer","size","uri","profileUrl","userNickAndTimeContainer","h2","color","onBackground01","numberOfLines","userNickname","caption2","onBackground03","messageTime","activeOpacity","undefined","icon","onBackground02","renderReplyCount","replyContainer","caption3","replyText","renderReactionAddons","configs","uikitWithAppInfo","groupChannel","isSuper","enableReactionsSupergroup","enableReactions","reactionButtonContainer","Message","reactionAddonType","messageProps","container","messageContainer","flexDirection","height","padding","paddingBottom","flex","marginLeft","marginBottom","marginTop","contextMenuButton","width","justifyContent","paddingHorizontal","paddingVertical","paddingLeft","_ref","handlers","toast","openSheet","alert","clipboardService","fileService","onDeleteFailure","error","show","TOAST","DELETE_MSG_ERROR","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","includes","onOpenFileURL","alertForMessageDelete","title","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","text","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","_ref2","sheetItems","menu","copy","CHANNEL_MESSAGE_COPY","edit","CHANNEL_MESSAGE_EDIT","delete","disabled","CHANNEL_MESSAGE_DELETE","download","CHANNEL_MESSAGE_SAVE","push","isEphemeral","sendingStatus","HeaderComponent","isGroupChannel","_ref3","onClose","BottomSheet","memo"],"sources":["GroupChannelThreadParentMessageInfo.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport {\n Avatar,\n BottomSheetItem,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n getAvailableUriFromFileMessage,\n getFileExtension,\n getFileType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderReaction,\n toMegabyte,\n} from '@sendbird/uikit-utils';\n\nimport ThreadParentMessageRenderer, {\n ThreadParentMessageRendererProps,\n} from '../../../components/ThreadParentMessageRenderer';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\nimport { ReactionAddons } from './../../../components/ReactionAddons';\n\ntype PressActions = { onPress?: () => void; onLongPress?: () => void; bottomSheetItem?: BottomSheetItem };\ntype HandleableMessage = SendbirdUserMessage | SendbirdFileMessage;\ntype CreateMessagePressActions = (params: { message: SendbirdMessage }) => PressActions;\n\nconst GroupChannelThreadParentMessageInfo = (props: GroupChannelThreadProps['ParentMessageInfo']) => {\n const { channel, parentMessage, setMessageToEdit } = useContext(GroupChannelThreadContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { sbOptions } = useSendbirdChat();\n\n const nickName = parentMessage.sender?.nickname || STRINGS.LABELS.USER_NO_NAME;\n const messageTimestamp = STRINGS.GROUP_CHANNEL_THREAD.PARENT_MESSAGE_TIME(parentMessage);\n const replyCountText = STRINGS.GROUP_CHANNEL_THREAD.REPLY_COUNT(parentMessage.threadInfo?.replyCount || 0);\n const createMessagePressActions = useCreateMessagePressActions({\n channel: props.channel,\n currentUserId: props.currentUserId,\n onDeleteMessage: props.onDeleteMessage,\n onPressMediaMessage: props.onPressMediaMessage,\n onEditMessage: setMessageToEdit,\n });\n const { onPress, onLongPress, bottomSheetItem } = createMessagePressActions({ message: parentMessage });\n\n const renderMessageInfoAndMenu = () => {\n return (\n <View style={styles.infoAndMenuContainer}>\n <Avatar size={34} uri={parentMessage.sender?.profileUrl} />\n <View style={styles.userNickAndTimeContainer}>\n <Text h2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {nickName}\n </Text>\n <Text caption2 color={colors.onBackground03} style={styles.messageTime}>\n {messageTimestamp}\n </Text>\n </View>\n <TouchableOpacity activeOpacity={0.7} onPress={bottomSheetItem ? onLongPress : undefined}>\n <Icon icon={'more'} color={colors.onBackground02} />\n </TouchableOpacity>\n </View>\n );\n };\n\n const renderReplyCount = (replyCountText: string) => {\n if (replyCountText) {\n return (\n <View style={styles.replyContainer}>\n <Text caption3 color={colors.onBackground03} style={styles.replyText}>\n {replyCountText}\n </Text>\n <Divider />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const renderReactionAddons = () => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions)) {\n return (\n <View style={styles.reactionButtonContainer}>\n <ReactionAddons.Message\n channel={props.channel}\n message={parentMessage}\n reactionAddonType={'thread_parent_message'}\n />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const messageProps: ThreadParentMessageRendererProps = {\n parentMessage,\n onPress,\n onLongPress,\n };\n\n return (\n <View>\n <View style={styles.container}>{renderMessageInfoAndMenu()}</View>\n <View style={styles.messageContainer}>\n <ThreadParentMessageRenderer {...messageProps}></ThreadParentMessageRenderer>\n </View>\n {renderReactionAddons()}\n <Divider />\n {renderReplyCount(replyCountText)}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'column',\n },\n infoAndMenuContainer: {\n flexDirection: 'row',\n height: 50,\n padding: 16,\n paddingBottom: 0,\n },\n userNickAndTimeContainer: {\n flexDirection: 'column',\n flex: 1,\n marginLeft: 8,\n },\n userNickname: {\n marginBottom: 2,\n },\n messageTime: {\n marginTop: 2,\n },\n contextMenuButton: {\n width: 34,\n height: 34,\n justifyContent: 'flex-end',\n },\n messageContainer: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n reactionButtonContainer: {\n paddingLeft: 16,\n marginBottom: 16,\n },\n replyContainer: {\n flexDirection: 'column',\n },\n replyText: {\n justifyContent: 'center',\n paddingHorizontal: 16,\n paddingVertical: 12,\n },\n});\n\nconst useCreateMessagePressActions = ({\n channel,\n currentUserId,\n onDeleteMessage,\n onPressMediaMessage,\n onEditMessage,\n}: Pick<\n GroupChannelThreadProps['ParentMessageInfo'],\n 'channel' | 'currentUserId' | 'onDeleteMessage' | 'onPressMediaMessage'\n> & { onEditMessage: (message: HandleableMessage) => void }): CreateMessagePressActions => {\n const handlers = useSBUHandlers();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { alert } = useAlert();\n const { clipboardService, fileService } = usePlatformService();\n const { sbOptions } = useSendbirdChat();\n\n const onDeleteFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.DELETE_MSG_ERROR, error);\n };\n\n const onCopyText = (message: HandleableMessage) => {\n if (message.isUserMessage()) {\n clipboardService.setString(message.message || '');\n toast.show(STRINGS.TOAST.COPY_OK, 'success');\n }\n };\n\n const onDownloadFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n if (toMegabyte(message.size) > 4) {\n toast.show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: message.url, fileName: message.name, fileType: message.type })\n .then((response) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n const onOpenFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n const fileType = getFileType(message.type || getFileExtension(message.name));\n if (['image', 'video', 'audio'].includes(fileType)) {\n onPressMediaMessage?.(message, () => onDeleteMessage?.(message), getAvailableUriFromFileMessage(message));\n }\n handlers.onOpenFileURL(message.url);\n }\n };\n\n const alertForMessageDelete = (message: HandleableMessage) => {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n { text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n onDeleteMessage?.(message).catch(onDeleteFailure);\n },\n },\n ],\n });\n };\n\n return ({ message }) => {\n if (!message.isUserMessage() && !message.isFileMessage()) return {};\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const menu = {\n copy: (message: HandleableMessage) => ({\n icon: 'copy' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,\n onPress: () => onCopyText(message),\n }),\n edit: (message: HandleableMessage) => ({\n icon: 'edit' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,\n onPress: () => onEditMessage?.(message),\n }),\n delete: (message: HandleableMessage) => ({\n disabled: message.threadInfo ? message.threadInfo.replyCount > 0 : undefined,\n icon: 'delete' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE,\n onPress: () => alertForMessageDelete(message),\n }),\n download: (message: HandleableMessage) => ({\n icon: 'download' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_SAVE,\n onPress: () => onDownloadFile(message),\n }),\n };\n\n if (message.isUserMessage()) {\n sheetItems.push(menu.copy(message));\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.edit(message));\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n if (message.isFileMessage()) {\n if (!isVoiceMessage(message)) {\n sheetItems.push(menu.download(message));\n }\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n const bottomSheetItem: BottomSheetItem = {\n sheetItems,\n HeaderComponent: shouldRenderReaction(\n channel,\n channel.isGroupChannel() && (channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions),\n )\n ? ({ onClose }) => <ReactionAddons.BottomSheet message={message} channel={channel} onClose={onClose} />\n : undefined,\n };\n\n if (message.isFileMessage()) {\n return {\n onPress: () => onOpenFile(message),\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n } else {\n return {\n onPress: undefined,\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n };\n};\n\nexport default React.memo(GroupChannelThreadParentMessageInfo);\n"],"mappings":"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"}
|
|
@@ -2,8 +2,14 @@ import { useContext } from 'react';
|
|
|
2
2
|
import { LocalizationContext } from '../contexts/LocalizationCtx';
|
|
3
3
|
import { PlatformServiceContext } from '../contexts/PlatformServiceCtx';
|
|
4
4
|
import { ReactionContext } from '../contexts/ReactionCtx';
|
|
5
|
+
import { SBUHandlersContext } from '../contexts/SBUHandlersCtx';
|
|
5
6
|
import { SendbirdChatContext } from '../contexts/SendbirdChatCtx';
|
|
6
7
|
import { UserProfileContext } from '../contexts/UserProfileCtx';
|
|
8
|
+
export const useSBUHandlers = () => {
|
|
9
|
+
const value = useContext(SBUHandlersContext);
|
|
10
|
+
if (!value) throw new Error('SBUHandlersContext is not provided');
|
|
11
|
+
return value;
|
|
12
|
+
};
|
|
7
13
|
export const useLocalization = () => {
|
|
8
14
|
const value = useContext(LocalizationContext);
|
|
9
15
|
if (!value) throw new Error('LocalizationContext is not provided');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","LocalizationContext","PlatformServiceContext","ReactionContext","SendbirdChatContext","UserProfileContext","
|
|
1
|
+
{"version":3,"names":["useContext","LocalizationContext","PlatformServiceContext","ReactionContext","SBUHandlersContext","SendbirdChatContext","UserProfileContext","useSBUHandlers","value","Error","useLocalization","usePlatformService","useSendbirdChat","useUserProfile","useReaction"],"sources":["useContext.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { LocalizationContext } from '../contexts/LocalizationCtx';\nimport { PlatformServiceContext } from '../contexts/PlatformServiceCtx';\nimport { ReactionContext } from '../contexts/ReactionCtx';\nimport { SBUHandlersContext } from '../contexts/SBUHandlersCtx';\nimport { SendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { UserProfileContext } from '../contexts/UserProfileCtx';\n\nexport const useSBUHandlers = () => {\n const value = useContext(SBUHandlersContext);\n if (!value) throw new Error('SBUHandlersContext is not provided');\n return value;\n};\n\nexport const useLocalization = () => {\n const value = useContext(LocalizationContext);\n if (!value) throw new Error('LocalizationContext is not provided');\n return value;\n};\n\nexport const usePlatformService = () => {\n const value = useContext(PlatformServiceContext);\n if (!value) throw new Error('PlatformServiceContext is not provided');\n return value;\n};\n\nexport const useSendbirdChat = () => {\n const value = useContext(SendbirdChatContext);\n if (!value) throw new Error('SendbirdChatContext is not provided');\n return value;\n};\n\nexport const useUserProfile = () => {\n const value = useContext(UserProfileContext);\n if (!value) throw new Error('UserProfileContext is not provided');\n return value;\n};\n\nexport const useReaction = () => {\n const value = useContext(ReactionContext);\n if (!value) throw new Error('ReactionContext is not provided');\n return value;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,kBAAkB,QAAQ,4BAA4B;AAE/D,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMC,KAAK,GAAGR,UAAU,CAACI,kBAAkB,CAAC;EAC5C,IAAI,CAACI,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;EACjE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAME,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMF,KAAK,GAAGR,UAAU,CAACC,mBAAmB,CAAC;EAC7C,IAAI,CAACO,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;EAClE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMH,KAAK,GAAGR,UAAU,CAACE,sBAAsB,CAAC;EAChD,IAAI,CAACM,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,wCAAwC,CAAC;EACrE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMI,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMJ,KAAK,GAAGR,UAAU,CAACK,mBAAmB,CAAC;EAC7C,IAAI,CAACG,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;EAClE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMK,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAML,KAAK,GAAGR,UAAU,CAACM,kBAAkB,CAAC;EAC5C,IAAI,CAACE,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;EACjE,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMM,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMN,KAAK,GAAGR,UAAU,CAACG,eAAe,CAAC;EACzC,IAAI,CAACK,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EAC9D,OAAOD,KAAK;AACd,CAAC"}
|
|
@@ -33,24 +33,27 @@ const usePushTokenRegistration = () => {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
// Register
|
|
36
|
+
// Register token refresh listener
|
|
37
|
+
refreshListener.current = notificationService.onTokenRefresh(registerToken);
|
|
38
|
+
|
|
39
|
+
// Register token
|
|
37
40
|
const token = await getToken();
|
|
38
41
|
if (token) {
|
|
39
42
|
Logger.log('[usePushTokenRegistration]', 'registered token:', token);
|
|
40
|
-
registerToken(token);
|
|
43
|
+
await registerToken(token);
|
|
41
44
|
}
|
|
42
|
-
|
|
43
|
-
// Remove listener
|
|
44
|
-
refreshListener.current = notificationService.onTokenRefresh(registerToken);
|
|
45
45
|
});
|
|
46
46
|
const unregisterPushTokenForCurrentUser = useFreshCallback(async () => {
|
|
47
47
|
var _refreshListener$curr;
|
|
48
|
+
// Unregister token refresh listener
|
|
49
|
+
(_refreshListener$curr = refreshListener.current) === null || _refreshListener$curr === void 0 ? void 0 : _refreshListener$curr.call(refreshListener);
|
|
50
|
+
|
|
51
|
+
// Unregister token
|
|
48
52
|
const token = await getToken();
|
|
49
53
|
if (token) {
|
|
50
|
-
unregisterToken(token);
|
|
54
|
+
await unregisterToken(token);
|
|
51
55
|
Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);
|
|
52
56
|
}
|
|
53
|
-
(_refreshListener$curr = refreshListener.current) === null || _refreshListener$curr === void 0 ? void 0 : _refreshListener$curr.call(refreshListener);
|
|
54
57
|
});
|
|
55
58
|
return {
|
|
56
59
|
registerPushTokenForCurrentUser,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","Platform","Logger","useFreshCallback","useIIFE","usePlatformService","useSendbirdChat","usePushTokenRegistration","sdk","notificationService","refreshListener","registerToken","unregisterToken","getToken","select","ios","token","registerAPNSPushTokenForCurrentUser","default","registerFCMPushTokenForCurrentUser","unregisterAPNSPushTokenForCurrentUser","unregisterFCMPushTokenForCurrentUser","getAPNSToken","getFCMToken","registerPushTokenForCurrentUser","hasPermission","hasPushPermission","pushPermission","requestPushPermission","warn","
|
|
1
|
+
{"version":3,"names":["useRef","Platform","Logger","useFreshCallback","useIIFE","usePlatformService","useSendbirdChat","usePushTokenRegistration","sdk","notificationService","refreshListener","registerToken","unregisterToken","getToken","select","ios","token","registerAPNSPushTokenForCurrentUser","default","registerFCMPushTokenForCurrentUser","unregisterAPNSPushTokenForCurrentUser","unregisterFCMPushTokenForCurrentUser","getAPNSToken","getFCMToken","registerPushTokenForCurrentUser","hasPermission","hasPushPermission","pushPermission","requestPushPermission","warn","current","onTokenRefresh","log","unregisterPushTokenForCurrentUser","_refreshListener$curr","call"],"sources":["usePushTokenRegistration.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { Platform } from 'react-native';\n\nimport { Logger, useFreshCallback, useIIFE } from '@sendbird/uikit-utils';\n\nimport { usePlatformService, useSendbirdChat } from './useContext';\n\nconst usePushTokenRegistration = () => {\n const { sdk } = useSendbirdChat();\n const { notificationService } = usePlatformService();\n\n const refreshListener = useRef<() => void>();\n const [registerToken, unregisterToken, getToken] = useIIFE(() => {\n return [\n Platform.select({\n ios: (token: string) => sdk.registerAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.registerFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: (token: string) => sdk.unregisterAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.unregisterFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: notificationService.getAPNSToken,\n default: notificationService.getFCMToken,\n }),\n ];\n });\n\n const registerPushTokenForCurrentUser = useFreshCallback(async () => {\n // Check and request push permission\n const hasPermission = await notificationService.hasPushPermission();\n if (!hasPermission) {\n const pushPermission = await notificationService.requestPushPermission();\n if (!pushPermission) {\n Logger.warn('[usePushTokenRegistration]', 'Not granted push permission');\n return;\n }\n }\n\n // Register token refresh listener\n refreshListener.current = notificationService.onTokenRefresh(registerToken);\n\n // Register token\n const token = await getToken();\n if (token) {\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n await registerToken(token);\n }\n });\n\n const unregisterPushTokenForCurrentUser = useFreshCallback(async () => {\n // Unregister token refresh listener\n refreshListener.current?.();\n\n // Unregister token\n const token = await getToken();\n if (token) {\n await unregisterToken(token);\n Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);\n }\n });\n\n return { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser };\n};\n\nexport default usePushTokenRegistration;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,MAAM,EAAEC,gBAAgB,EAAEC,OAAO,QAAQ,uBAAuB;AAEzE,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,cAAc;AAElE,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAM;IAAEC;EAAI,CAAC,GAAGF,eAAe,EAAE;EACjC,MAAM;IAAEG;EAAoB,CAAC,GAAGJ,kBAAkB,EAAE;EAEpD,MAAMK,eAAe,GAAGV,MAAM,EAAc;EAC5C,MAAM,CAACW,aAAa,EAAEC,eAAe,EAAEC,QAAQ,CAAC,GAAGT,OAAO,CAAC,MAAM;IAC/D,OAAO,CACLH,QAAQ,CAACa,MAAM,CAAC;MACdC,GAAG,EAAGC,KAAa,IAAKR,GAAG,CAACS,mCAAmC,CAACD,KAAK,CAAC;MACtEE,OAAO,EAAGF,KAAa,IAAKR,GAAG,CAACW,kCAAkC,CAACH,KAAK;IAC1E,CAAC,CAAC,EACFf,QAAQ,CAACa,MAAM,CAAC;MACdC,GAAG,EAAGC,KAAa,IAAKR,GAAG,CAACY,qCAAqC,CAACJ,KAAK,CAAC;MACxEE,OAAO,EAAGF,KAAa,IAAKR,GAAG,CAACa,oCAAoC,CAACL,KAAK;IAC5E,CAAC,CAAC,EACFf,QAAQ,CAACa,MAAM,CAAC;MACdC,GAAG,EAAEN,mBAAmB,CAACa,YAAY;MACrCJ,OAAO,EAAET,mBAAmB,CAACc;IAC/B,CAAC,CAAC,CACH;EACH,CAAC,CAAC;EAEF,MAAMC,+BAA+B,GAAGrB,gBAAgB,CAAC,YAAY;IACnE;IACA,MAAMsB,aAAa,GAAG,MAAMhB,mBAAmB,CAACiB,iBAAiB,EAAE;IACnE,IAAI,CAACD,aAAa,EAAE;MAClB,MAAME,cAAc,GAAG,MAAMlB,mBAAmB,CAACmB,qBAAqB,EAAE;MACxE,IAAI,CAACD,cAAc,EAAE;QACnBzB,MAAM,CAAC2B,IAAI,CAAC,4BAA4B,EAAE,6BAA6B,CAAC;QACxE;MACF;IACF;;IAEA;IACAnB,eAAe,CAACoB,OAAO,GAAGrB,mBAAmB,CAACsB,cAAc,CAACpB,aAAa,CAAC;;IAE3E;IACA,MAAMK,KAAK,GAAG,MAAMH,QAAQ,EAAE;IAC9B,IAAIG,KAAK,EAAE;MACTd,MAAM,CAAC8B,GAAG,CAAC,4BAA4B,EAAE,mBAAmB,EAAEhB,KAAK,CAAC;MACpE,MAAML,aAAa,CAACK,KAAK,CAAC;IAC5B;EACF,CAAC,CAAC;EAEF,MAAMiB,iCAAiC,GAAG9B,gBAAgB,CAAC,YAAY;IAAA,IAAA+B,qBAAA;IACrE;IACA,CAAAA,qBAAA,GAAAxB,eAAe,CAACoB,OAAO,cAAAI,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAzB,eAAe,CAAY;;IAE3B;IACA,MAAMM,KAAK,GAAG,MAAMH,QAAQ,EAAE;IAC9B,IAAIG,KAAK,EAAE;MACT,MAAMJ,eAAe,CAACI,KAAK,CAAC;MAC5Bd,MAAM,CAAC8B,GAAG,CAAC,4BAA4B,EAAE,qBAAqB,EAAEhB,KAAK,CAAC;IACxE;EACF,CAAC,CAAC;EAEF,OAAO;IAAEQ,+BAA+B;IAAES;EAAkC,CAAC;AAC/E,CAAC;AAED,eAAe1B,wBAAwB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { enUS } from 'date-fns/locale';
|
|
2
2
|
import { createBaseStringSet } from './createBaseStringSet';
|
|
3
3
|
const StringSetEn = createBaseStringSet({
|
|
4
|
-
dateLocale
|
|
4
|
+
dateLocale: enUS
|
|
5
5
|
});
|
|
6
6
|
export default StringSetEn;
|
|
7
7
|
//# sourceMappingURL=StringSet.en.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["enUS","createBaseStringSet","StringSetEn","dateLocale"],"sources":["StringSet.en.ts"],"sourcesContent":["import { enUS } from 'date-fns/locale';\n\nimport { createBaseStringSet } from './createBaseStringSet';\n\nconst StringSetEn = createBaseStringSet({ dateLocale: enUS });\n\nexport default StringSetEn;\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,iBAAiB;AAEtC,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,WAAW,GAAGD,mBAAmB,CAAC;EAAEE,UAAU,EAAEH;AAAK,CAAC,CAAC;AAE7D,eAAeE,WAAW"}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.7.
|
|
1
|
+
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.7.3';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO"}
|
|
@@ -5,6 +5,7 @@ import { OpenChannelModule } from '@sendbird/chat/openChannel';
|
|
|
5
5
|
import type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
6
6
|
import { SBUConfig } from '@sendbird/uikit-tools';
|
|
7
7
|
import { PartialDeep, SendbirdChatSDK, SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';
|
|
8
|
+
import { type SBUHandlers } from '../contexts/SBUHandlersCtx';
|
|
8
9
|
import type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';
|
|
9
10
|
import type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';
|
|
10
11
|
import { MentionConfigInterface } from '../libs/MentionConfig';
|
|
@@ -13,7 +14,7 @@ import type { StringSet } from '../localization/StringSet.type';
|
|
|
13
14
|
import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types';
|
|
14
15
|
import { ErrorBoundaryProps, LocalCacheStorage } from '../types';
|
|
15
16
|
export declare const SendbirdUIKit: Readonly<{
|
|
16
|
-
VERSION: "3.7.
|
|
17
|
+
VERSION: "3.7.3";
|
|
17
18
|
PLATFORM: string;
|
|
18
19
|
DEFAULT: {
|
|
19
20
|
AUTO_PUSH_TOKEN_REGISTRATION: boolean;
|
|
@@ -64,6 +65,7 @@ export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
|
64
65
|
onError?: (props: ErrorBoundaryProps) => void;
|
|
65
66
|
ErrorInfoComponent?: (props: ErrorBoundaryProps) => React.ReactNode;
|
|
66
67
|
};
|
|
68
|
+
handlers?: Partial<SBUHandlers>;
|
|
67
69
|
toast?: {
|
|
68
70
|
dismissTimeout?: number;
|
|
69
71
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SBUHandlers {
|
|
3
|
+
/**
|
|
4
|
+
* Callback function to handle opening a URL.
|
|
5
|
+
* This is triggered when a URL needs to be opened.
|
|
6
|
+
*/
|
|
7
|
+
onOpenURL: (url: string) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Callback function to handle opening a file URL.
|
|
10
|
+
* This is triggered when a file URL needs to be opened.
|
|
11
|
+
*
|
|
12
|
+
* Note that this function is also called redundantly
|
|
13
|
+
* when `onPressMediaMessage` handler is triggered by clicking on media messages containing images, videos, or audio.
|
|
14
|
+
*/
|
|
15
|
+
onOpenFileURL: (url: string) => void;
|
|
16
|
+
}
|
|
17
|
+
type Props = React.PropsWithChildren<SBUHandlers>;
|
|
18
|
+
export type SBUHandlersContextType = SBUHandlers;
|
|
19
|
+
export declare const SBUHandlersContext: React.Context<SBUHandlers | null>;
|
|
20
|
+
export declare const SBUHandlersProvider: ({ children, onOpenURL, onOpenFileURL }: Props) => React.JSX.Element;
|
|
21
|
+
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<({ inputDisabled, ...props }: import("@sendbird/uikit-utils").PickPartial<import("../../../components/ChannelInput").ChannelInputProps, "
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ inputDisabled, ...props }: import("@sendbird/uikit-utils").PickPartial<import("../../../components/ChannelInput").ChannelInputProps, "shouldRenderInput" | "onPressSendUserMessage" | "onPressSendFileMessage" | "onPressUpdateUserMessage" | "onPressUpdateFileMessage" | "SuggestedMentionList" | "AttachmentsButton", "inputDisabled">) => React.JSX.Element>;
|
|
3
3
|
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelMessageList").ChannelMessageListProps<import("@sendbird/chat/groupChannel").GroupChannel>, "channel" | "
|
|
2
|
+
declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelMessageList").ChannelMessageListProps<import("@sendbird/chat/groupChannel").GroupChannel>, "channel" | "onBottomReached" | "onTopReached" | "onScrolledAwayFromBottom" | "currentUserId" | "enableMessageGrouping" | "searchItem" | "hasNext" | "onDeleteMessage" | "onResendFailedMessage" | "onPressMediaMessage" | "renderNewMessagesButton" | "renderScrollToBottomButton" | "renderMessage" | "messages" | "newMessages" | "scrolledAwayFromBottom" | "flatListProps"> & {
|
|
3
3
|
onResetMessageList: () => Promise<void>;
|
|
4
4
|
onResetMessageListWithStartingPoint: (startingPoint: number) => Promise<void>;
|
|
5
5
|
onUpdateSearchItem: (searchItem?: {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<({ inputDisabled, ...props }: import("@sendbird/uikit-utils").PickPartial<import("../../../components/ChannelInput").ChannelInputProps, "
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ inputDisabled, ...props }: import("@sendbird/uikit-utils").PickPartial<import("../../../components/ChannelInput").ChannelInputProps, "shouldRenderInput" | "onPressSendUserMessage" | "onPressSendFileMessage" | "onPressUpdateUserMessage" | "onPressUpdateFileMessage" | "SuggestedMentionList" | "AttachmentsButton", "inputDisabled">) => React.JSX.Element>;
|
|
3
3
|
export default _default;
|
package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelThreadMessageList").ChannelThreadMessageListProps<import("@sendbird/chat/groupChannel").GroupChannel>, "channel" | "
|
|
2
|
+
declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelThreadMessageList").ChannelThreadMessageListProps<import("@sendbird/chat/groupChannel").GroupChannel>, "channel" | "onBottomReached" | "onTopReached" | "onScrolledAwayFromBottom" | "currentUserId" | "enableMessageGrouping" | "searchItem" | "hasNext" | "onDeleteMessage" | "onResendFailedMessage" | "onPressMediaMessage" | "renderMessage" | "messages" | "newMessages" | "scrolledAwayFromBottom" | "flatListProps"> & {
|
|
3
3
|
onResetMessageList: () => Promise<void>;
|
|
4
4
|
onResetMessageListWithStartingPoint: (startingPoint: number) => Promise<void>;
|
|
5
5
|
startingPoint?: number | undefined;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<({ inputDisabled, ...props }: import("@sendbird/uikit-utils").PickPartial<import("../../../components/ChannelInput").ChannelInputProps, "
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ inputDisabled, ...props }: import("@sendbird/uikit-utils").PickPartial<import("../../../components/ChannelInput").ChannelInputProps, "shouldRenderInput" | "onPressSendUserMessage" | "onPressSendFileMessage" | "onPressUpdateUserMessage" | "onPressUpdateFileMessage" | "AttachmentsButton", "inputDisabled">) => React.JSX.Element>;
|
|
3
3
|
export default _default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelMessageList").ChannelMessageListProps<import("@sendbird/chat/openChannel").OpenChannel>, "channel" | "
|
|
2
|
+
declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelMessageList").ChannelMessageListProps<import("@sendbird/chat/openChannel").OpenChannel>, "channel" | "onBottomReached" | "onTopReached" | "onScrolledAwayFromBottom" | "currentUserId" | "enableMessageGrouping" | "hasNext" | "onDeleteMessage" | "onResendFailedMessage" | "onPressMediaMessage" | "renderNewMessagesButton" | "renderScrollToBottomButton" | "renderMessage" | "messages" | "newMessages" | "scrolledAwayFromBottom" | "flatListProps">) => React.JSX.Element>;
|
|
3
3
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare const useSBUHandlers: () => import("../contexts/SBUHandlersCtx").SBUHandlers;
|
|
1
2
|
export declare const useLocalization: () => import("../contexts/LocalizationCtx").LocalizationContextType;
|
|
2
3
|
export declare const usePlatformService: () => import("../contexts/PlatformServiceCtx").PlatformServiceContextType;
|
|
3
4
|
export declare const useSendbirdChat: () => import("../contexts/SendbirdChatCtx").SendbirdChatContextType;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const VERSION = "3.7.
|
|
1
|
+
declare const VERSION = "3.7.3";
|
|
2
2
|
export default VERSION;
|