@sendbird/uikit-react-native 2.2.0 → 2.3.0
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/README.md +42 -17
- package/lib/commonjs/components/FileViewer.js +2 -5
- package/lib/commonjs/components/FileViewer.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +1 -6
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +2 -2
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +5 -3
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +14 -3
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +10 -14
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +68 -13
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +3 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +2 -2
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelListFragment.js +4 -14
- package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/commonjs/hooks/useKeyboardStatus.js +13 -9
- package/lib/commonjs/hooks/useKeyboardStatus.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/ImageCompressionConfig.js +38 -0
- package/lib/commonjs/libs/ImageCompressionConfig.js.map +1 -0
- package/lib/commonjs/libs/SBUUtils.js +27 -0
- package/lib/commonjs/libs/SBUUtils.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js +3 -0
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/platform/createMediaService.expo.js +35 -1
- package/lib/commonjs/platform/createMediaService.expo.js.map +1 -1
- package/lib/commonjs/platform/createMediaService.native.js +41 -6
- package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
- package/lib/commonjs/platform/dynamicModule.js +9 -57
- package/lib/commonjs/platform/dynamicModule.js.map +1 -1
- package/lib/commonjs/platform/types.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/FileViewer.js +2 -5
- package/lib/module/components/FileViewer.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/FileMessage/index.js +1 -5
- package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +2 -2
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +4 -4
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +13 -3
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +12 -14
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +69 -14
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +3 -2
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js +2 -2
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/module/fragments/createGroupChannelListFragment.js +5 -9
- package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/module/hooks/useKeyboardStatus.js +12 -9
- package/lib/module/hooks/useKeyboardStatus.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/ImageCompressionConfig.js +30 -0
- package/lib/module/libs/ImageCompressionConfig.js.map +1 -0
- package/lib/module/libs/SBUUtils.js +26 -1
- package/lib/module/libs/SBUUtils.js.map +1 -1
- package/lib/module/localization/StringSet.type.js +3 -0
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/platform/createMediaService.expo.js +33 -1
- package/lib/module/platform/createMediaService.expo.js.map +1 -1
- package/lib/module/platform/createMediaService.native.js +38 -5
- package/lib/module/platform/createMediaService.native.js.map +1 -1
- package/lib/module/platform/dynamicModule.js +10 -56
- package/lib/module/platform/dynamicModule.js.map +1 -1
- package/lib/module/platform/types.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 +10 -7
- package/lib/typescript/src/contexts/PlatformServiceCtx.d.ts +8 -2
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +8 -3
- package/lib/typescript/src/hooks/useContext.d.ts +2 -29
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/libs/ImageCompressionConfig.d.ts +16 -0
- package/lib/typescript/src/libs/SBUUtils.d.ts +6 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +3 -0
- package/lib/typescript/src/platform/createMediaService.expo.d.ts +5 -1
- package/lib/typescript/src/platform/createMediaService.native.d.ts +7 -5
- package/lib/typescript/src/platform/dynamicModule.d.ts +7 -12
- package/lib/typescript/src/platform/types.d.ts +28 -3
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +15 -5
- package/src/components/FileViewer.tsx +2 -5
- package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +6 -1
- package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +1 -1
- package/src/components/MessageRenderer/FileMessage/index.tsx +1 -4
- package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +2 -2
- package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +4 -4
- package/src/containers/SendbirdUIKitContainer.tsx +25 -6
- package/src/contexts/PlatformServiceCtx.tsx +9 -2
- package/src/contexts/SendbirdChatCtx.tsx +22 -19
- package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +82 -14
- package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +1 -0
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +3 -2
- package/src/domain/groupChannelSettings/module/moduleContext.tsx +8 -2
- package/src/fragments/createGroupChannelListFragment.tsx +5 -9
- package/src/hooks/useKeyboardStatus.ts +10 -5
- package/src/index.ts +1 -0
- package/src/libs/ImageCompressionConfig.ts +31 -0
- package/src/libs/SBUUtils.ts +28 -1
- package/src/localization/StringSet.type.ts +7 -0
- package/src/platform/createMediaService.expo.tsx +24 -1
- package/src/platform/createMediaService.native.tsx +31 -9
- package/src/platform/dynamicModule.ts +17 -59
- package/src/platform/types.ts +29 -7
- package/src/version.ts +1 -1
- package/lib/commonjs/utils/common.js +0 -19
- package/lib/commonjs/utils/common.js.map +0 -1
- package/lib/module/utils/common.js +0 -7
- package/lib/module/utils/common.js.map +0 -1
- package/lib/typescript/src/utils/common.d.ts +0 -1
- package/src/utils/common.ts +0 -8
|
@@ -2,10 +2,16 @@ import { useEffect, useState } from 'react';
|
|
|
2
2
|
import { Keyboard, LayoutAnimation, Platform } from 'react-native';
|
|
3
3
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
4
4
|
import { NOOP } from '@sendbird/uikit-utils';
|
|
5
|
+
let isLayoutAnimationConfigured = false;
|
|
5
6
|
|
|
6
7
|
const configureNextLayoutAnimation = event => {
|
|
7
|
-
|
|
8
|
-
LayoutAnimation.
|
|
8
|
+
if (isLayoutAnimationConfigured) return;
|
|
9
|
+
const config = LayoutAnimation.create(event.duration, event.easing, LayoutAnimation.Properties.scaleY);
|
|
10
|
+
isLayoutAnimationConfigured = true;
|
|
11
|
+
|
|
12
|
+
const onEnd = () => isLayoutAnimationConfigured = false;
|
|
13
|
+
|
|
14
|
+
LayoutAnimation.configureNext(config, onEnd, onEnd);
|
|
9
15
|
};
|
|
10
16
|
|
|
11
17
|
const {
|
|
@@ -48,16 +54,13 @@ const useKeyboardStatus = () => {
|
|
|
48
54
|
height,
|
|
49
55
|
bottomSpace
|
|
50
56
|
});
|
|
51
|
-
}), Keyboard.addListener(hideEvent,
|
|
57
|
+
}), Keyboard.addListener(hideEvent, () => {
|
|
52
58
|
const height = 0;
|
|
53
59
|
const bottomSpace = Platform.select({
|
|
54
60
|
default: height
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
default: NOOP
|
|
59
|
-
});
|
|
60
|
-
nextLayoutAnimation(event);
|
|
61
|
+
}); // const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });
|
|
62
|
+
// nextLayoutAnimation(event);
|
|
63
|
+
|
|
61
64
|
setKeyboardStatus({
|
|
62
65
|
visible: false,
|
|
63
66
|
height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","Keyboard","LayoutAnimation","Platform","useSafeAreaInsets","NOOP","configureNextLayoutAnimation","event","config","create","duration","easing","configureNext","showEvent","hideEvent","select","android","default","useKeyboardStatus","keyboardStatus","setKeyboardStatus","visible","height","bottomSpace","bottom","bottomInset","subscriptions","addListener","endCoordinates","ios","nextLayoutAnimation","forEach","it","remove"],"sources":["useKeyboardStatus.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Keyboard, KeyboardEvent, KeyboardEventName, LayoutAnimation, Platform } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\ntype KeyboardEvents = {\n showEvent: KeyboardEventName;\n hideEvent: KeyboardEventName;\n};\n\nconst configureNextLayoutAnimation = (event: KeyboardEvent) => {\n const config = LayoutAnimation.create(event.duration, event.easing);\n LayoutAnimation.configureNext(config);\n};\n\nconst { showEvent, hideEvent } = Platform.select<KeyboardEvents>({\n android: { showEvent: 'keyboardDidShow', hideEvent: 'keyboardDidHide' },\n default: { showEvent: 'keyboardWillShow', hideEvent: 'keyboardWillHide' },\n});\n\nconst useKeyboardStatus = () => {\n const [keyboardStatus, setKeyboardStatus] = useState({ visible: false, height: 0, bottomSpace: 0 });\n const { bottom: bottomInset } = useSafeAreaInsets();\n\n useEffect(() => {\n const subscriptions = [\n Keyboard.addListener(showEvent, (event) => {\n const height = event.endCoordinates.height;\n const bottomSpace = Platform.select({ ios: height - bottomInset, default: 0 });\n const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n nextLayoutAnimation(event);\n setKeyboardStatus({ visible: true, height, bottomSpace });\n }),\n\n Keyboard.addListener(hideEvent, (
|
|
1
|
+
{"version":3,"names":["useEffect","useState","Keyboard","LayoutAnimation","Platform","useSafeAreaInsets","NOOP","isLayoutAnimationConfigured","configureNextLayoutAnimation","event","config","create","duration","easing","Properties","scaleY","onEnd","configureNext","showEvent","hideEvent","select","android","default","useKeyboardStatus","keyboardStatus","setKeyboardStatus","visible","height","bottomSpace","bottom","bottomInset","subscriptions","addListener","endCoordinates","ios","nextLayoutAnimation","forEach","it","remove"],"sources":["useKeyboardStatus.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Keyboard, KeyboardEvent, KeyboardEventName, LayoutAnimation, Platform } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\ntype KeyboardEvents = {\n showEvent: KeyboardEventName;\n hideEvent: KeyboardEventName;\n};\n\nlet isLayoutAnimationConfigured = false;\n\nconst configureNextLayoutAnimation = (event: KeyboardEvent) => {\n if (isLayoutAnimationConfigured) return;\n const config = LayoutAnimation.create(event.duration, event.easing, LayoutAnimation.Properties.scaleY);\n isLayoutAnimationConfigured = true;\n const onEnd = () => (isLayoutAnimationConfigured = false);\n LayoutAnimation.configureNext(config, onEnd, onEnd);\n};\n\nconst { showEvent, hideEvent } = Platform.select<KeyboardEvents>({\n android: { showEvent: 'keyboardDidShow', hideEvent: 'keyboardDidHide' },\n default: { showEvent: 'keyboardWillShow', hideEvent: 'keyboardWillHide' },\n});\n\nconst useKeyboardStatus = () => {\n const [keyboardStatus, setKeyboardStatus] = useState({ visible: false, height: 0, bottomSpace: 0 });\n const { bottom: bottomInset } = useSafeAreaInsets();\n\n useEffect(() => {\n const subscriptions = [\n Keyboard.addListener(showEvent, (event) => {\n const height = event.endCoordinates.height;\n const bottomSpace = Platform.select({ ios: height - bottomInset, default: 0 });\n const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n nextLayoutAnimation(event);\n setKeyboardStatus({ visible: true, height, bottomSpace });\n }),\n\n Keyboard.addListener(hideEvent, () => {\n const height = 0;\n const bottomSpace = Platform.select({ default: height });\n // const nextLayoutAnimation = Platform.select({ ios: configureNextLayoutAnimation, default: NOOP });\n\n // nextLayoutAnimation(event);\n setKeyboardStatus({ visible: false, height, bottomSpace });\n }),\n ];\n return () => {\n subscriptions.forEach((it) => it.remove());\n };\n }, []);\n\n return keyboardStatus;\n};\n\nexport default useKeyboardStatus;\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,QAApB,QAAoC,OAApC;AACA,SAASC,QAAT,EAAqDC,eAArD,EAAsEC,QAAtE,QAAsF,cAAtF;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAASC,IAAT,QAAqB,uBAArB;AAOA,IAAIC,2BAA2B,GAAG,KAAlC;;AAEA,MAAMC,4BAA4B,GAAIC,KAAD,IAA0B;EAC7D,IAAIF,2BAAJ,EAAiC;EACjC,MAAMG,MAAM,GAAGP,eAAe,CAACQ,MAAhB,CAAuBF,KAAK,CAACG,QAA7B,EAAuCH,KAAK,CAACI,MAA7C,EAAqDV,eAAe,CAACW,UAAhB,CAA2BC,MAAhF,CAAf;EACAR,2BAA2B,GAAG,IAA9B;;EACA,MAAMS,KAAK,GAAG,MAAOT,2BAA2B,GAAG,KAAnD;;EACAJ,eAAe,CAACc,aAAhB,CAA8BP,MAA9B,EAAsCM,KAAtC,EAA6CA,KAA7C;AACD,CAND;;AAQA,MAAM;EAAEE,SAAF;EAAaC;AAAb,IAA2Bf,QAAQ,CAACgB,MAAT,CAAgC;EAC/DC,OAAO,EAAE;IAAEH,SAAS,EAAE,iBAAb;IAAgCC,SAAS,EAAE;EAA3C,CADsD;EAE/DG,OAAO,EAAE;IAAEJ,SAAS,EAAE,kBAAb;IAAiCC,SAAS,EAAE;EAA5C;AAFsD,CAAhC,CAAjC;;AAKA,MAAMI,iBAAiB,GAAG,MAAM;EAC9B,MAAM,CAACC,cAAD,EAAiBC,iBAAjB,IAAsCxB,QAAQ,CAAC;IAAEyB,OAAO,EAAE,KAAX;IAAkBC,MAAM,EAAE,CAA1B;IAA6BC,WAAW,EAAE;EAA1C,CAAD,CAApD;EACA,MAAM;IAAEC,MAAM,EAAEC;EAAV,IAA0BzB,iBAAiB,EAAjD;EAEAL,SAAS,CAAC,MAAM;IACd,MAAM+B,aAAa,GAAG,CACpB7B,QAAQ,CAAC8B,WAAT,CAAqBd,SAArB,EAAiCT,KAAD,IAAW;MACzC,MAAMkB,MAAM,GAAGlB,KAAK,CAACwB,cAAN,CAAqBN,MAApC;MACA,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAT,CAAgB;QAAEc,GAAG,EAAEP,MAAM,GAAGG,WAAhB;QAA6BR,OAAO,EAAE;MAAtC,CAAhB,CAApB;MACA,MAAMa,mBAAmB,GAAG/B,QAAQ,CAACgB,MAAT,CAAgB;QAAEc,GAAG,EAAE1B,4BAAP;QAAqCc,OAAO,EAAEhB;MAA9C,CAAhB,CAA5B;MAEA6B,mBAAmB,CAAC1B,KAAD,CAAnB;MACAgB,iBAAiB,CAAC;QAAEC,OAAO,EAAE,IAAX;QAAiBC,MAAjB;QAAyBC;MAAzB,CAAD,CAAjB;IACD,CAPD,CADoB,EAUpB1B,QAAQ,CAAC8B,WAAT,CAAqBb,SAArB,EAAgC,MAAM;MACpC,MAAMQ,MAAM,GAAG,CAAf;MACA,MAAMC,WAAW,GAAGxB,QAAQ,CAACgB,MAAT,CAAgB;QAAEE,OAAO,EAAEK;MAAX,CAAhB,CAApB,CAFoC,CAGpC;MAEA;;MACAF,iBAAiB,CAAC;QAAEC,OAAO,EAAE,KAAX;QAAkBC,MAAlB;QAA0BC;MAA1B,CAAD,CAAjB;IACD,CAPD,CAVoB,CAAtB;IAmBA,OAAO,MAAM;MACXG,aAAa,CAACK,OAAd,CAAuBC,EAAD,IAAQA,EAAE,CAACC,MAAH,EAA9B;IACD,CAFD;EAGD,CAvBQ,EAuBN,EAvBM,CAAT;EAyBA,OAAOd,cAAP;AACD,CA9BD;;AAgCA,eAAeD,iBAAf"}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Logger","default","MessageRenderer","ReactionAddons","ReactionBottomSheets","ChannelCover","ChatFlatList","FileViewer","NewMessagesButton","ProviderLayout","ScrollToBottomButton","StatusComposition","TypedPlaceholder","UserActionBar","UserSelectableBar","createGroupChannelCreateFragment","createGroupChannelFragment","createGroupChannelSettingsFragment","createGroupChannelInviteFragment","createGroupChannelListFragment","createGroupChannelMembersFragment","createGroupChannelModerationFragment","createGroupChannelOperatorsFragment","createGroupChannelRegisterOperatorFragment","createGroupChannelMutedMembersFragment","createGroupChannelBannedUsersFragment","createGroupChannelNotificationsFragment","SendbirdChatContext","SendbirdChatProvider","PlatformServiceContext","PlatformServiceProvider","UserProfileContext","UserProfileProvider","LocalizationContext","LocalizationProvider","useConnection","usePushTokenRegistration","StringSetEn","createBaseStringSet","createNativeFileService","createNativeClipboardService","createNativeNotificationService","createNativeMediaService","createExpoFileService","createExpoClipboardService","createExpoNotificationService","createExpoMediaService","GroupChannelNotificationsProps","GroupChannelNotificationsContextsType","GroupChannelNotificationsFragment","GroupChannelNotificationsModule","SendbirdUIKitContainer","SendbirdUIKit","SBUError","setLogLevel","__DEV__","setTitle","OS"],"sources":["index.ts"],"sourcesContent":["/** Components **/\nimport { Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport { default as MessageRenderer } from './components/MessageRenderer';\nexport { ReactionAddons } from './components/ReactionAddons';\nexport { ReactionBottomSheets } from './components/ReactionBottomSheets';\nexport { default as ChannelCover } from './components/ChannelCover';\nexport { default as ChatFlatList } from './components/ChatFlatList';\nexport { default as FileViewer } from './components/FileViewer';\nexport { default as NewMessagesButton } from './components/NewMessagesButton';\nexport { default as ProviderLayout } from './components/ProviderLayout';\nexport { default as ScrollToBottomButton } from './components/ScrollToBottomButton';\nexport { default as StatusComposition } from './components/StatusComposition';\nexport { default as TypedPlaceholder } from './components/TypedPlaceholder';\nexport { default as UserActionBar } from './components/UserActionBar';\nexport { default as UserSelectableBar } from './components/UserSelectableBar';\n\n/** Fragments **/\nexport { default as createGroupChannelCreateFragment } from './fragments/createGroupChannelCreateFragment';\nexport { default as createGroupChannelFragment } from './fragments/createGroupChannelFragment';\nexport { default as createGroupChannelSettingsFragment } from './fragments/createGroupChannelSettingsFragment';\nexport { default as createGroupChannelInviteFragment } from './fragments/createGroupChannelInviteFragment';\nexport { default as createGroupChannelListFragment } from './fragments/createGroupChannelListFragment';\nexport { default as createGroupChannelMembersFragment } from './fragments/createGroupChannelMembersFragment';\nexport { default as createGroupChannelModerationFragment } from './fragments/createGroupChannelModerationFragment';\nexport { default as createGroupChannelOperatorsFragment } from './fragments/createGroupChannelOperatorsFragment';\nexport { default as createGroupChannelRegisterOperatorFragment } from './fragments/createGroupChannelRegisterOperatorFragment';\nexport { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';\nexport { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';\nexport { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';\n\n/** Context **/\nexport { SendbirdChatContext, SendbirdChatProvider } from './contexts/SendbirdChatCtx';\nexport { PlatformServiceContext, PlatformServiceProvider } from './contexts/PlatformServiceCtx';\nexport { UserProfileContext, UserProfileProvider } from './contexts/UserProfileCtx';\nexport { LocalizationContext, LocalizationProvider } from './contexts/LocalizationCtx';\n\n/** Hooks **/\nexport { default as useConnection } from './hooks/useConnection';\nexport { default as usePushTokenRegistration } from './hooks/usePushTokenRegistration';\nexport * from './hooks/useContext';\n\n/** Localization **/\nexport { default as StringSetEn } from './localization/StringSet.en';\nexport { createBaseStringSet } from './localization/StringSet.type';\nexport type { StringSet } from './localization/StringSet.type';\n\n/** Platform API **/\nexport { default as createNativeFileService } from './platform/createFileService.native';\nexport { default as createNativeClipboardService } from './platform/createClipboardService.native';\nexport { default as createNativeNotificationService } from './platform/createNotificationService.native';\nexport { default as createNativeMediaService } from './platform/createMediaService.native';\nexport { default as createExpoFileService } from './platform/createFileService.expo';\nexport { default as createExpoClipboardService } from './platform/createClipboardService.expo';\nexport { default as createExpoNotificationService } from './platform/createNotificationService.expo';\nexport { default as createExpoMediaService } from './platform/createMediaService.expo';\n\nexport type {\n FileServiceInterface,\n ClipboardServiceInterface,\n FilePickerServiceInterface,\n FileSystemServiceInterface,\n SaveOptions,\n OpenDocumentOptions,\n OpenCameraOptions,\n OpenMediaLibraryOptions,\n OpenResultListener,\n DownloadedPath,\n Unsubscribe,\n FilePickerResponse,\n FileType,\n NotificationServiceInterface,\n} from './platform/types';\n\n/** Domain **/\nexport * from './domain/groupChannel';\nexport type {\n GroupChannelProps,\n GroupChannelModule,\n GroupChannelFragment,\n GroupChannelContextsType,\n} from './domain/groupChannel/types';\n\nexport * from './domain/groupChannelSettings';\nexport type {\n GroupChannelSettingsProps,\n GroupChannelSettingsModule,\n GroupChannelSettingsFragment,\n GroupChannelSettingsContextsType,\n} from './domain/groupChannelSettings/types';\n\nexport * from './domain/groupChannelList';\nexport type {\n GroupChannelType,\n GroupChannelListProps,\n GroupChannelListModule,\n GroupChannelListFragment,\n GroupChannelListContextsType,\n} from './domain/groupChannelList/types';\n\nexport * from './domain/groupChannelNotifications';\nexport {\n GroupChannelNotificationsProps,\n GroupChannelNotificationsContextsType,\n GroupChannelNotificationsFragment,\n GroupChannelNotificationsModule,\n} from './domain/groupChannelNotifications/types';\n\nexport * from './domain/groupChannelUserList/types';\nexport * from './domain/userList';\nexport type { UserListProps, UserListModule, UserListContextsType } from './domain/userList/types';\n\n/** UIKit **/\nexport { default as SendbirdUIKitContainer, SendbirdUIKit } from './containers/SendbirdUIKitContainer';\nexport type { SendbirdUIKitContainerProps } from './containers/SendbirdUIKitContainer';\nexport { default as SBUError } from './libs/SBUError';\n\nexport * from './types';\n\nLogger.setLogLevel(__DEV__ ? 'warn' : 'none');\nLogger.setTitle(`[UIKIT_${Platform.OS}]`);\n"],"mappings":"AAAA;AACA,SAASA,QAAT,QAAyB,cAAzB;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AAEA,SAASC,OAAO,IAAIC,eAApB,QAA2C,8BAA3C;AACA,SAASC,cAAT,QAA+B,6BAA/B;AACA,SAASC,oBAAT,QAAqC,mCAArC;AACA,SAASH,OAAO,IAAII,YAApB,QAAwC,2BAAxC;AACA,SAASJ,OAAO,IAAIK,YAApB,QAAwC,2BAAxC;AACA,SAASL,OAAO,IAAIM,UAApB,QAAsC,yBAAtC;AACA,SAASN,OAAO,IAAIO,iBAApB,QAA6C,gCAA7C;AACA,SAASP,OAAO,IAAIQ,cAApB,QAA0C,6BAA1C;AACA,SAASR,OAAO,IAAIS,oBAApB,QAAgD,mCAAhD;AACA,SAAST,OAAO,IAAIU,iBAApB,QAA6C,gCAA7C;AACA,SAASV,OAAO,IAAIW,gBAApB,QAA4C,+BAA5C;AACA,SAASX,OAAO,IAAIY,aAApB,QAAyC,4BAAzC;AACA,SAASZ,OAAO,IAAIa,iBAApB,QAA6C,gCAA7C;AAEA;;AACA,SAASb,OAAO,IAAIc,gCAApB,QAA4D,8CAA5D;AACA,SAASd,OAAO,IAAIe,0BAApB,QAAsD,wCAAtD;AACA,SAASf,OAAO,IAAIgB,kCAApB,QAA8D,gDAA9D;AACA,SAAShB,OAAO,IAAIiB,gCAApB,QAA4D,8CAA5D;AACA,SAASjB,OAAO,IAAIkB,8BAApB,QAA0D,4CAA1D;AACA,SAASlB,OAAO,IAAImB,iCAApB,QAA6D,+CAA7D;AACA,SAASnB,OAAO,IAAIoB,oCAApB,QAAgE,kDAAhE;AACA,SAASpB,OAAO,IAAIqB,mCAApB,QAA+D,iDAA/D;AACA,SAASrB,OAAO,IAAIsB,0CAApB,QAAsE,wDAAtE;AACA,SAAStB,OAAO,IAAIuB,sCAApB,QAAkE,oDAAlE;AACA,SAASvB,OAAO,IAAIwB,qCAApB,QAAiE,mDAAjE;AACA,SAASxB,OAAO,IAAIyB,uCAApB,QAAmE,qDAAnE;AAEA;;AACA,SAASC,mBAAT,EAA8BC,oBAA9B,QAA0D,4BAA1D;AACA,SAASC,sBAAT,EAAiCC,uBAAjC,QAAgE,+BAAhE;AACA,SAASC,kBAAT,EAA6BC,mBAA7B,QAAwD,2BAAxD;AACA,SAASC,mBAAT,EAA8BC,oBAA9B,QAA0D,4BAA1D;AAEA;;AACA,SAASjC,OAAO,IAAIkC,aAApB,QAAyC,uBAAzC;AACA,SAASlC,OAAO,IAAImC,wBAApB,QAAoD,kCAApD;AACA,cAAc,oBAAd;AAEA;;AACA,SAASnC,OAAO,IAAIoC,WAApB,QAAuC,6BAAvC;AACA,SAASC,mBAAT,QAAoC,+BAApC;;AAGA;AACA,SAASrC,OAAO,IAAIsC,uBAApB,QAAmD,qCAAnD;AACA,SAAStC,OAAO,IAAIuC,4BAApB,QAAwD,0CAAxD;AACA,SAASvC,OAAO,IAAIwC,+BAApB,QAA2D,6CAA3D;AACA,SAASxC,OAAO,IAAIyC,wBAApB,QAAoD,sCAApD;AACA,SAASzC,OAAO,IAAI0C,qBAApB,QAAiD,mCAAjD;AACA,SAAS1C,OAAO,IAAI2C,0BAApB,QAAsD,wCAAtD;AACA,SAAS3C,OAAO,IAAI4C,6BAApB,QAAyD,2CAAzD;AACA,SAAS5C,OAAO,IAAI6C,sBAApB,QAAkD,oCAAlD;;
|
|
1
|
+
{"version":3,"names":["Platform","Logger","default","MessageRenderer","ReactionAddons","ReactionBottomSheets","ChannelCover","ChatFlatList","FileViewer","NewMessagesButton","ProviderLayout","ScrollToBottomButton","StatusComposition","TypedPlaceholder","UserActionBar","UserSelectableBar","createGroupChannelCreateFragment","createGroupChannelFragment","createGroupChannelSettingsFragment","createGroupChannelInviteFragment","createGroupChannelListFragment","createGroupChannelMembersFragment","createGroupChannelModerationFragment","createGroupChannelOperatorsFragment","createGroupChannelRegisterOperatorFragment","createGroupChannelMutedMembersFragment","createGroupChannelBannedUsersFragment","createGroupChannelNotificationsFragment","SendbirdChatContext","SendbirdChatProvider","PlatformServiceContext","PlatformServiceProvider","UserProfileContext","UserProfileProvider","LocalizationContext","LocalizationProvider","useConnection","usePushTokenRegistration","StringSetEn","createBaseStringSet","createNativeFileService","createNativeClipboardService","createNativeNotificationService","createNativeMediaService","createExpoFileService","createExpoClipboardService","createExpoNotificationService","createExpoMediaService","GroupChannelNotificationsProps","GroupChannelNotificationsContextsType","GroupChannelNotificationsFragment","GroupChannelNotificationsModule","SendbirdUIKitContainer","SendbirdUIKit","SBUError","setLogLevel","__DEV__","setTitle","OS"],"sources":["index.ts"],"sourcesContent":["/** Components **/\nimport { Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport { default as MessageRenderer } from './components/MessageRenderer';\nexport { ReactionAddons } from './components/ReactionAddons';\nexport { ReactionBottomSheets } from './components/ReactionBottomSheets';\nexport { default as ChannelCover } from './components/ChannelCover';\nexport { default as ChatFlatList } from './components/ChatFlatList';\nexport { default as FileViewer } from './components/FileViewer';\nexport { default as NewMessagesButton } from './components/NewMessagesButton';\nexport { default as ProviderLayout } from './components/ProviderLayout';\nexport { default as ScrollToBottomButton } from './components/ScrollToBottomButton';\nexport { default as StatusComposition } from './components/StatusComposition';\nexport { default as TypedPlaceholder } from './components/TypedPlaceholder';\nexport { default as UserActionBar } from './components/UserActionBar';\nexport { default as UserSelectableBar } from './components/UserSelectableBar';\n\n/** Fragments **/\nexport { default as createGroupChannelCreateFragment } from './fragments/createGroupChannelCreateFragment';\nexport { default as createGroupChannelFragment } from './fragments/createGroupChannelFragment';\nexport { default as createGroupChannelSettingsFragment } from './fragments/createGroupChannelSettingsFragment';\nexport { default as createGroupChannelInviteFragment } from './fragments/createGroupChannelInviteFragment';\nexport { default as createGroupChannelListFragment } from './fragments/createGroupChannelListFragment';\nexport { default as createGroupChannelMembersFragment } from './fragments/createGroupChannelMembersFragment';\nexport { default as createGroupChannelModerationFragment } from './fragments/createGroupChannelModerationFragment';\nexport { default as createGroupChannelOperatorsFragment } from './fragments/createGroupChannelOperatorsFragment';\nexport { default as createGroupChannelRegisterOperatorFragment } from './fragments/createGroupChannelRegisterOperatorFragment';\nexport { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';\nexport { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';\nexport { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';\n\n/** Context **/\nexport { SendbirdChatContext, SendbirdChatProvider } from './contexts/SendbirdChatCtx';\nexport { PlatformServiceContext, PlatformServiceProvider } from './contexts/PlatformServiceCtx';\nexport { UserProfileContext, UserProfileProvider } from './contexts/UserProfileCtx';\nexport { LocalizationContext, LocalizationProvider } from './contexts/LocalizationCtx';\n\n/** Hooks **/\nexport { default as useConnection } from './hooks/useConnection';\nexport { default as usePushTokenRegistration } from './hooks/usePushTokenRegistration';\nexport * from './hooks/useContext';\n\n/** Localization **/\nexport { default as StringSetEn } from './localization/StringSet.en';\nexport { createBaseStringSet } from './localization/StringSet.type';\nexport type { StringSet } from './localization/StringSet.type';\n\n/** Platform API **/\nexport { default as createNativeFileService } from './platform/createFileService.native';\nexport { default as createNativeClipboardService } from './platform/createClipboardService.native';\nexport { default as createNativeNotificationService } from './platform/createNotificationService.native';\nexport { default as createNativeMediaService } from './platform/createMediaService.native';\nexport { default as createExpoFileService } from './platform/createFileService.expo';\nexport { default as createExpoClipboardService } from './platform/createClipboardService.expo';\nexport { default as createExpoNotificationService } from './platform/createNotificationService.expo';\nexport { default as createExpoMediaService } from './platform/createMediaService.expo';\n\nexport type {\n FileServiceInterface,\n ClipboardServiceInterface,\n FilePickerServiceInterface,\n FileSystemServiceInterface,\n SaveOptions,\n OpenDocumentOptions,\n OpenCameraOptions,\n OpenMediaLibraryOptions,\n OpenResultListener,\n DownloadedPath,\n Unsubscribe,\n FilePickerResponse,\n FileType,\n NotificationServiceInterface,\n MediaServiceInterface,\n} from './platform/types';\n\n/** Domain **/\nexport * from './domain/groupChannel';\nexport type {\n GroupChannelProps,\n GroupChannelModule,\n GroupChannelFragment,\n GroupChannelContextsType,\n} from './domain/groupChannel/types';\n\nexport * from './domain/groupChannelSettings';\nexport type {\n GroupChannelSettingsProps,\n GroupChannelSettingsModule,\n GroupChannelSettingsFragment,\n GroupChannelSettingsContextsType,\n} from './domain/groupChannelSettings/types';\n\nexport * from './domain/groupChannelList';\nexport type {\n GroupChannelType,\n GroupChannelListProps,\n GroupChannelListModule,\n GroupChannelListFragment,\n GroupChannelListContextsType,\n} from './domain/groupChannelList/types';\n\nexport * from './domain/groupChannelNotifications';\nexport {\n GroupChannelNotificationsProps,\n GroupChannelNotificationsContextsType,\n GroupChannelNotificationsFragment,\n GroupChannelNotificationsModule,\n} from './domain/groupChannelNotifications/types';\n\nexport * from './domain/groupChannelUserList/types';\nexport * from './domain/userList';\nexport type { UserListProps, UserListModule, UserListContextsType } from './domain/userList/types';\n\n/** UIKit **/\nexport { default as SendbirdUIKitContainer, SendbirdUIKit } from './containers/SendbirdUIKitContainer';\nexport type { SendbirdUIKitContainerProps } from './containers/SendbirdUIKitContainer';\nexport { default as SBUError } from './libs/SBUError';\n\nexport * from './types';\n\nLogger.setLogLevel(__DEV__ ? 'warn' : 'none');\nLogger.setTitle(`[UIKIT_${Platform.OS}]`);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { Logger } from '@sendbird/uikit-utils';
|
|
4
|
+
|
|
5
|
+
class ImageCompressionConfig {
|
|
6
|
+
constructor(_config) {
|
|
7
|
+
this._config = _config;
|
|
8
|
+
if (_config.compressionRate > 1) Logger.warn('Compression rate must be in the range of 0.0 - 1.0');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
get compressionRate() {
|
|
12
|
+
return Math.min(Math.max(0, this._config.compressionRate), 1);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
get width() {
|
|
16
|
+
return this._config.width;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
get height() {
|
|
20
|
+
return this._config.height;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
_defineProperty(ImageCompressionConfig, "DEFAULT", {
|
|
26
|
+
COMPRESSION_RATE: 0.7
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export default ImageCompressionConfig;
|
|
30
|
+
//# sourceMappingURL=ImageCompressionConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Logger","ImageCompressionConfig","constructor","_config","compressionRate","warn","Math","min","max","width","height","COMPRESSION_RATE"],"sources":["ImageCompressionConfig.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nexport interface ImageCompressionConfigInterface {\n compressionRate: number;\n width?: number;\n height?: number;\n}\n\nclass ImageCompressionConfig {\n static DEFAULT = {\n COMPRESSION_RATE: 0.7,\n };\n\n constructor(private _config: ImageCompressionConfigInterface) {\n if (_config.compressionRate > 1) Logger.warn('Compression rate must be in the range of 0.0 - 1.0');\n }\n\n get compressionRate() {\n return Math.min(Math.max(0, this._config.compressionRate), 1);\n }\n\n get width() {\n return this._config.width;\n }\n\n get height() {\n return this._config.height;\n }\n}\n\nexport default ImageCompressionConfig;\n"],"mappings":";;AAAA,SAASA,MAAT,QAAuB,uBAAvB;;AAQA,MAAMC,sBAAN,CAA6B;EAK3BC,WAAW,CAASC,OAAT,EAAmD;IAAA,KAA1CA,OAA0C,GAA1CA,OAA0C;IAC5D,IAAIA,OAAO,CAACC,eAAR,GAA0B,CAA9B,EAAiCJ,MAAM,CAACK,IAAP,CAAY,oDAAZ;EAClC;;EAEkB,IAAfD,eAAe,GAAG;IACpB,OAAOE,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAY,KAAKL,OAAL,CAAaC,eAAzB,CAAT,EAAoD,CAApD,CAAP;EACD;;EAEQ,IAALK,KAAK,GAAG;IACV,OAAO,KAAKN,OAAL,CAAaM,KAApB;EACD;;EAES,IAANC,MAAM,GAAG;IACX,OAAO,KAAKP,OAAL,CAAaO,MAApB;EACD;;AAnB0B;;gBAAvBT,sB,aACa;EACfU,gBAAgB,EAAE;AADH,C;;AAqBnB,eAAeV,sBAAf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Linking, Platform } from 'react-native';
|
|
1
|
+
import { Image, Linking, Platform } from 'react-native';
|
|
2
|
+
import { Logger } from '@sendbird/uikit-utils';
|
|
2
3
|
export default class SBUUtils {
|
|
3
4
|
static openSettings() {
|
|
4
5
|
Linking.openSettings().catch(() => {
|
|
@@ -6,5 +7,29 @@ export default class SBUUtils {
|
|
|
6
7
|
});
|
|
7
8
|
}
|
|
8
9
|
|
|
10
|
+
static openURL(url) {
|
|
11
|
+
const targetUrl = url.startsWith('http') ? url : 'https://' + url;
|
|
12
|
+
Linking.openURL(targetUrl).catch(err => Logger.warn('Cannot open url', err));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static getImageSize(uri) {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
Image.getSize(uri, (width, height) => {
|
|
18
|
+
resolve({
|
|
19
|
+
width,
|
|
20
|
+
height
|
|
21
|
+
});
|
|
22
|
+
}, error => {
|
|
23
|
+
reject(error);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static async safeRun(callback) {
|
|
29
|
+
try {
|
|
30
|
+
await callback();
|
|
31
|
+
} catch (e) {}
|
|
32
|
+
}
|
|
33
|
+
|
|
9
34
|
}
|
|
10
35
|
//# sourceMappingURL=SBUUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Linking","Platform","SBUUtils","openSettings","catch","OS","openURL"],"sources":["SBUUtils.ts"],"sourcesContent":["import { Linking, Platform } from 'react-native';\n\nexport default class SBUUtils {\n static openSettings() {\n Linking.openSettings().catch(() => {\n if (Platform.OS === 'ios') Linking.openURL('App-Prefs:root');\n });\n }\n}\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["Image","Linking","Platform","Logger","SBUUtils","openSettings","catch","OS","openURL","url","targetUrl","startsWith","err","warn","getImageSize","uri","Promise","resolve","reject","getSize","width","height","error","safeRun","callback","e"],"sources":["SBUUtils.ts"],"sourcesContent":["import { Image, Linking, Platform } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport default class SBUUtils {\n static openSettings() {\n Linking.openSettings().catch(() => {\n if (Platform.OS === 'ios') Linking.openURL('App-Prefs:root');\n });\n }\n\n static openURL(url: string) {\n const targetUrl = url.startsWith('http') ? url : 'https://' + url;\n Linking.openURL(targetUrl).catch((err) => Logger.warn('Cannot open url', err));\n }\n\n static getImageSize(uri: string): Promise<{ width: number; height: number }> {\n return new Promise((resolve, reject) => {\n Image.getSize(\n uri,\n (width, height) => {\n resolve({ width, height });\n },\n (error) => {\n reject(error);\n },\n );\n });\n }\n\n static async safeRun(callback: () => Promise<void>) {\n try {\n await callback();\n } catch (e) {}\n }\n}\n"],"mappings":"AAAA,SAASA,KAAT,EAAgBC,OAAhB,EAAyBC,QAAzB,QAAyC,cAAzC;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AAEA,eAAe,MAAMC,QAAN,CAAe;EACT,OAAZC,YAAY,GAAG;IACpBJ,OAAO,CAACI,YAAR,GAAuBC,KAAvB,CAA6B,MAAM;MACjC,IAAIJ,QAAQ,CAACK,EAAT,KAAgB,KAApB,EAA2BN,OAAO,CAACO,OAAR,CAAgB,gBAAhB;IAC5B,CAFD;EAGD;;EAEa,OAAPA,OAAO,CAACC,GAAD,EAAc;IAC1B,MAAMC,SAAS,GAAGD,GAAG,CAACE,UAAJ,CAAe,MAAf,IAAyBF,GAAzB,GAA+B,aAAaA,GAA9D;IACAR,OAAO,CAACO,OAAR,CAAgBE,SAAhB,EAA2BJ,KAA3B,CAAkCM,GAAD,IAAST,MAAM,CAACU,IAAP,CAAY,iBAAZ,EAA+BD,GAA/B,CAA1C;EACD;;EAEkB,OAAZE,YAAY,CAACC,GAAD,EAA0D;IAC3E,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtClB,KAAK,CAACmB,OAAN,CACEJ,GADF,EAEE,CAACK,KAAD,EAAQC,MAAR,KAAmB;QACjBJ,OAAO,CAAC;UAAEG,KAAF;UAASC;QAAT,CAAD,CAAP;MACD,CAJH,EAKGC,KAAD,IAAW;QACTJ,MAAM,CAACI,KAAD,CAAN;MACD,CAPH;IASD,CAVM,CAAP;EAWD;;EAEmB,aAAPC,OAAO,CAACC,QAAD,EAAgC;IAClD,IAAI;MACF,MAAMA,QAAQ,EAAd;IACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CAAE;EACf;;AA9B2B"}
|
|
@@ -165,6 +165,9 @@ export const createBaseStringSet = _ref => {
|
|
|
165
165
|
...(overrides === null || overrides === void 0 ? void 0 : overrides.GROUP_CHANNEL_INVITE)
|
|
166
166
|
},
|
|
167
167
|
LABELS: {
|
|
168
|
+
PERMISSION_APP_NAME: 'Application',
|
|
169
|
+
PERMISSION_CAMERA: 'camera',
|
|
170
|
+
PERMISSION_DEVICE_STORAGE: 'device storage',
|
|
168
171
|
USER_NO_NAME,
|
|
169
172
|
CHANNEL_NO_MEMBERS,
|
|
170
173
|
TYPING_INDICATOR_TYPINGS: function (users) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDateSeparatorFormat","getGroupChannelLastMessage","getGroupChannelPreviewTime","getGroupChannelTitle","getMessageTimeFormat","createBaseStringSet","dateLocale","overrides","USER_NO_NAME","LABELS","CHANNEL_NO_MEMBERS","GROUP_CHANNEL","HEADER_TITLE","currentUserId","channel","LIST_BANNER_FROZEN","LIST_DATE_SEPARATOR","date","locale","LIST_BUTTON_NEW_MSG","newMessages","length","MESSAGE_BUBBLE_TIME","message","Date","createdAt","MESSAGE_BUBBLE_FILE_TITLE","name","MESSAGE_BUBBLE_EDITED_POSTFIX","MESSAGE_BUBBLE_UNKNOWN_TITLE","MESSAGE_BUBBLE_UNKNOWN_DESC","INPUT_PLACEHOLDER_ACTIVE","INPUT_PLACEHOLDER_DISABLED","INPUT_PLACEHOLDER_MUTED","INPUT_EDIT_OK","INPUT_EDIT_CANCEL","MENTION_LIMITED","mentionLimit","DIALOG_MESSAGE_COPY","DIALOG_MESSAGE_EDIT","DIALOG_MESSAGE_SAVE","DIALOG_MESSAGE_DELETE","DIALOG_MESSAGE_DELETE_CONFIRM_TITLE","DIALOG_MESSAGE_DELETE_CONFIRM_OK","DIALOG_MESSAGE_DELETE_CONFIRM_CANCEL","DIALOG_MESSAGE_FAILED_RETRY","DIALOG_MESSAGE_FAILED_REMOVE","DIALOG_ATTACHMENT_CAMERA","DIALOG_ATTACHMENT_PHOTO_LIBRARY","DIALOG_ATTACHMENT_FILES","GROUP_CHANNEL_SETTINGS","HEADER_RIGHT","MENU_MODERATION","MENU_MEMBERS","MENU_LEAVE_CHANNEL","MENU_NOTIFICATION","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENU_NOTIFICATION_LABEL_MENTION_ONLY","DIALOG_CHANGE_NAME","DIALOG_CHANGE_NAME_PROMPT_TITLE","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","DIALOG_CHANGE_NAME_PROMPT_OK","DIALOG_CHANGE_NAME_PROMPT_CANCEL","DIALOG_CHANGE_IMAGE","DIALOG_CHANGE_IMAGE_MENU_TITLE","DIALOG_CHANGE_IMAGE_MENU_CAMERA","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","GROUP_CHANNEL_NOTIFICATIONS","MENU_NOTIFICATIONS","MENU_NOTIFICATIONS_DESC","MENU_NOTIFICATIONS_OPTION_ALL","MENU_NOTIFICATIONS_OPTION_MENTION_ONLY","GROUP_CHANNEL_MODERATION","MENU_OPERATORS","MENU_MUTED_MEMBERS","MENU_BANNED_USERS","MENU_FREEZE_CHANNEL","GROUP_CHANNEL_OPERATORS","GROUP_CHANNEL_REGISTER_OPERATOR","selectedUsers","len","GROUP_CHANNEL_MUTED_MEMBERS","GROUP_CHANNEL_BANNED_USERS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","CHANNEL_PREVIEW_TITLE_CAPTION","CHANNEL_PREVIEW_BODY","TYPE_SELECTOR_HEADER_TITLE","TYPE_SELECTOR_GROUP","TYPE_SELECTOR_SUPER_GROUP","TYPE_SELECTOR_BROADCAST","DIALOG_CHANNEL_TITLE","DIALOG_CHANNEL_NOTIFICATION","myPushTriggerOption","DIALOG_CHANNEL_LEAVE","GROUP_CHANNEL_MEMBERS","USER_BAR_ME_POSTFIX","USER_BAR_OPERATOR","GROUP_CHANNEL_CREATE","GROUP_CHANNEL_INVITE","TYPING_INDICATOR_TYPINGS","users","NO_NAME","userNames","map","u","nickname","join","REGISTER_AS_OPERATOR","UNREGISTER_OPERATOR","MUTE","UNMUTE","BAN","UNBAN","FILE_VIEWER","TITLE","sender","SUBTITLE","PLACEHOLDER","NO_BANNED_USERS","NO_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_RESULTS_FOUND","ERROR","MESSAGE","RETRY_LABEL","DIALOG","ALERT_DEFAULT_OK","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","permission","appName","ALERT_PERMISSIONS_OK","PROMPT_DEFAULT_OK","PROMPT_DEFAULT_CANCEL","PROMPT_DEFAULT_PLACEHOLDER","TOAST","COPY_OK","DOWNLOAD_START","DOWNLOAD_OK","DOWNLOAD_ERROR","OPEN_CAMERA_ERROR","OPEN_FILES_ERROR","OPEN_PHOTO_LIBRARY_ERROR","DELETE_MSG_ERROR","RESEND_MSG_ERROR","SEND_MSG_ERROR","UPDATE_MSG_ERROR","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","LEAVE_CHANNEL_ERROR","PROFILE_CARD","BUTTON_MESSAGE","BODY_LABEL","BODY","user","userId"],"sources":["StringSet.type.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type {\n PartialDeep,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMember,\n SendbirdMessage,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport {\n getDateSeparatorFormat,\n getGroupChannelLastMessage,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessageTimeFormat,\n} from '@sendbird/uikit-utils';\n\n/**\n * StringSet interface\n * Do not configure over 3 depths (for overrides easy)\n * */\nexport interface StringSet {\n GROUP_CHANNEL: {\n /** GroupChannel > Header */\n HEADER_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n\n /** GroupChannel > List */\n LIST_BANNER_FROZEN: string;\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;\n\n /** GroupChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n\n /** GroupChannel > Input */\n INPUT_PLACEHOLDER_ACTIVE: string;\n INPUT_PLACEHOLDER_DISABLED: string;\n INPUT_PLACEHOLDER_MUTED: string;\n INPUT_EDIT_OK: string;\n INPUT_EDIT_CANCEL: string;\n\n /** GroupChannel > Suggested mention list */\n MENTION_LIMITED: (mentionLimit: number) => string;\n\n /** GroupChannel > Dialog > Message */\n DIALOG_MESSAGE_COPY: string;\n DIALOG_MESSAGE_EDIT: string;\n DIALOG_MESSAGE_SAVE: string;\n DIALOG_MESSAGE_DELETE: string;\n /** GroupChannel > Dialog > Message > Delete confirm */\n DIALOG_MESSAGE_DELETE_CONFIRM_TITLE: string;\n DIALOG_MESSAGE_DELETE_CONFIRM_OK: string;\n DIALOG_MESSAGE_DELETE_CONFIRM_CANCEL: string;\n /** GroupChannel > Dialog > Message > Failed */\n DIALOG_MESSAGE_FAILED_RETRY: string;\n DIALOG_MESSAGE_FAILED_REMOVE: string;\n\n /** GroupChannel > Dialog > Attachments */\n DIALOG_ATTACHMENT_CAMERA: string;\n DIALOG_ATTACHMENT_PHOTO_LIBRARY: string;\n DIALOG_ATTACHMENT_FILES: string;\n };\n GROUP_CHANNEL_SETTINGS: {\n /** GroupChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** GroupChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_MEMBERS: string;\n MENU_LEAVE_CHANNEL: string;\n MENU_NOTIFICATION: string;\n MENU_NOTIFICATION_LABEL_ON: string;\n MENU_NOTIFICATION_LABEL_OFF: string;\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: string;\n\n /** GroupChannelSettings > Dialog */\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n GROUP_CHANNEL_NOTIFICATIONS: {\n /** GroupChannelNotifications > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelNotifications > Menu */\n MENU_NOTIFICATIONS: string;\n MENU_NOTIFICATIONS_DESC: string;\n MENU_NOTIFICATIONS_OPTION_ALL: string;\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: string;\n };\n GROUP_CHANNEL_MODERATION: {\n /** GroupChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_MEMBERS: string;\n MENU_BANNED_USERS: string;\n MENU_FREEZE_CHANNEL: string;\n };\n GROUP_CHANNEL_OPERATORS: {\n /** GroupChannelOperators > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n /** GroupChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdMember> }) => string;\n };\n GROUP_CHANNEL_MUTED_MEMBERS: {\n /** GroupChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_BANNED_USERS: {\n /** GroupChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_LIST: {\n /** GroupChannelList > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel: SendbirdGroupChannel, locale?: Locale) => string;\n CHANNEL_PREVIEW_BODY: (channel: SendbirdGroupChannel) => string;\n\n /** GroupChannelList > TypeSelector > Header */\n TYPE_SELECTOR_HEADER_TITLE: string;\n /** GroupChannelList > TypeSelector > Type string */\n TYPE_SELECTOR_GROUP: string;\n TYPE_SELECTOR_SUPER_GROUP: string;\n TYPE_SELECTOR_BROADCAST: string;\n\n /** GroupChannelList > Dialog > Channel */\n DIALOG_CHANNEL_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_NOTIFICATION: (channel?: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_LEAVE: string;\n };\n GROUP_CHANNEL_MEMBERS: {\n /** GroupChannelMembers > Header */\n HEADER_TITLE: string;\n\n /** @deprecated Please use in LABELS **/\n USER_BAR_ME_POSTFIX: string;\n /** @deprecated Please use in LABELS **/\n USER_BAR_OPERATOR: string;\n };\n GROUP_CHANNEL_INVITE: {\n /** GroupChannelInvite > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n GROUP_CHANNEL_CREATE: {\n /** GroupChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n // UI\n LABELS: {\n USER_NO_NAME: string;\n CHANNEL_NO_MEMBERS: string;\n TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;\n\n USER_BAR_ME_POSTFIX: string;\n USER_BAR_OPERATOR: string;\n\n REGISTER_AS_OPERATOR: string;\n UNREGISTER_OPERATOR: string;\n MUTE: string;\n UNMUTE: string;\n BAN: string;\n UNBAN: string;\n };\n FILE_VIEWER: {\n TITLE: (message: SendbirdFileMessage) => string;\n SUBTITLE: (message: SendbirdFileMessage) => string;\n };\n PLACEHOLDER: {\n NO_BANNED_USERS: string;\n NO_USERS: string;\n NO_CHANNELS: string;\n NO_MESSAGES: string;\n NO_MUTED_MEMBERS: string;\n NO_RESULTS_FOUND: string;\n ERROR: {\n MESSAGE: string;\n RETRY_LABEL: string;\n };\n };\n DIALOG: {\n ALERT_DEFAULT_OK: string;\n\n ALERT_PERMISSIONS_TITLE: string;\n ALERT_PERMISSIONS_MESSAGE: (permission: string, appName: string) => string;\n ALERT_PERMISSIONS_OK: string;\n\n PROMPT_DEFAULT_OK: string;\n PROMPT_DEFAULT_CANCEL: string;\n PROMPT_DEFAULT_PLACEHOLDER: string;\n };\n TOAST: {\n COPY_OK: string;\n DOWNLOAD_START: string;\n DOWNLOAD_OK: string;\n DOWNLOAD_ERROR: string;\n OPEN_CAMERA_ERROR: string;\n OPEN_PHOTO_LIBRARY_ERROR: string;\n OPEN_FILES_ERROR: string;\n RESEND_MSG_ERROR: string;\n DELETE_MSG_ERROR: string;\n SEND_MSG_ERROR: string;\n UPDATE_MSG_ERROR: string;\n TURN_ON_NOTIFICATIONS_ERROR: string;\n TURN_OFF_NOTIFICATIONS_ERROR: string;\n LEAVE_CHANNEL_ERROR: string;\n };\n PROFILE_CARD: {\n BUTTON_MESSAGE: string;\n BODY_LABEL: string;\n BODY: (user: SendbirdUser | SendbirdMember) => string;\n };\n}\n\ntype StringSetCreateOptions = {\n dateLocale: Locale;\n overrides?: PartialDeep<StringSet>;\n};\n\n/**\n * Create string set\n * You can create localized String set, you should provide locale for date and string as a parameters\n *\n * @param {StringSetCreateOptions.dateLocale} dateLocale Date locale (from date-fns)\n * @param {StringSetCreateOptions.overrides} [overrides] Localized strings\n * */\nexport const createBaseStringSet = ({ dateLocale, overrides }: StringSetCreateOptions): StringSet => {\n const USER_NO_NAME = overrides?.LABELS?.USER_NO_NAME ?? '(No name)';\n const CHANNEL_NO_MEMBERS = overrides?.LABELS?.CHANNEL_NO_MEMBERS ?? '(No members)';\n return {\n GROUP_CHANNEL: {\n HEADER_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n LIST_BANNER_FROZEN: 'Channel is frozen',\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n LIST_BUTTON_NEW_MSG: (newMessages) => `${newMessages.length} new messages`,\n\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n\n INPUT_PLACEHOLDER_ACTIVE: 'Enter message',\n INPUT_PLACEHOLDER_DISABLED: 'Chat not available in this channel.',\n INPUT_PLACEHOLDER_MUTED: \"You're muted by the operator.\",\n INPUT_EDIT_OK: 'Save',\n INPUT_EDIT_CANCEL: 'Cancel',\n\n MENTION_LIMITED: (mentionLimit) => `You can have up to ${mentionLimit} mentions per message.`,\n\n DIALOG_MESSAGE_COPY: 'Copy',\n DIALOG_MESSAGE_EDIT: 'Edit',\n DIALOG_MESSAGE_SAVE: 'Save',\n DIALOG_MESSAGE_DELETE: 'Delete',\n DIALOG_MESSAGE_DELETE_CONFIRM_TITLE: 'Delete message?',\n DIALOG_MESSAGE_DELETE_CONFIRM_OK: 'Delete',\n DIALOG_MESSAGE_DELETE_CONFIRM_CANCEL: 'Cancel',\n DIALOG_MESSAGE_FAILED_RETRY: 'Retry',\n DIALOG_MESSAGE_FAILED_REMOVE: 'Remove',\n\n DIALOG_ATTACHMENT_CAMERA: 'Camera',\n DIALOG_ATTACHMENT_PHOTO_LIBRARY: 'Photo library',\n DIALOG_ATTACHMENT_FILES: 'Files',\n ...overrides?.GROUP_CHANNEL,\n },\n GROUP_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n MENU_MODERATION: 'Moderation',\n MENU_MEMBERS: 'Members',\n MENU_LEAVE_CHANNEL: 'Leave channel',\n MENU_NOTIFICATION: 'Notifications',\n MENU_NOTIFICATION_LABEL_ON: 'On',\n MENU_NOTIFICATION_LABEL_OFF: 'Off',\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: 'Mentions only',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.GROUP_CHANNEL_SETTINGS,\n },\n GROUP_CHANNEL_NOTIFICATIONS: {\n HEADER_TITLE: 'Notifications',\n MENU_NOTIFICATIONS: 'Notifications',\n MENU_NOTIFICATIONS_DESC:\n 'Turn on push notifications if you wish to be notified when messages are delivered to this channel.',\n MENU_NOTIFICATIONS_OPTION_ALL: 'All new messages',\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: 'Mentions only',\n ...overrides?.GROUP_CHANNEL_NOTIFICATIONS,\n },\n GROUP_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_MEMBERS: 'Muted members',\n MENU_BANNED_USERS: 'Banned users',\n MENU_FREEZE_CHANNEL: 'Freeze channel',\n ...overrides?.GROUP_CHANNEL_MODERATION,\n },\n GROUP_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_MUTED_MEMBERS: {\n HEADER_TITLE: 'Muted members',\n ...overrides?.GROUP_CHANNEL_MUTED_MEMBERS,\n },\n GROUP_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.GROUP_CHANNEL_BANNED_USERS,\n },\n GROUP_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel, locale) => getGroupChannelPreviewTime(channel, locale ?? dateLocale),\n CHANNEL_PREVIEW_BODY: (channel) => getGroupChannelLastMessage(channel),\n TYPE_SELECTOR_HEADER_TITLE: 'Channel type',\n TYPE_SELECTOR_GROUP: 'Group',\n TYPE_SELECTOR_SUPER_GROUP: 'Super group',\n TYPE_SELECTOR_BROADCAST: 'Broadcast',\n DIALOG_CHANNEL_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n DIALOG_CHANNEL_NOTIFICATION: (channel) => {\n if (!channel) return '';\n if (channel.myPushTriggerOption === 'off') return 'Turn on notifications';\n return 'Turn off notifications';\n },\n DIALOG_CHANNEL_LEAVE: 'Leave channel',\n ...overrides?.GROUP_CHANNEL_LIST,\n },\n GROUP_CHANNEL_MEMBERS: {\n HEADER_TITLE: 'Members',\n /** @deprecated Please use in LABELS **/\n USER_BAR_ME_POSTFIX: ' (You)',\n /** @deprecated Please use in LABELS **/\n USER_BAR_OPERATOR: 'Operator',\n ...overrides?.GROUP_CHANNEL_MEMBERS,\n },\n GROUP_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Create';\n return `Create (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_CREATE,\n },\n GROUP_CHANNEL_INVITE: {\n HEADER_TITLE: 'Invite users',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Invite';\n return `Invite (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_INVITE,\n },\n LABELS: {\n USER_NO_NAME,\n CHANNEL_NO_MEMBERS,\n TYPING_INDICATOR_TYPINGS: (users, NO_NAME = USER_NO_NAME) => {\n const userNames = users.map((u) => u.nickname || NO_NAME);\n if (userNames.length === 0) return;\n if (userNames.length === 1) return `${userNames[0]} is typing...`;\n if (users.length === 2) return `${userNames.join(' and ')} are typing...`;\n return 'Several people are typing...';\n },\n USER_BAR_ME_POSTFIX: ' (You)',\n USER_BAR_OPERATOR: 'Operator',\n REGISTER_AS_OPERATOR: 'Register as operator',\n UNREGISTER_OPERATOR: 'Unregister operator',\n MUTE: 'Mute',\n UNMUTE: 'Unmute',\n BAN: 'Ban',\n UNBAN: 'Unban',\n ...overrides?.LABELS,\n },\n FILE_VIEWER: {\n TITLE: (message) => message.sender?.nickname || USER_NO_NAME,\n SUBTITLE: (message) => getMessageTimeFormat(new Date(message.createdAt), dateLocale),\n },\n PLACEHOLDER: {\n NO_BANNED_USERS: 'No banned users',\n NO_USERS: 'No users',\n NO_CHANNELS: 'No channels',\n NO_MESSAGES: 'No messages',\n NO_MUTED_MEMBERS: 'No muted members',\n NO_RESULTS_FOUND: 'No results found',\n ...overrides?.PLACEHOLDER,\n ERROR: {\n MESSAGE: 'Something went wrong',\n RETRY_LABEL: 'Retry',\n ...overrides?.PLACEHOLDER?.ERROR,\n },\n },\n DIALOG: {\n ALERT_DEFAULT_OK: 'OK',\n ALERT_PERMISSIONS_TITLE: 'Allow access?',\n ALERT_PERMISSIONS_MESSAGE: (permission, appName = 'Application') => {\n return `${appName} need permission to access your ${permission}.`;\n },\n ALERT_PERMISSIONS_OK: 'Go to settings',\n PROMPT_DEFAULT_OK: 'Submit',\n PROMPT_DEFAULT_CANCEL: 'Cancel',\n PROMPT_DEFAULT_PLACEHOLDER: 'Enter',\n ...overrides?.DIALOG,\n },\n TOAST: {\n COPY_OK: 'Copied',\n DOWNLOAD_START: 'Downloading...',\n DOWNLOAD_OK: 'File saved',\n DOWNLOAD_ERROR: \"Couldn't download file.\",\n OPEN_CAMERA_ERROR: \"Couldn't open camera.\",\n OPEN_FILES_ERROR: \"Couldn't open files.\",\n OPEN_PHOTO_LIBRARY_ERROR: \"Couldn't open photo library.\",\n DELETE_MSG_ERROR: \"Couldn't delete message.\",\n RESEND_MSG_ERROR: \"Couldn't send message.\",\n SEND_MSG_ERROR: \"Couldn't send message.\",\n UPDATE_MSG_ERROR: \"Couldn't edit message.\",\n TURN_ON_NOTIFICATIONS_ERROR: \"Couldn't turn on notifications.\",\n TURN_OFF_NOTIFICATIONS_ERROR: \"Couldn't turn off notifications.\",\n LEAVE_CHANNEL_ERROR: \"Couldn't leave channel.\",\n ...overrides?.TOAST,\n },\n PROFILE_CARD: {\n BUTTON_MESSAGE: 'Message',\n BODY_LABEL: 'User ID',\n BODY: (user) => user.userId,\n ...overrides?.PROFILE_CARD,\n },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getDateSeparatorFormat","getGroupChannelLastMessage","getGroupChannelPreviewTime","getGroupChannelTitle","getMessageTimeFormat","createBaseStringSet","dateLocale","overrides","USER_NO_NAME","LABELS","CHANNEL_NO_MEMBERS","GROUP_CHANNEL","HEADER_TITLE","currentUserId","channel","LIST_BANNER_FROZEN","LIST_DATE_SEPARATOR","date","locale","LIST_BUTTON_NEW_MSG","newMessages","length","MESSAGE_BUBBLE_TIME","message","Date","createdAt","MESSAGE_BUBBLE_FILE_TITLE","name","MESSAGE_BUBBLE_EDITED_POSTFIX","MESSAGE_BUBBLE_UNKNOWN_TITLE","MESSAGE_BUBBLE_UNKNOWN_DESC","INPUT_PLACEHOLDER_ACTIVE","INPUT_PLACEHOLDER_DISABLED","INPUT_PLACEHOLDER_MUTED","INPUT_EDIT_OK","INPUT_EDIT_CANCEL","MENTION_LIMITED","mentionLimit","DIALOG_MESSAGE_COPY","DIALOG_MESSAGE_EDIT","DIALOG_MESSAGE_SAVE","DIALOG_MESSAGE_DELETE","DIALOG_MESSAGE_DELETE_CONFIRM_TITLE","DIALOG_MESSAGE_DELETE_CONFIRM_OK","DIALOG_MESSAGE_DELETE_CONFIRM_CANCEL","DIALOG_MESSAGE_FAILED_RETRY","DIALOG_MESSAGE_FAILED_REMOVE","DIALOG_ATTACHMENT_CAMERA","DIALOG_ATTACHMENT_PHOTO_LIBRARY","DIALOG_ATTACHMENT_FILES","GROUP_CHANNEL_SETTINGS","HEADER_RIGHT","MENU_MODERATION","MENU_MEMBERS","MENU_LEAVE_CHANNEL","MENU_NOTIFICATION","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENU_NOTIFICATION_LABEL_MENTION_ONLY","DIALOG_CHANGE_NAME","DIALOG_CHANGE_NAME_PROMPT_TITLE","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","DIALOG_CHANGE_NAME_PROMPT_OK","DIALOG_CHANGE_NAME_PROMPT_CANCEL","DIALOG_CHANGE_IMAGE","DIALOG_CHANGE_IMAGE_MENU_TITLE","DIALOG_CHANGE_IMAGE_MENU_CAMERA","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","GROUP_CHANNEL_NOTIFICATIONS","MENU_NOTIFICATIONS","MENU_NOTIFICATIONS_DESC","MENU_NOTIFICATIONS_OPTION_ALL","MENU_NOTIFICATIONS_OPTION_MENTION_ONLY","GROUP_CHANNEL_MODERATION","MENU_OPERATORS","MENU_MUTED_MEMBERS","MENU_BANNED_USERS","MENU_FREEZE_CHANNEL","GROUP_CHANNEL_OPERATORS","GROUP_CHANNEL_REGISTER_OPERATOR","selectedUsers","len","GROUP_CHANNEL_MUTED_MEMBERS","GROUP_CHANNEL_BANNED_USERS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","CHANNEL_PREVIEW_TITLE_CAPTION","CHANNEL_PREVIEW_BODY","TYPE_SELECTOR_HEADER_TITLE","TYPE_SELECTOR_GROUP","TYPE_SELECTOR_SUPER_GROUP","TYPE_SELECTOR_BROADCAST","DIALOG_CHANNEL_TITLE","DIALOG_CHANNEL_NOTIFICATION","myPushTriggerOption","DIALOG_CHANNEL_LEAVE","GROUP_CHANNEL_MEMBERS","USER_BAR_ME_POSTFIX","USER_BAR_OPERATOR","GROUP_CHANNEL_CREATE","GROUP_CHANNEL_INVITE","PERMISSION_APP_NAME","PERMISSION_CAMERA","PERMISSION_DEVICE_STORAGE","TYPING_INDICATOR_TYPINGS","users","NO_NAME","userNames","map","u","nickname","join","REGISTER_AS_OPERATOR","UNREGISTER_OPERATOR","MUTE","UNMUTE","BAN","UNBAN","FILE_VIEWER","TITLE","sender","SUBTITLE","PLACEHOLDER","NO_BANNED_USERS","NO_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_RESULTS_FOUND","ERROR","MESSAGE","RETRY_LABEL","DIALOG","ALERT_DEFAULT_OK","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","permission","appName","ALERT_PERMISSIONS_OK","PROMPT_DEFAULT_OK","PROMPT_DEFAULT_CANCEL","PROMPT_DEFAULT_PLACEHOLDER","TOAST","COPY_OK","DOWNLOAD_START","DOWNLOAD_OK","DOWNLOAD_ERROR","OPEN_CAMERA_ERROR","OPEN_FILES_ERROR","OPEN_PHOTO_LIBRARY_ERROR","DELETE_MSG_ERROR","RESEND_MSG_ERROR","SEND_MSG_ERROR","UPDATE_MSG_ERROR","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","LEAVE_CHANNEL_ERROR","PROFILE_CARD","BUTTON_MESSAGE","BODY_LABEL","BODY","user","userId"],"sources":["StringSet.type.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type {\n PartialDeep,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMember,\n SendbirdMessage,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport {\n getDateSeparatorFormat,\n getGroupChannelLastMessage,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessageTimeFormat,\n} from '@sendbird/uikit-utils';\n\n/**\n * StringSet interface\n * Do not configure over 3 depths (for overrides easy)\n * */\nexport interface StringSet {\n GROUP_CHANNEL: {\n /** GroupChannel > Header */\n HEADER_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n\n /** GroupChannel > List */\n LIST_BANNER_FROZEN: string;\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;\n\n /** GroupChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n\n /** GroupChannel > Input */\n INPUT_PLACEHOLDER_ACTIVE: string;\n INPUT_PLACEHOLDER_DISABLED: string;\n INPUT_PLACEHOLDER_MUTED: string;\n INPUT_EDIT_OK: string;\n INPUT_EDIT_CANCEL: string;\n\n /** GroupChannel > Suggested mention list */\n MENTION_LIMITED: (mentionLimit: number) => string;\n\n /** GroupChannel > Dialog > Message */\n DIALOG_MESSAGE_COPY: string;\n DIALOG_MESSAGE_EDIT: string;\n DIALOG_MESSAGE_SAVE: string;\n DIALOG_MESSAGE_DELETE: string;\n /** GroupChannel > Dialog > Message > Delete confirm */\n DIALOG_MESSAGE_DELETE_CONFIRM_TITLE: string;\n DIALOG_MESSAGE_DELETE_CONFIRM_OK: string;\n DIALOG_MESSAGE_DELETE_CONFIRM_CANCEL: string;\n /** GroupChannel > Dialog > Message > Failed */\n DIALOG_MESSAGE_FAILED_RETRY: string;\n DIALOG_MESSAGE_FAILED_REMOVE: string;\n\n /** GroupChannel > Dialog > Attachments */\n DIALOG_ATTACHMENT_CAMERA: string;\n DIALOG_ATTACHMENT_PHOTO_LIBRARY: string;\n DIALOG_ATTACHMENT_FILES: string;\n };\n GROUP_CHANNEL_SETTINGS: {\n /** GroupChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** GroupChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_MEMBERS: string;\n MENU_LEAVE_CHANNEL: string;\n MENU_NOTIFICATION: string;\n MENU_NOTIFICATION_LABEL_ON: string;\n MENU_NOTIFICATION_LABEL_OFF: string;\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: string;\n\n /** GroupChannelSettings > Dialog */\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n GROUP_CHANNEL_NOTIFICATIONS: {\n /** GroupChannelNotifications > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelNotifications > Menu */\n MENU_NOTIFICATIONS: string;\n MENU_NOTIFICATIONS_DESC: string;\n MENU_NOTIFICATIONS_OPTION_ALL: string;\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: string;\n };\n GROUP_CHANNEL_MODERATION: {\n /** GroupChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_MEMBERS: string;\n MENU_BANNED_USERS: string;\n MENU_FREEZE_CHANNEL: string;\n };\n GROUP_CHANNEL_OPERATORS: {\n /** GroupChannelOperators > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n /** GroupChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdMember> }) => string;\n };\n GROUP_CHANNEL_MUTED_MEMBERS: {\n /** GroupChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_BANNED_USERS: {\n /** GroupChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_LIST: {\n /** GroupChannelList > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel: SendbirdGroupChannel, locale?: Locale) => string;\n CHANNEL_PREVIEW_BODY: (channel: SendbirdGroupChannel) => string;\n\n /** GroupChannelList > TypeSelector > Header */\n TYPE_SELECTOR_HEADER_TITLE: string;\n /** GroupChannelList > TypeSelector > Type string */\n TYPE_SELECTOR_GROUP: string;\n TYPE_SELECTOR_SUPER_GROUP: string;\n TYPE_SELECTOR_BROADCAST: string;\n\n /** GroupChannelList > Dialog > Channel */\n DIALOG_CHANNEL_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_NOTIFICATION: (channel?: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_LEAVE: string;\n };\n GROUP_CHANNEL_MEMBERS: {\n /** GroupChannelMembers > Header */\n HEADER_TITLE: string;\n\n /** @deprecated Please use in LABELS **/\n USER_BAR_ME_POSTFIX: string;\n /** @deprecated Please use in LABELS **/\n USER_BAR_OPERATOR: string;\n };\n GROUP_CHANNEL_INVITE: {\n /** GroupChannelInvite > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n GROUP_CHANNEL_CREATE: {\n /** GroupChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n // UI\n LABELS: {\n PERMISSION_APP_NAME: string;\n PERMISSION_CAMERA: string;\n PERMISSION_DEVICE_STORAGE: string;\n\n USER_NO_NAME: string;\n CHANNEL_NO_MEMBERS: string;\n TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;\n\n USER_BAR_ME_POSTFIX: string;\n USER_BAR_OPERATOR: string;\n\n REGISTER_AS_OPERATOR: string;\n UNREGISTER_OPERATOR: string;\n MUTE: string;\n UNMUTE: string;\n BAN: string;\n UNBAN: string;\n };\n FILE_VIEWER: {\n TITLE: (message: SendbirdFileMessage) => string;\n SUBTITLE: (message: SendbirdFileMessage) => string;\n };\n PLACEHOLDER: {\n NO_BANNED_USERS: string;\n NO_USERS: string;\n NO_CHANNELS: string;\n NO_MESSAGES: string;\n NO_MUTED_MEMBERS: string;\n NO_RESULTS_FOUND: string;\n ERROR: {\n MESSAGE: string;\n RETRY_LABEL: string;\n };\n };\n DIALOG: {\n ALERT_DEFAULT_OK: string;\n\n ALERT_PERMISSIONS_TITLE: string;\n ALERT_PERMISSIONS_MESSAGE: (permission: string, appName: string) => string;\n ALERT_PERMISSIONS_OK: string;\n\n PROMPT_DEFAULT_OK: string;\n PROMPT_DEFAULT_CANCEL: string;\n PROMPT_DEFAULT_PLACEHOLDER: string;\n };\n TOAST: {\n COPY_OK: string;\n DOWNLOAD_START: string;\n DOWNLOAD_OK: string;\n DOWNLOAD_ERROR: string;\n OPEN_CAMERA_ERROR: string;\n OPEN_PHOTO_LIBRARY_ERROR: string;\n OPEN_FILES_ERROR: string;\n RESEND_MSG_ERROR: string;\n DELETE_MSG_ERROR: string;\n SEND_MSG_ERROR: string;\n UPDATE_MSG_ERROR: string;\n TURN_ON_NOTIFICATIONS_ERROR: string;\n TURN_OFF_NOTIFICATIONS_ERROR: string;\n LEAVE_CHANNEL_ERROR: string;\n };\n PROFILE_CARD: {\n BUTTON_MESSAGE: string;\n BODY_LABEL: string;\n BODY: (user: SendbirdUser | SendbirdMember) => string;\n };\n}\n\ntype StringSetCreateOptions = {\n dateLocale: Locale;\n overrides?: PartialDeep<StringSet>;\n};\n\n/**\n * Create string set\n * You can create localized String set, you should provide locale for date and string as a parameters\n *\n * @param {StringSetCreateOptions.dateLocale} dateLocale Date locale (from date-fns)\n * @param {StringSetCreateOptions.overrides} [overrides] Localized strings\n * */\nexport const createBaseStringSet = ({ dateLocale, overrides }: StringSetCreateOptions): StringSet => {\n const USER_NO_NAME = overrides?.LABELS?.USER_NO_NAME ?? '(No name)';\n const CHANNEL_NO_MEMBERS = overrides?.LABELS?.CHANNEL_NO_MEMBERS ?? '(No members)';\n return {\n GROUP_CHANNEL: {\n HEADER_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n LIST_BANNER_FROZEN: 'Channel is frozen',\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n LIST_BUTTON_NEW_MSG: (newMessages) => `${newMessages.length} new messages`,\n\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n\n INPUT_PLACEHOLDER_ACTIVE: 'Enter message',\n INPUT_PLACEHOLDER_DISABLED: 'Chat not available in this channel.',\n INPUT_PLACEHOLDER_MUTED: \"You're muted by the operator.\",\n INPUT_EDIT_OK: 'Save',\n INPUT_EDIT_CANCEL: 'Cancel',\n\n MENTION_LIMITED: (mentionLimit) => `You can have up to ${mentionLimit} mentions per message.`,\n\n DIALOG_MESSAGE_COPY: 'Copy',\n DIALOG_MESSAGE_EDIT: 'Edit',\n DIALOG_MESSAGE_SAVE: 'Save',\n DIALOG_MESSAGE_DELETE: 'Delete',\n DIALOG_MESSAGE_DELETE_CONFIRM_TITLE: 'Delete message?',\n DIALOG_MESSAGE_DELETE_CONFIRM_OK: 'Delete',\n DIALOG_MESSAGE_DELETE_CONFIRM_CANCEL: 'Cancel',\n DIALOG_MESSAGE_FAILED_RETRY: 'Retry',\n DIALOG_MESSAGE_FAILED_REMOVE: 'Remove',\n\n DIALOG_ATTACHMENT_CAMERA: 'Camera',\n DIALOG_ATTACHMENT_PHOTO_LIBRARY: 'Photo library',\n DIALOG_ATTACHMENT_FILES: 'Files',\n ...overrides?.GROUP_CHANNEL,\n },\n GROUP_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n MENU_MODERATION: 'Moderation',\n MENU_MEMBERS: 'Members',\n MENU_LEAVE_CHANNEL: 'Leave channel',\n MENU_NOTIFICATION: 'Notifications',\n MENU_NOTIFICATION_LABEL_ON: 'On',\n MENU_NOTIFICATION_LABEL_OFF: 'Off',\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: 'Mentions only',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.GROUP_CHANNEL_SETTINGS,\n },\n GROUP_CHANNEL_NOTIFICATIONS: {\n HEADER_TITLE: 'Notifications',\n MENU_NOTIFICATIONS: 'Notifications',\n MENU_NOTIFICATIONS_DESC:\n 'Turn on push notifications if you wish to be notified when messages are delivered to this channel.',\n MENU_NOTIFICATIONS_OPTION_ALL: 'All new messages',\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: 'Mentions only',\n ...overrides?.GROUP_CHANNEL_NOTIFICATIONS,\n },\n GROUP_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_MEMBERS: 'Muted members',\n MENU_BANNED_USERS: 'Banned users',\n MENU_FREEZE_CHANNEL: 'Freeze channel',\n ...overrides?.GROUP_CHANNEL_MODERATION,\n },\n GROUP_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_MUTED_MEMBERS: {\n HEADER_TITLE: 'Muted members',\n ...overrides?.GROUP_CHANNEL_MUTED_MEMBERS,\n },\n GROUP_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.GROUP_CHANNEL_BANNED_USERS,\n },\n GROUP_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel, locale) => getGroupChannelPreviewTime(channel, locale ?? dateLocale),\n CHANNEL_PREVIEW_BODY: (channel) => getGroupChannelLastMessage(channel),\n TYPE_SELECTOR_HEADER_TITLE: 'Channel type',\n TYPE_SELECTOR_GROUP: 'Group',\n TYPE_SELECTOR_SUPER_GROUP: 'Super group',\n TYPE_SELECTOR_BROADCAST: 'Broadcast',\n DIALOG_CHANNEL_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n DIALOG_CHANNEL_NOTIFICATION: (channel) => {\n if (!channel) return '';\n if (channel.myPushTriggerOption === 'off') return 'Turn on notifications';\n return 'Turn off notifications';\n },\n DIALOG_CHANNEL_LEAVE: 'Leave channel',\n ...overrides?.GROUP_CHANNEL_LIST,\n },\n GROUP_CHANNEL_MEMBERS: {\n HEADER_TITLE: 'Members',\n /** @deprecated Please use in LABELS **/\n USER_BAR_ME_POSTFIX: ' (You)',\n /** @deprecated Please use in LABELS **/\n USER_BAR_OPERATOR: 'Operator',\n ...overrides?.GROUP_CHANNEL_MEMBERS,\n },\n GROUP_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Create';\n return `Create (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_CREATE,\n },\n GROUP_CHANNEL_INVITE: {\n HEADER_TITLE: 'Invite users',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Invite';\n return `Invite (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_INVITE,\n },\n LABELS: {\n PERMISSION_APP_NAME: 'Application',\n PERMISSION_CAMERA: 'camera',\n PERMISSION_DEVICE_STORAGE: 'device storage',\n USER_NO_NAME,\n CHANNEL_NO_MEMBERS,\n TYPING_INDICATOR_TYPINGS: (users, NO_NAME = USER_NO_NAME) => {\n const userNames = users.map((u) => u.nickname || NO_NAME);\n if (userNames.length === 0) return;\n if (userNames.length === 1) return `${userNames[0]} is typing...`;\n if (users.length === 2) return `${userNames.join(' and ')} are typing...`;\n return 'Several people are typing...';\n },\n USER_BAR_ME_POSTFIX: ' (You)',\n USER_BAR_OPERATOR: 'Operator',\n REGISTER_AS_OPERATOR: 'Register as operator',\n UNREGISTER_OPERATOR: 'Unregister operator',\n MUTE: 'Mute',\n UNMUTE: 'Unmute',\n BAN: 'Ban',\n UNBAN: 'Unban',\n ...overrides?.LABELS,\n },\n FILE_VIEWER: {\n TITLE: (message) => message.sender?.nickname || USER_NO_NAME,\n SUBTITLE: (message) => getMessageTimeFormat(new Date(message.createdAt), dateLocale),\n },\n PLACEHOLDER: {\n NO_BANNED_USERS: 'No banned users',\n NO_USERS: 'No users',\n NO_CHANNELS: 'No channels',\n NO_MESSAGES: 'No messages',\n NO_MUTED_MEMBERS: 'No muted members',\n NO_RESULTS_FOUND: 'No results found',\n ...overrides?.PLACEHOLDER,\n ERROR: {\n MESSAGE: 'Something went wrong',\n RETRY_LABEL: 'Retry',\n ...overrides?.PLACEHOLDER?.ERROR,\n },\n },\n DIALOG: {\n ALERT_DEFAULT_OK: 'OK',\n ALERT_PERMISSIONS_TITLE: 'Allow access?',\n ALERT_PERMISSIONS_MESSAGE: (permission, appName = 'Application') => {\n return `${appName} need permission to access your ${permission}.`;\n },\n ALERT_PERMISSIONS_OK: 'Go to settings',\n PROMPT_DEFAULT_OK: 'Submit',\n PROMPT_DEFAULT_CANCEL: 'Cancel',\n PROMPT_DEFAULT_PLACEHOLDER: 'Enter',\n ...overrides?.DIALOG,\n },\n TOAST: {\n COPY_OK: 'Copied',\n DOWNLOAD_START: 'Downloading...',\n DOWNLOAD_OK: 'File saved',\n DOWNLOAD_ERROR: \"Couldn't download file.\",\n OPEN_CAMERA_ERROR: \"Couldn't open camera.\",\n OPEN_FILES_ERROR: \"Couldn't open files.\",\n OPEN_PHOTO_LIBRARY_ERROR: \"Couldn't open photo library.\",\n DELETE_MSG_ERROR: \"Couldn't delete message.\",\n RESEND_MSG_ERROR: \"Couldn't send message.\",\n SEND_MSG_ERROR: \"Couldn't send message.\",\n UPDATE_MSG_ERROR: \"Couldn't edit message.\",\n TURN_ON_NOTIFICATIONS_ERROR: \"Couldn't turn on notifications.\",\n TURN_OFF_NOTIFICATIONS_ERROR: \"Couldn't turn off notifications.\",\n LEAVE_CHANNEL_ERROR: \"Couldn't leave channel.\",\n ...overrides?.TOAST,\n },\n PROFILE_CARD: {\n BUTTON_MESSAGE: 'Message',\n BODY_LABEL: 'User ID',\n BODY: (user) => user.userId,\n ...overrides?.PROFILE_CARD,\n },\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
|
+
import { getDownscaleSize } from '@sendbird/uikit-utils';
|
|
5
|
+
import SBUUtils from '../libs/SBUUtils';
|
|
4
6
|
|
|
5
7
|
const createExpoMediaService = _ref => {
|
|
6
8
|
let {
|
|
7
9
|
avModule,
|
|
8
|
-
thumbnailModule
|
|
10
|
+
thumbnailModule,
|
|
11
|
+
imageManipulator,
|
|
12
|
+
fsModule
|
|
9
13
|
} = _ref;
|
|
10
14
|
return {
|
|
11
15
|
VideoComponent(_ref2) {
|
|
@@ -45,6 +49,34 @@ const createExpoMediaService = _ref => {
|
|
|
45
49
|
} catch {
|
|
46
50
|
return null;
|
|
47
51
|
}
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
async compressImage(_ref4) {
|
|
55
|
+
let {
|
|
56
|
+
maxWidth,
|
|
57
|
+
maxHeight,
|
|
58
|
+
compressionRate = 1,
|
|
59
|
+
uri
|
|
60
|
+
} = _ref4;
|
|
61
|
+
const originSize = await SBUUtils.getImageSize(uri);
|
|
62
|
+
const resizingSize = getDownscaleSize(originSize, {
|
|
63
|
+
width: maxWidth,
|
|
64
|
+
height: maxHeight
|
|
65
|
+
});
|
|
66
|
+
const {
|
|
67
|
+
uri: compressedURI
|
|
68
|
+
} = await imageManipulator.manipulateAsync(uri, [{
|
|
69
|
+
resize: resizingSize
|
|
70
|
+
}], {
|
|
71
|
+
compress: Math.min(Math.max(0, compressionRate), 1)
|
|
72
|
+
});
|
|
73
|
+
const {
|
|
74
|
+
size = 0
|
|
75
|
+
} = await fsModule.getInfoAsync(uri);
|
|
76
|
+
return {
|
|
77
|
+
uri: compressedURI,
|
|
78
|
+
size
|
|
79
|
+
};
|
|
48
80
|
}
|
|
49
81
|
|
|
50
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createExpoMediaService","avModule","thumbnailModule","VideoComponent","source","resizeMode","onLoad","props","getVideoThumbnail","url","quality","timeMills","uri","getThumbnailAsync","time","path"],"sources":["createMediaService.expo.tsx"],"sourcesContent":["import type * as ExpoAV from 'expo-av';\nimport type * as ExpoVideoThumbnail from 'expo-video-thumbnails';\nimport React from 'react';\n\nimport type { MediaServiceInterface } from './types';\n\ntype Modules = {\n avModule: typeof ExpoAV;\n thumbnailModule: typeof ExpoVideoThumbnail;\n};\n\nconst createExpoMediaService = ({
|
|
1
|
+
{"version":3,"names":["React","getDownscaleSize","SBUUtils","createExpoMediaService","avModule","thumbnailModule","imageManipulator","fsModule","VideoComponent","source","resizeMode","onLoad","props","getVideoThumbnail","url","quality","timeMills","uri","getThumbnailAsync","time","path","compressImage","maxWidth","maxHeight","compressionRate","originSize","getImageSize","resizingSize","width","height","compressedURI","manipulateAsync","resize","compress","Math","min","max","size","getInfoAsync"],"sources":["createMediaService.expo.tsx"],"sourcesContent":["import type * as ExpoAV from 'expo-av';\nimport type * as ExpoFS from 'expo-file-system';\nimport type * as ExpoImageManipulator from 'expo-image-manipulator';\nimport type * as ExpoVideoThumbnail from 'expo-video-thumbnails';\nimport React from 'react';\n\nimport { getDownscaleSize } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\ntype Modules = {\n avModule: typeof ExpoAV;\n thumbnailModule: typeof ExpoVideoThumbnail;\n imageManipulator: typeof ExpoImageManipulator;\n fsModule: typeof ExpoFS;\n};\n\nconst createExpoMediaService = ({\n avModule,\n thumbnailModule,\n imageManipulator,\n fsModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n // FIXME: type error https://github.com/expo/expo/issues/17101\n // @ts-ignore\n return <avModule.Video {...props} source={source} resizeMode={resizeMode} onLoad={onLoad} useNativeControls />;\n },\n async getVideoThumbnail({ url, quality, timeMills }) {\n try {\n const { uri } = await thumbnailModule.getThumbnailAsync(url, { quality, time: timeMills });\n return { path: uri };\n } catch {\n return null;\n }\n },\n async compressImage({ maxWidth, maxHeight, compressionRate = 1, uri }) {\n const originSize = await SBUUtils.getImageSize(uri);\n const resizingSize = getDownscaleSize(originSize, { width: maxWidth, height: maxHeight });\n\n const { uri: compressedURI } = await imageManipulator.manipulateAsync(uri, [{ resize: resizingSize }], {\n compress: Math.min(Math.max(0, compressionRate), 1),\n });\n const { size = 0 } = await fsModule.getInfoAsync(uri);\n\n return { uri: compressedURI, size };\n },\n };\n};\n\nexport default createExpoMediaService;\n"],"mappings":";;AAIA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,gBAAT,QAAiC,uBAAjC;AAEA,OAAOC,QAAP,MAAqB,kBAArB;;AAUA,MAAMC,sBAAsB,GAAG,QAKO;EAAA,IALN;IAC9BC,QAD8B;IAE9BC,eAF8B;IAG9BC,gBAH8B;IAI9BC;EAJ8B,CAKM;EACpC,OAAO;IACLC,cAAc,QAA2C;MAAA,IAA1C;QAAEC,MAAF;QAAUC,UAAV;QAAsBC,MAAtB;QAA8B,GAAGC;MAAjC,CAA0C;MACvD;MACA;MACA,oBAAO,oBAAC,QAAD,CAAU,KAAV,eAAoBA,KAApB;QAA2B,MAAM,EAAEH,MAAnC;QAA2C,UAAU,EAAEC,UAAvD;QAAmE,MAAM,EAAEC,MAA3E;QAAmF,iBAAiB;MAApG,GAAP;IACD,CALI;;IAML,MAAME,iBAAN,QAAqD;MAAA,IAA7B;QAAEC,GAAF;QAAOC,OAAP;QAAgBC;MAAhB,CAA6B;;MACnD,IAAI;QACF,MAAM;UAAEC;QAAF,IAAU,MAAMZ,eAAe,CAACa,iBAAhB,CAAkCJ,GAAlC,EAAuC;UAAEC,OAAF;UAAWI,IAAI,EAAEH;QAAjB,CAAvC,CAAtB;QACA,OAAO;UAAEI,IAAI,EAAEH;QAAR,CAAP;MACD,CAHD,CAGE,MAAM;QACN,OAAO,IAAP;MACD;IACF,CAbI;;IAcL,MAAMI,aAAN,QAAuE;MAAA,IAAnD;QAAEC,QAAF;QAAYC,SAAZ;QAAuBC,eAAe,GAAG,CAAzC;QAA4CP;MAA5C,CAAmD;MACrE,MAAMQ,UAAU,GAAG,MAAMvB,QAAQ,CAACwB,YAAT,CAAsBT,GAAtB,CAAzB;MACA,MAAMU,YAAY,GAAG1B,gBAAgB,CAACwB,UAAD,EAAa;QAAEG,KAAK,EAAEN,QAAT;QAAmBO,MAAM,EAAEN;MAA3B,CAAb,CAArC;MAEA,MAAM;QAAEN,GAAG,EAAEa;MAAP,IAAyB,MAAMxB,gBAAgB,CAACyB,eAAjB,CAAiCd,GAAjC,EAAsC,CAAC;QAAEe,MAAM,EAAEL;MAAV,CAAD,CAAtC,EAAkE;QACrGM,QAAQ,EAAEC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYZ,eAAZ,CAAT,EAAuC,CAAvC;MAD2F,CAAlE,CAArC;MAGA,MAAM;QAAEa,IAAI,GAAG;MAAT,IAAe,MAAM9B,QAAQ,CAAC+B,YAAT,CAAsBrB,GAAtB,CAA3B;MAEA,OAAO;QAAEA,GAAG,EAAEa,aAAP;QAAsBO;MAAtB,CAAP;IACD;;EAxBI,CAAP;AA0BD,CAhCD;;AAkCA,eAAelC,sBAAf"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return String(Math.abs(str.split('').reduce((a, c) => (a << 5) - a + c.charCodeAt(0) | 0, 0)));
|
|
7
|
-
}
|
|
4
|
+
import { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';
|
|
5
|
+
import SBUUtils from '../libs/SBUUtils';
|
|
8
6
|
|
|
9
7
|
const createNativeMediaService = _ref => {
|
|
10
8
|
let {
|
|
11
9
|
VideoComponent,
|
|
12
|
-
thumbnailModule
|
|
10
|
+
thumbnailModule,
|
|
11
|
+
imageResizerModule
|
|
13
12
|
} = _ref;
|
|
14
13
|
return {
|
|
15
14
|
VideoComponent(_ref2) {
|
|
@@ -48,6 +47,40 @@ const createNativeMediaService = _ref => {
|
|
|
48
47
|
} catch {
|
|
49
48
|
return null;
|
|
50
49
|
}
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
async compressImage(_ref4) {
|
|
53
|
+
let {
|
|
54
|
+
uri,
|
|
55
|
+
maxWidth,
|
|
56
|
+
maxHeight,
|
|
57
|
+
compressionRate = 1
|
|
58
|
+
} = _ref4;
|
|
59
|
+
const originSize = await SBUUtils.getImageSize(uri);
|
|
60
|
+
const {
|
|
61
|
+
width,
|
|
62
|
+
height
|
|
63
|
+
} = getDownscaleSize(originSize, {
|
|
64
|
+
width: maxWidth,
|
|
65
|
+
height: maxHeight
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const extension = (() => {
|
|
69
|
+
return {
|
|
70
|
+
'png': 'PNG',
|
|
71
|
+
'jpeg': 'JPEG',
|
|
72
|
+
'jpg': 'JPEG'
|
|
73
|
+
}[getFileExtension(uri)] ?? 'JPEG';
|
|
74
|
+
})();
|
|
75
|
+
|
|
76
|
+
const {
|
|
77
|
+
size: resizedSize,
|
|
78
|
+
uri: compressedURI
|
|
79
|
+
} = await imageResizerModule.default.createResizedImage(uri, width, height, extension, Math.min(Math.max(0, compressionRate), 1) * 100);
|
|
80
|
+
return {
|
|
81
|
+
uri: compressedURI,
|
|
82
|
+
size: resizedSize
|
|
83
|
+
};
|
|
51
84
|
}
|
|
52
85
|
|
|
53
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","hash","
|
|
1
|
+
{"version":3,"names":["React","getDownscaleSize","getFileExtension","hash","SBUUtils","createNativeMediaService","VideoComponent","thumbnailModule","imageResizerModule","source","resizeMode","onLoad","props","getVideoThumbnail","url","timeMills","path","createThumbnail","format","timeStamp","cacheName","compressImage","uri","maxWidth","maxHeight","compressionRate","originSize","getImageSize","width","height","extension","size","resizedSize","compressedURI","default","createResizedImage","Math","min","max"],"sources":["createMediaService.native.tsx"],"sourcesContent":["import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';\nimport React from 'react';\nimport type * as RNCreateThumbnail from 'react-native-create-thumbnail';\nimport type RNVideo from 'react-native-video';\n\nimport { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\ntype Modules = {\n VideoComponent: typeof RNVideo;\n thumbnailModule: typeof RNCreateThumbnail;\n imageResizerModule: typeof RNImageResizer;\n};\n\nconst createNativeMediaService = ({\n VideoComponent,\n thumbnailModule,\n imageResizerModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n return <VideoComponent {...props} source={source} resizeMode={resizeMode} onLoad={onLoad} controls />;\n },\n async getVideoThumbnail({ url, timeMills }) {\n try {\n const { path } = await thumbnailModule.createThumbnail({\n url,\n format: 'jpeg',\n timeStamp: timeMills,\n cacheName: hash(url),\n });\n return { path };\n } catch {\n return null;\n }\n },\n async compressImage({ uri, maxWidth, maxHeight, compressionRate = 1 }) {\n const originSize = await SBUUtils.getImageSize(uri);\n const { width, height } = getDownscaleSize(originSize, { width: maxWidth, height: maxHeight });\n const extension = (() => {\n return { 'png': 'PNG', 'jpeg': 'JPEG', 'jpg': 'JPEG' }[getFileExtension(uri)] ?? 'JPEG';\n })() as 'PNG' | 'JPEG';\n\n const { size: resizedSize, uri: compressedURI } = await imageResizerModule.default.createResizedImage(\n uri,\n width,\n height,\n extension,\n Math.min(Math.max(0, compressionRate), 1) * 100,\n );\n\n return { uri: compressedURI, size: resizedSize };\n },\n };\n};\n\nexport default createNativeMediaService;\n"],"mappings":";;AACA,OAAOA,KAAP,MAAkB,OAAlB;AAIA,SAASC,gBAAT,EAA2BC,gBAA3B,EAA6CC,IAA7C,QAAyD,uBAAzD;AAEA,OAAOC,QAAP,MAAqB,kBAArB;;AASA,MAAMC,wBAAwB,GAAG,QAIK;EAAA,IAJJ;IAChCC,cADgC;IAEhCC,eAFgC;IAGhCC;EAHgC,CAII;EACpC,OAAO;IACLF,cAAc,QAA2C;MAAA,IAA1C;QAAEG,MAAF;QAAUC,UAAV;QAAsBC,MAAtB;QAA8B,GAAGC;MAAjC,CAA0C;MACvD,oBAAO,oBAAC,cAAD,eAAoBA,KAApB;QAA2B,MAAM,EAAEH,MAAnC;QAA2C,UAAU,EAAEC,UAAvD;QAAmE,MAAM,EAAEC,MAA3E;QAAmF,QAAQ;MAA3F,GAAP;IACD,CAHI;;IAIL,MAAME,iBAAN,QAA4C;MAAA,IAApB;QAAEC,GAAF;QAAOC;MAAP,CAAoB;;MAC1C,IAAI;QACF,MAAM;UAAEC;QAAF,IAAW,MAAMT,eAAe,CAACU,eAAhB,CAAgC;UACrDH,GADqD;UAErDI,MAAM,EAAE,MAF6C;UAGrDC,SAAS,EAAEJ,SAH0C;UAIrDK,SAAS,EAAEjB,IAAI,CAACW,GAAD;QAJsC,CAAhC,CAAvB;QAMA,OAAO;UAAEE;QAAF,CAAP;MACD,CARD,CAQE,MAAM;QACN,OAAO,IAAP;MACD;IACF,CAhBI;;IAiBL,MAAMK,aAAN,QAAuE;MAAA,IAAnD;QAAEC,GAAF;QAAOC,QAAP;QAAiBC,SAAjB;QAA4BC,eAAe,GAAG;MAA9C,CAAmD;MACrE,MAAMC,UAAU,GAAG,MAAMtB,QAAQ,CAACuB,YAAT,CAAsBL,GAAtB,CAAzB;MACA,MAAM;QAAEM,KAAF;QAASC;MAAT,IAAoB5B,gBAAgB,CAACyB,UAAD,EAAa;QAAEE,KAAK,EAAEL,QAAT;QAAmBM,MAAM,EAAEL;MAA3B,CAAb,CAA1C;;MACA,MAAMM,SAAS,GAAG,CAAC,MAAM;QACvB,OAAO;UAAE,OAAO,KAAT;UAAgB,QAAQ,MAAxB;UAAgC,OAAO;QAAvC,EAAgD5B,gBAAgB,CAACoB,GAAD,CAAhE,KAA0E,MAAjF;MACD,CAFiB,GAAlB;;MAIA,MAAM;QAAES,IAAI,EAAEC,WAAR;QAAqBV,GAAG,EAAEW;MAA1B,IAA4C,MAAMzB,kBAAkB,CAAC0B,OAAnB,CAA2BC,kBAA3B,CACtDb,GADsD,EAEtDM,KAFsD,EAGtDC,MAHsD,EAItDC,SAJsD,EAKtDM,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYb,eAAZ,CAAT,EAAuC,CAAvC,IAA4C,GALU,CAAxD;MAQA,OAAO;QAAEH,GAAG,EAAEW,aAAP;QAAsBF,IAAI,EAAEC;MAA5B,CAAP;IACD;;EAjCI,CAAP;AAmCD,CAxCD;;AA0CA,eAAe3B,wBAAf"}
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
import { NativeModules } from 'react-native';
|
|
2
|
+
import { NativeModules, UIManager } from 'react-native';
|
|
3
3
|
import { Logger } from '@sendbird/uikit-utils';
|
|
4
|
-
export function checkVersion(minVersion, currentVersion) {
|
|
5
|
-
const [minMajor, minMinor, minPatch] = minVersion.split('.');
|
|
6
|
-
const [currMajor, currMinor, currPatch] = currentVersion.split('.');
|
|
7
|
-
if (minMajor < currMajor) return true;
|
|
8
|
-
|
|
9
|
-
if (minMajor === currMajor) {
|
|
10
|
-
if (minMinor < currMinor) return true;
|
|
11
|
-
|
|
12
|
-
if (minMinor === currMinor) {
|
|
13
|
-
return minPatch <= currPatch;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
4
|
|
|
22
5
|
function checkLink(dmi, logLevel) {
|
|
23
|
-
const nativeModule =
|
|
6
|
+
const nativeModule = (() => {
|
|
7
|
+
if (dmi.isComponent) {
|
|
8
|
+
return UIManager.getViewManagerConfig(dmi.nativeModuleNamespace);
|
|
9
|
+
} else {
|
|
10
|
+
return NativeModules[dmi.nativeModuleNamespace];
|
|
11
|
+
}
|
|
12
|
+
})();
|
|
24
13
|
|
|
25
14
|
if (!nativeModule) {
|
|
26
15
|
const message = `[UIKit] Cannot use native module, you should install and link ${dmi.packageName} (${dmi.url})`;
|
|
@@ -30,44 +19,9 @@ function checkLink(dmi, logLevel) {
|
|
|
30
19
|
}
|
|
31
20
|
|
|
32
21
|
const SBUDynamicModuleRegistry = {
|
|
33
|
-
'react-native-file-access': {
|
|
34
|
-
minVersion: '2.4.3',
|
|
35
|
-
packageName: 'react-native-file-access',
|
|
36
|
-
moduleName: 'RNFileAccess',
|
|
37
|
-
url: 'https://github.com/alpha0010/react-native-file-access',
|
|
38
|
-
|
|
39
|
-
getPackage(logLevel) {
|
|
40
|
-
checkLink(this, logLevel);
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
return require('react-native-file-access');
|
|
44
|
-
} catch (e) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
'react-native-fast-image': {
|
|
51
|
-
minVersion: '8.5.11',
|
|
52
|
-
packageName: 'react-native-fast-image',
|
|
53
|
-
moduleName: 'FastImageView',
|
|
54
|
-
url: 'https://github.com/DylanVann/react-native-fast-image',
|
|
55
|
-
|
|
56
|
-
getPackage(logLevel) {
|
|
57
|
-
checkLink(this, logLevel);
|
|
58
|
-
|
|
59
|
-
try {
|
|
60
|
-
return require('react-native-fast-image');
|
|
61
|
-
} catch (e) {
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
},
|
|
67
22
|
'@react-native-community/netinfo': {
|
|
68
|
-
minVersion: '9.3.0',
|
|
69
23
|
packageName: '@react-native-community/netinfo',
|
|
70
|
-
|
|
24
|
+
nativeModuleNamespace: 'RNCNetInfo',
|
|
71
25
|
url: 'https://github.com/react-native-netinfo/react-native-netinfo',
|
|
72
26
|
|
|
73
27
|
getPackage(logLevel) {
|
|
@@ -84,7 +38,7 @@ const SBUDynamicModuleRegistry = {
|
|
|
84
38
|
};
|
|
85
39
|
const SBUDynamicModule = {
|
|
86
40
|
register(mdi) {
|
|
87
|
-
SBUDynamicModuleRegistry[mdi.
|
|
41
|
+
SBUDynamicModuleRegistry[mdi.nativeModuleNamespace] = mdi;
|
|
88
42
|
},
|
|
89
43
|
|
|
90
44
|
getInfo(name) {
|