@sendbird/uikit-react-native 2.4.2 → 2.5.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/ChannelMessageList/index.js +319 -0
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -0
- package/lib/commonjs/components/ChatFlatList.js +30 -50
- package/lib/commonjs/components/ChatFlatList.js.map +1 -1
- package/lib/commonjs/components/MessageSearchResultItem.js +132 -0
- package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -0
- package/lib/commonjs/components/ScrollToBottomButton.js +1 -1
- package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/constants.js +6 -2
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +2 -2
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +4 -2
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +4 -2
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +4 -2
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +84 -301
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +2 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +9 -2
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +18 -4
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +105 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js +40 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js +22 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js +26 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js +22 -0
- package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/index.js +62 -0
- package/lib/commonjs/domain/messageSearch/index.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js +36 -0
- package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/module/moduleContext.js +25 -0
- package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/messageSearch/types.js +6 -0
- package/lib/commonjs/domain/messageSearch/types.js.map +1 -0
- package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +38 -279
- package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/openChannel/module/moduleContext.js +9 -2
- package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/openChannel/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +107 -15
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -0
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/commonjs/fragments/createMessageSearchFragment.js +145 -0
- package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -0
- package/lib/commonjs/fragments/createOpenChannelFragment.js +40 -8
- package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
- package/lib/commonjs/hooks/useMentionSuggestion.js +17 -0
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/commonjs/index.js +60 -40
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +33 -20
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/utils/pubsub.js +21 -0
- package/lib/commonjs/utils/pubsub.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +311 -0
- package/lib/module/components/ChannelMessageList/index.js.map +1 -0
- package/lib/module/components/ChatFlatList.js +32 -52
- package/lib/module/components/ChatFlatList.js.map +1 -1
- package/lib/module/components/MessageSearchResultItem.js +124 -0
- package/lib/module/components/MessageSearchResultItem.js.map +1 -0
- package/lib/module/components/ScrollToBottomButton.js +1 -1
- package/lib/module/components/ScrollToBottomButton.js.map +1 -1
- package/lib/module/constants.js +3 -1
- package/lib/module/constants.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +2 -2
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +4 -2
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +4 -2
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +4 -2
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +88 -305
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +2 -0
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +9 -2
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +18 -4
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +96 -0
- package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -0
- package/lib/module/domain/messageSearch/component/MessageSearchList.js +32 -0
- package/lib/module/domain/messageSearch/component/MessageSearchList.js.map +1 -0
- package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js +14 -0
- package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -0
- package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js +18 -0
- package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -0
- package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js +14 -0
- package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -0
- package/lib/module/domain/messageSearch/index.js +8 -0
- package/lib/module/domain/messageSearch/index.js.map +1 -0
- package/lib/module/domain/messageSearch/module/createMessageSearchModule.js +28 -0
- package/lib/module/domain/messageSearch/module/createMessageSearchModule.js.map +1 -0
- package/lib/module/domain/messageSearch/module/moduleContext.js +14 -0
- package/lib/module/domain/messageSearch/module/moduleContext.js.map +1 -0
- package/lib/module/domain/messageSearch/types.js +2 -0
- package/lib/module/domain/messageSearch/types.js.map +1 -0
- package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +40 -281
- package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
- package/lib/module/domain/openChannel/module/moduleContext.js +9 -2
- package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/openChannel/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +109 -17
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -0
- package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
- package/lib/module/fragments/createMessageSearchFragment.js +135 -0
- package/lib/module/fragments/createMessageSearchFragment.js.map +1 -0
- package/lib/module/fragments/createOpenChannelFragment.js +41 -9
- package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
- package/lib/module/hooks/useMentionSuggestion.js +18 -1
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +34 -21
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/utils/pubsub.js +14 -0
- package/lib/module/utils/pubsub.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +55 -0
- package/lib/typescript/src/components/ChatFlatList.d.ts +7 -8
- package/lib/typescript/src/components/MessageRenderer/index.d.ts +4 -0
- package/lib/typescript/src/components/MessageSearchResultItem.d.ts +2 -0
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -0
- package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
- package/lib/typescript/src/constants.d.ts +3 -1
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +2 -1
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +3 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +3 -32
- package/lib/typescript/src/domain/groupChannel/types.d.ts +23 -35
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -0
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchHeader.d.ts +3 -0
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchList.d.ts +3 -0
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/messageSearch/index.d.ts +7 -0
- package/lib/typescript/src/domain/messageSearch/module/createMessageSearchModule.d.ts +3 -0
- package/lib/typescript/src/domain/messageSearch/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/messageSearch/types.d.ts +53 -0
- package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -37
- package/lib/typescript/src/domain/openChannel/types.d.ts +17 -36
- package/lib/typescript/src/fragments/createMessageSearchFragment.d.ts +3 -0
- package/lib/typescript/src/hooks/useMentionSuggestion.d.ts +3 -2
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +17 -3
- package/lib/typescript/src/utils/pubsub.d.ts +6 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +8 -7
- package/src/components/ChannelMessageList/index.tsx +392 -0
- package/src/components/ChatFlatList.tsx +33 -51
- package/src/components/MessageSearchResultItem.tsx +125 -0
- package/src/components/ScrollToBottomButton.tsx +3 -4
- package/src/constants.ts +3 -1
- package/src/containers/GroupChannelPreviewContainer.tsx +2 -2
- package/src/containers/SendbirdUIKitContainer.tsx +2 -0
- package/src/contexts/SendbirdChatCtx.tsx +7 -1
- package/src/domain/groupChannel/component/GroupChannelHeader.tsx +9 -3
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +73 -316
- package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +2 -1
- package/src/domain/groupChannel/module/moduleContext.tsx +10 -2
- package/src/domain/groupChannel/types.ts +49 -38
- package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +29 -13
- package/src/domain/groupChannelSettings/types.ts +2 -0
- package/src/domain/messageSearch/component/MessageSearchHeader.tsx +98 -0
- package/src/domain/messageSearch/component/MessageSearchList.tsx +26 -0
- package/src/domain/messageSearch/component/MessageSearchStatusEmpty.tsx +15 -0
- package/src/domain/messageSearch/component/MessageSearchStatusError.tsx +16 -0
- package/src/domain/messageSearch/component/MessageSearchStatusLoading.tsx +15 -0
- package/src/domain/messageSearch/index.ts +7 -0
- package/src/domain/messageSearch/module/createMessageSearchModule.tsx +21 -0
- package/src/domain/messageSearch/module/moduleContext.tsx +16 -0
- package/src/domain/messageSearch/types.ts +55 -0
- package/src/domain/openChannel/component/OpenChannelMessageList.tsx +35 -303
- package/src/domain/openChannel/module/moduleContext.tsx +8 -2
- package/src/domain/openChannel/types.ts +40 -38
- package/src/fragments/createGroupChannelFragment.tsx +114 -17
- package/src/fragments/createGroupChannelSettingsFragment.tsx +2 -0
- package/src/fragments/createMessageSearchFragment.tsx +159 -0
- package/src/fragments/createOpenChannelFragment.tsx +48 -12
- package/src/hooks/useMentionSuggestion.ts +23 -3
- package/src/index.ts +3 -0
- package/src/localization/StringSet.type.ts +20 -2
- package/src/localization/createBaseStringSet.ts +22 -2
- package/src/utils/pubsub.ts +20 -0
- package/src/version.ts +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Avatar","Box","Icon","PressBox","Text","createStyleSheet","useUIKitTheme","getFileExtension","getFileType","useIIFE","useLocalization","iconMapper","audio","image","video","file","MessageSearchResultItem","_ref","onPress","message","colors","select","palette","STRINGS","fileIcon","isFileMessage","undefined","type","name","createElement","style","styles","container","size","avatarSize","width","uri","getSenderProfile","containerStyle","avatar","flex","paddingRight","titleLine","marginRight","justifyContent","subtitle2","color","onBackground01","numberOfLines","MESSAGE_SEARCH","SEARCH_RESULT_ITEM_TITLE","paddingTop","caption2","onBackground02","SEARCH_RESULT_ITEM_TITLE_CAPTION","alignItems","flexDirection","icon","bodyIcon","backgroundColor","light","background100","dark","background500","body3","ellipsizeMode","bodyText","onBackground03","SEARCH_RESULT_ITEM_BODY","separator","onBackground04","isUserMessage","sender","profileUrl","height","marginHorizontal","marginTop","marginBottom","borderRadius","lineHeight","position","left","right","bottom"],"sources":["MessageSearchResultItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n Avatar,\n Box,\n Icon,\n PressBox,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport { getFileExtension, getFileType, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { MessageSearchProps } from '../domain/messageSearch/types';\nimport { useLocalization } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\nexport const MessageSearchResultItem: MessageSearchProps['List']['renderSearchResultItem'] = ({ onPress, message }) => {\n const { colors, select, palette } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n\n const fileIcon = useIIFE(() => {\n if (!message?.isFileMessage()) return undefined;\n return iconMapper[getFileType(message.type || getFileExtension(message.name))];\n });\n\n return (\n <PressBox onPress={onPress}>\n <Box style={styles.container}>\n <Avatar size={styles.avatarSize.width} uri={getSenderProfile(message)} containerStyle={styles.avatar} />\n\n <Box flex={1} paddingRight={16}>\n <Box style={styles.titleLine}>\n <Box flex={1} marginRight={4} justifyContent={'center'}>\n <Text subtitle2 color={colors.onBackground01} numberOfLines={1}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE(message)}\n </Text>\n </Box>\n <Box paddingTop={2}>\n <Text caption2 color={colors.onBackground02}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE_CAPTION(message)}\n </Text>\n </Box>\n </Box>\n\n <Box flex={1}>\n <Box alignItems={'center'} flexDirection={'row'}>\n {fileIcon && (\n <Icon\n size={18}\n icon={fileIcon}\n color={colors.onBackground02}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: select({ light: palette.background100, dark: palette.background500 }) },\n ]}\n />\n )}\n\n <Text\n body3\n numberOfLines={fileIcon ? 1 : 2}\n ellipsizeMode={fileIcon ? 'middle' : 'tail'}\n style={styles.bodyText}\n color={colors.onBackground03}\n >\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_BODY(message)}\n </Text>\n </Box>\n </Box>\n\n <Box style={styles.separator} backgroundColor={colors.onBackground04} />\n </Box>\n </Box>\n </PressBox>\n );\n};\n\nfunction getSenderProfile(message: SendbirdBaseMessage) {\n if (message.isUserMessage() || message.isFileMessage()) {\n return message.sender.profileUrl;\n } else {\n return undefined;\n }\n}\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n avatar: {\n marginHorizontal: 16,\n },\n avatarSize: {\n width: 56,\n },\n titleLine: {\n flexDirection: 'row',\n marginTop: 10,\n marginBottom: 4,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n bodyText: {\n flex: 1,\n lineHeight: 16,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SACEC,MAAM,EACNC,GAAG,EACHC,IAAI,EACJC,QAAQ,EACRC,IAAI,EACJC,gBAAgB,EAChBC,aAAa,QACR,yCAAyC;AAEhD,SAASC,gBAAgB,EAAEC,WAAW,EAAEC,OAAO,QAAQ,uBAAuB;AAG9E,SAASC,eAAe,QAAQ,qBAAqB;AAErD,MAAMC,UAAU,GAAG;EAAEC,KAAK,EAAE,YAAY;EAAEC,KAAK,EAAE,OAAO;EAAEC,KAAK,EAAE,MAAM;EAAEC,IAAI,EAAE;AAAgB,CAAU;AAEzG,OAAO,MAAMC,uBAA6E,GAAGC,IAAA,IAA0B;EAAA,IAAzB;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAAF,IAAA;EAChH,MAAM;IAAEG,MAAM;IAAEC,MAAM;IAAEC;EAAQ,CAAC,GAAGhB,aAAa,EAAE;EACnD,MAAM;IAAEiB;EAAQ,CAAC,GAAGb,eAAe,EAAE;EAErC,MAAMc,QAAQ,GAAGf,OAAO,CAAC,MAAM;IAC7B,IAAI,EAACU,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEM,aAAa,EAAE,GAAE,OAAOC,SAAS;IAC/C,OAAOf,UAAU,CAACH,WAAW,CAACW,OAAO,CAACQ,IAAI,IAAIpB,gBAAgB,CAACY,OAAO,CAACS,IAAI,CAAC,CAAC,CAAC;EAChF,CAAC,CAAC;EAEF,oBACE7B,KAAA,CAAA8B,aAAA,CAAC1B,QAAQ;IAACe,OAAO,EAAEA;EAAQ,gBACzBnB,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAAC6B,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAC3BjC,KAAA,CAAA8B,aAAA,CAAC7B,MAAM;IAACiC,IAAI,EAAEF,MAAM,CAACG,UAAU,CAACC,KAAM;IAACC,GAAG,EAAEC,gBAAgB,CAAClB,OAAO,CAAE;IAACmB,cAAc,EAAEP,MAAM,CAACQ;EAAO,EAAG,eAExGxC,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAACuC,IAAI,EAAE,CAAE;IAACC,YAAY,EAAE;EAAG,gBAC7B1C,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAAC6B,KAAK,EAAEC,MAAM,CAACW;EAAU,gBAC3B3C,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAACuC,IAAI,EAAE,CAAE;IAACG,WAAW,EAAE,CAAE;IAACC,cAAc,EAAE;EAAS,gBACrD7C,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAACyC,SAAS;IAACC,KAAK,EAAE1B,MAAM,CAAC2B,cAAe;IAACC,aAAa,EAAE;EAAE,GAC5DzB,OAAO,CAAC0B,cAAc,CAACC,wBAAwB,CAAC/B,OAAO,CAAC,CACpD,CACH,eACNpB,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAACkD,UAAU,EAAE;EAAE,gBACjBpD,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAACgD,QAAQ;IAACN,KAAK,EAAE1B,MAAM,CAACiC;EAAe,GACzC9B,OAAO,CAAC0B,cAAc,CAACK,gCAAgC,CAACnC,OAAO,CAAC,CAC5D,CACH,CACF,eAENpB,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAACuC,IAAI,EAAE;EAAE,gBACXzC,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAACsD,UAAU,EAAE,QAAS;IAACC,aAAa,EAAE;EAAM,GAC7ChC,QAAQ,iBACPzB,KAAA,CAAA8B,aAAA,CAAC3B,IAAI;IACH+B,IAAI,EAAE,EAAG;IACTwB,IAAI,EAAEjC,QAAS;IACfsB,KAAK,EAAE1B,MAAM,CAACiC,cAAe;IAC7Bf,cAAc,EAAE,CACdP,MAAM,CAAC2B,QAAQ,EACf;MAAEC,eAAe,EAAEtC,MAAM,CAAC;QAAEuC,KAAK,EAAEtC,OAAO,CAACuC,aAAa;QAAEC,IAAI,EAAExC,OAAO,CAACyC;MAAc,CAAC;IAAE,CAAC;EAC1F,EAEL,eAEDhE,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IACH4D,KAAK;IACLhB,aAAa,EAAExB,QAAQ,GAAG,CAAC,GAAG,CAAE;IAChCyC,aAAa,EAAEzC,QAAQ,GAAG,QAAQ,GAAG,MAAO;IAC5CM,KAAK,EAAEC,MAAM,CAACmC,QAAS;IACvBpB,KAAK,EAAE1B,MAAM,CAAC+C;EAAe,GAE5B5C,OAAO,CAAC0B,cAAc,CAACmB,uBAAuB,CAACjD,OAAO,CAAC,CACnD,CACH,CACF,eAENpB,KAAA,CAAA8B,aAAA,CAAC5B,GAAG;IAAC6B,KAAK,EAAEC,MAAM,CAACsC,SAAU;IAACV,eAAe,EAAEvC,MAAM,CAACkD;EAAe,EAAG,CACpE,CACF,CACG;AAEf,CAAC;AAED,SAASjC,gBAAgBA,CAAClB,OAA4B,EAAE;EACtD,IAAIA,OAAO,CAACoD,aAAa,EAAE,IAAIpD,OAAO,CAACM,aAAa,EAAE,EAAE;IACtD,OAAON,OAAO,CAACqD,MAAM,CAACC,UAAU;EAClC,CAAC,MAAM;IACL,OAAO/C,SAAS;EAClB;AACF;AAEA,MAAMK,MAAM,GAAG1B,gBAAgB,CAAC;EAC9B2B,SAAS,EAAE;IACT0C,MAAM,EAAE,EAAE;IACVvC,KAAK,EAAE,MAAM;IACbqB,aAAa,EAAE,KAAK;IACpBD,UAAU,EAAE,QAAQ;IACpBX,cAAc,EAAE;EAClB,CAAC;EACDL,MAAM,EAAE;IACNoC,gBAAgB,EAAE;EACpB,CAAC;EACDzC,UAAU,EAAE;IACVC,KAAK,EAAE;EACT,CAAC;EACDO,SAAS,EAAE;IACTc,aAAa,EAAE,KAAK;IACpBoB,SAAS,EAAE,EAAE;IACbC,YAAY,EAAE;EAChB,CAAC;EACDnB,QAAQ,EAAE;IACRoB,YAAY,EAAE,CAAC;IACf3C,KAAK,EAAE,EAAE;IACTuC,MAAM,EAAE,EAAE;IACV/B,WAAW,EAAE;EACf,CAAC;EACDuB,QAAQ,EAAE;IACR1B,IAAI,EAAE,CAAC;IACPuC,UAAU,EAAE;EACd,CAAC;EACDV,SAAS,EAAE;IACTW,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC,EAAE;IACVC,MAAM,EAAE,CAAC;IACTT,MAAM,EAAE;EACV;AACF,CAAC,CAAC"}
|
|
@@ -10,12 +10,12 @@ const ScrollToBottomButton = _ref => {
|
|
|
10
10
|
palette,
|
|
11
11
|
select
|
|
12
12
|
} = useUIKitTheme();
|
|
13
|
+
if (!visible) return null;
|
|
13
14
|
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
14
15
|
onPress: onPress,
|
|
15
16
|
activeOpacity: 0.8,
|
|
16
17
|
disabled: !visible,
|
|
17
18
|
style: [styles.container, {
|
|
18
|
-
opacity: visible ? 1 : 0,
|
|
19
19
|
backgroundColor: select({
|
|
20
20
|
dark: palette.background400,
|
|
21
21
|
light: palette.background50
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","TouchableOpacity","Icon","createStyleSheet","useUIKitTheme","ScrollToBottomButton","_ref","visible","onPress","palette","select","createElement","activeOpacity","disabled","style","styles","container","
|
|
1
|
+
{"version":3,"names":["React","Platform","TouchableOpacity","Icon","createStyleSheet","useUIKitTheme","ScrollToBottomButton","_ref","visible","onPress","palette","select","createElement","activeOpacity","disabled","style","styles","container","backgroundColor","dark","background400","light","background50","icon","size","padding","borderRadius","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","width","height","shadowOpacity","memo"],"sources":["ScrollToBottomButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TouchableOpacity } from 'react-native';\n\nimport { Icon, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\ntype Props = {\n visible: boolean;\n onPress: () => void;\n};\nconst ScrollToBottomButton = ({ visible, onPress }: Props) => {\n const { palette, select } = useUIKitTheme();\n if (!visible) return null;\n\n return (\n <TouchableOpacity\n onPress={onPress}\n activeOpacity={0.8}\n disabled={!visible}\n style={[\n styles.container,\n { backgroundColor: select({ dark: palette.background400, light: palette.background50 }) },\n ]}\n >\n <Icon icon={'chevron-down'} size={22} />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n padding: 8,\n borderRadius: 24,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 4,\n shadowOffset: { width: 0, height: 4 },\n shadowOpacity: 0.3,\n },\n }),\n },\n});\n\nexport default React.memo(ScrollToBottomButton);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,EAAEC,gBAAgB,QAAQ,cAAc;AAEzD,SAASC,IAAI,EAAEC,gBAAgB,EAAEC,aAAa,QAAQ,yCAAyC;AAM/F,MAAMC,oBAAoB,GAAGC,IAAA,IAAiC;EAAA,IAAhC;IAAEC,OAAO;IAAEC;EAAe,CAAC,GAAAF,IAAA;EACvD,MAAM;IAAEG,OAAO;IAAEC;EAAO,CAAC,GAAGN,aAAa,EAAE;EAC3C,IAAI,CAACG,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACER,KAAA,CAAAY,aAAA,CAACV,gBAAgB;IACfO,OAAO,EAAEA,OAAQ;IACjBI,aAAa,EAAE,GAAI;IACnBC,QAAQ,EAAE,CAACN,OAAQ;IACnBO,KAAK,EAAE,CACLC,MAAM,CAACC,SAAS,EAChB;MAAEC,eAAe,EAAEP,MAAM,CAAC;QAAEQ,IAAI,EAAET,OAAO,CAACU,aAAa;QAAEC,KAAK,EAAEX,OAAO,CAACY;MAAa,CAAC;IAAE,CAAC;EACzF,gBAEFtB,KAAA,CAAAY,aAAA,CAACT,IAAI;IAACoB,IAAI,EAAE,cAAe;IAACC,IAAI,EAAE;EAAG,EAAG,CACvB;AAEvB,CAAC;AAED,MAAMR,MAAM,GAAGZ,gBAAgB,CAAC;EAC9Ba,SAAS,EAAE;IACTQ,OAAO,EAAE,CAAC;IACVC,YAAY,EAAE,EAAE;IAChB,GAAGzB,QAAQ,CAACU,MAAM,CAAC;MACjBgB,OAAO,EAAE;QACPC,SAAS,EAAE;MACb,CAAC;MACDC,GAAG,EAAE;QACHC,WAAW,EAAE,OAAO;QACpBC,YAAY,EAAE,CAAC;QACfC,YAAY,EAAE;UAAEC,KAAK,EAAE,CAAC;UAAEC,MAAM,EAAE;QAAE,CAAC;QACrCC,aAAa,EAAE;MACjB;IACF,CAAC;EACH;AACF,CAAC,CAAC;AAEF,4BAAenC,KAAK,CAACoC,IAAI,CAAC9B,oBAAoB,CAAC"}
|
package/lib/module/constants.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export const DEFAULT_LONG_PRESS_DELAY = 350;
|
|
2
|
+
export const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;
|
|
3
|
+
export const MESSAGE_FOCUS_ANIMATION_DELAY = 250;
|
|
2
4
|
export const DEPRECATION_WARNING = {
|
|
3
|
-
|
|
5
|
+
CHANNEL: {
|
|
4
6
|
ON_PRESS_IMAGE_MESSAGE: '`onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead'
|
|
5
7
|
}
|
|
6
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_LONG_PRESS_DELAY","DEPRECATION_WARNING","
|
|
1
|
+
{"version":3,"names":["DEFAULT_LONG_PRESS_DELAY","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","MESSAGE_FOCUS_ANIMATION_DELAY","DEPRECATION_WARNING","CHANNEL","ON_PRESS_IMAGE_MESSAGE","UNKNOWN_USER_ID"],"sources":["constants.ts"],"sourcesContent":["export const DEFAULT_LONG_PRESS_DELAY = 350;\nexport const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;\nexport const MESSAGE_FOCUS_ANIMATION_DELAY = 250;\nexport const DEPRECATION_WARNING = {\n CHANNEL: {\n ON_PRESS_IMAGE_MESSAGE: '`onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead',\n },\n} as const;\n\nexport const UNKNOWN_USER_ID = '##__USER_ID_IS_NOT_PROVIDED__##';\n"],"mappings":"AAAA,OAAO,MAAMA,wBAAwB,GAAG,GAAG;AAC3C,OAAO,MAAMC,gCAAgC,GAAG,GAAG;AACnD,OAAO,MAAMC,6BAA6B,GAAG,GAAG;AAChD,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,OAAO,EAAE;IACPC,sBAAsB,EAAE;EAC1B;AACF,CAAU;AAEV,OAAO,MAAMC,eAAe,GAAG,iCAAiC"}
|
|
@@ -44,7 +44,7 @@ const GroupChannelPreviewContainer = _ref => {
|
|
|
44
44
|
const bodyText = useIIFE(() => {
|
|
45
45
|
if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);
|
|
46
46
|
});
|
|
47
|
-
const
|
|
47
|
+
const fileIcon = useIIFE(() => {
|
|
48
48
|
var _channel$lastMessage;
|
|
49
49
|
if (!((_channel$lastMessage = channel.lastMessage) !== null && _channel$lastMessage !== void 0 && _channel$lastMessage.isFileMessage())) return undefined;
|
|
50
50
|
if (typingUsers.length > 0) return undefined;
|
|
@@ -108,7 +108,7 @@ const GroupChannelPreviewContainer = _ref => {
|
|
|
108
108
|
titleCaptionLeft: titleCaptionIcon,
|
|
109
109
|
titleCaption: STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel),
|
|
110
110
|
body: bodyText,
|
|
111
|
-
bodyIcon:
|
|
111
|
+
bodyIcon: fileIcon,
|
|
112
112
|
badgeCount: channel.unreadMessageCount,
|
|
113
113
|
mentioned: channel.unreadMentionCount > 0,
|
|
114
114
|
mentionTrigger: mentionManager.config.trigger,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Pressable","useChannelHandler","useMessageOutgoingStatus","GroupChannelPreview","Icon","LoadingSpinner","createStyleSheet","useUIKitTheme","getFileExtension","getFileType","isDifferentChannel","isMyMessage","useIIFE","useUniqHandlerId","ChannelCover","DEFAULT_LONG_PRESS_DELAY","useLocalization","useSendbirdChat","iconMapper","audio","image","video","file","GroupChannelPreviewContainer","_ref","onPress","onLongPress","channel","currentUser","sdk","features","mentionManager","STRINGS","colors","typingUsers","setTypingUsers","channelListTypingIndicatorEnabled","handlerId","onTypingStatusUpdated","eventChannel","getTypingUsers","outgoingStatus","lastMessage","bodyText","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","bodyIcon","_channel$lastMessage","isFileMessage","undefined","type","name","titleCaptionIcon","channelListMessageReceiptStatusEnabled","userId","createElement","size","style","styles","icon","color","error","onBackground03","containerStyle","secondary","delayLongPress","customCover","coverUrl","title","CHANNEL_PREVIEW_TITLE","titleCaptionLeft","titleCaption","CHANNEL_PREVIEW_TITLE_CAPTION","body","badgeCount","unreadMessageCount","mentioned","unreadMentionCount","mentionTrigger","config","trigger","memberCount","frozen","isFrozen","broadcast","isBroadcast","notificationOff","myPushTriggerOption","marginRight","broadcastCover","padding","borderRadius"],"sources":["GroupChannelPreviewContainer.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Pressable } from 'react-native';\n\nimport { useChannelHandler, useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';\nimport {\n GroupChannelPreview,\n Icon,\n LoadingSpinner,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdGroupChannel,\n SendbirdUser,\n getFileExtension,\n getFileType,\n isDifferentChannel,\n isMyMessage,\n useIIFE,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../components/ChannelCover';\nimport { DEFAULT_LONG_PRESS_DELAY } from '../constants';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, features, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n if (features.channelListTypingIndicatorEnabled) {\n const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');\n useChannelHandler(sdk, handlerId, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n }\n\n const outgoingStatus = useMessageOutgoingStatus(sdk, channel, channel.lastMessage);\n\n const bodyText = useIIFE(() => {\n if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';\n else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);\n });\n\n const bodyIcon = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n return iconMapper[getFileType(channel.lastMessage.type || getFileExtension(channel.lastMessage.name))];\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage) return undefined;\n if (!features.channelListMessageReceiptStatusEnabled) return undefined;\n if (!isMyMessage(channel.lastMessage, currentUser?.userId)) return undefined;\n\n if (outgoingStatus === 'PENDING') {\n return <LoadingSpinner size={16} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'FAILED') {\n return <Icon icon={'error'} size={16} color={colors.error} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'UNDELIVERED') {\n return <Icon icon={'done'} size={16} color={colors.onBackground03} containerStyle={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'DELIVERED' || outgoingStatus === 'UNREAD') {\n return <Icon icon={'done-all'} size={16} color={colors.onBackground03} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'READ') {\n return <Icon icon={'done-all'} size={16} color={colors.secondary} style={styles.titleCaptionIcon} />;\n }\n\n return undefined;\n });\n\n return (\n <Pressable delayLongPress={DEFAULT_LONG_PRESS_DELAY} onPress={onPress} onLongPress={onLongPress}>\n <GroupChannelPreview\n customCover={<ChannelCover channel={channel} size={56} />}\n coverUrl={channel.coverUrl}\n title={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(currentUser?.userId ?? '', channel)}\n titleCaptionLeft={titleCaptionIcon}\n titleCaption={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel)}\n body={bodyText}\n bodyIcon={bodyIcon}\n badgeCount={channel.unreadMessageCount}\n mentioned={channel.unreadMentionCount > 0}\n mentionTrigger={mentionManager.config.trigger}\n memberCount={channel.memberCount > 2 ? channel.memberCount : undefined}\n frozen={channel.isFrozen}\n broadcast={channel.isBroadcast}\n notificationOff={channel.myPushTriggerOption === 'off'}\n />\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n titleCaptionIcon: {\n marginRight: 4,\n },\n broadcastCover: {\n padding: 12,\n borderRadius: 28,\n },\n});\n\nexport default GroupChannelPreviewContainer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useState","Pressable","useChannelHandler","useMessageOutgoingStatus","GroupChannelPreview","Icon","LoadingSpinner","createStyleSheet","useUIKitTheme","getFileExtension","getFileType","isDifferentChannel","isMyMessage","useIIFE","useUniqHandlerId","ChannelCover","DEFAULT_LONG_PRESS_DELAY","useLocalization","useSendbirdChat","iconMapper","audio","image","video","file","GroupChannelPreviewContainer","_ref","onPress","onLongPress","channel","currentUser","sdk","features","mentionManager","STRINGS","colors","typingUsers","setTypingUsers","channelListTypingIndicatorEnabled","handlerId","onTypingStatusUpdated","eventChannel","getTypingUsers","outgoingStatus","lastMessage","bodyText","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","fileIcon","_channel$lastMessage","isFileMessage","undefined","type","name","titleCaptionIcon","channelListMessageReceiptStatusEnabled","userId","createElement","size","style","styles","icon","color","error","onBackground03","containerStyle","secondary","delayLongPress","customCover","coverUrl","title","CHANNEL_PREVIEW_TITLE","titleCaptionLeft","titleCaption","CHANNEL_PREVIEW_TITLE_CAPTION","body","bodyIcon","badgeCount","unreadMessageCount","mentioned","unreadMentionCount","mentionTrigger","config","trigger","memberCount","frozen","isFrozen","broadcast","isBroadcast","notificationOff","myPushTriggerOption","marginRight","broadcastCover","padding","borderRadius"],"sources":["GroupChannelPreviewContainer.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Pressable } from 'react-native';\n\nimport { useChannelHandler, useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';\nimport {\n GroupChannelPreview,\n Icon,\n LoadingSpinner,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdGroupChannel,\n SendbirdUser,\n getFileExtension,\n getFileType,\n isDifferentChannel,\n isMyMessage,\n useIIFE,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../components/ChannelCover';\nimport { DEFAULT_LONG_PRESS_DELAY } from '../constants';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, features, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n if (features.channelListTypingIndicatorEnabled) {\n const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');\n useChannelHandler(sdk, handlerId, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n }\n\n const outgoingStatus = useMessageOutgoingStatus(sdk, channel, channel.lastMessage);\n\n const bodyText = useIIFE(() => {\n if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';\n else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);\n });\n\n const fileIcon = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n return iconMapper[getFileType(channel.lastMessage.type || getFileExtension(channel.lastMessage.name))];\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage) return undefined;\n if (!features.channelListMessageReceiptStatusEnabled) return undefined;\n if (!isMyMessage(channel.lastMessage, currentUser?.userId)) return undefined;\n\n if (outgoingStatus === 'PENDING') {\n return <LoadingSpinner size={16} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'FAILED') {\n return <Icon icon={'error'} size={16} color={colors.error} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'UNDELIVERED') {\n return <Icon icon={'done'} size={16} color={colors.onBackground03} containerStyle={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'DELIVERED' || outgoingStatus === 'UNREAD') {\n return <Icon icon={'done-all'} size={16} color={colors.onBackground03} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'READ') {\n return <Icon icon={'done-all'} size={16} color={colors.secondary} style={styles.titleCaptionIcon} />;\n }\n\n return undefined;\n });\n\n return (\n <Pressable delayLongPress={DEFAULT_LONG_PRESS_DELAY} onPress={onPress} onLongPress={onLongPress}>\n <GroupChannelPreview\n customCover={<ChannelCover channel={channel} size={56} />}\n coverUrl={channel.coverUrl}\n title={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(currentUser?.userId ?? '', channel)}\n titleCaptionLeft={titleCaptionIcon}\n titleCaption={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel)}\n body={bodyText}\n bodyIcon={fileIcon}\n badgeCount={channel.unreadMessageCount}\n mentioned={channel.unreadMentionCount > 0}\n mentionTrigger={mentionManager.config.trigger}\n memberCount={channel.memberCount > 2 ? channel.memberCount : undefined}\n frozen={channel.isFrozen}\n broadcast={channel.isBroadcast}\n notificationOff={channel.myPushTriggerOption === 'off'}\n />\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n titleCaptionIcon: {\n marginRight: 4,\n },\n broadcastCover: {\n padding: 12,\n borderRadius: 28,\n },\n});\n\nexport default GroupChannelPreviewContainer;\n"],"mappings":"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"}
|
|
@@ -30,7 +30,8 @@ export const SendbirdUIKit = Object.freeze({
|
|
|
30
30
|
CHANNEL_LIST_MESSAGE_RECEIPT_STATUS: false,
|
|
31
31
|
USE_USER_ID_FOR_NICKNAME: false,
|
|
32
32
|
USER_MENTION: false,
|
|
33
|
-
IMAGE_COMPRESSION: true
|
|
33
|
+
IMAGE_COMPRESSION: true,
|
|
34
|
+
MESSAGE_SEARCH: false
|
|
34
35
|
}
|
|
35
36
|
});
|
|
36
37
|
const SendbirdUIKitContainer = _ref => {
|
|
@@ -107,7 +108,8 @@ const SendbirdUIKitContainer = _ref => {
|
|
|
107
108
|
enableChannelListMessageReceiptStatus: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableChannelListMessageReceiptStatus) ?? SendbirdUIKit.DEFAULT.CHANNEL_LIST_MESSAGE_RECEIPT_STATUS,
|
|
108
109
|
enableUseUserIdForNickname: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableUseUserIdForNickname) ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME,
|
|
109
110
|
enableUserMention: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableUserMention) ?? SendbirdUIKit.DEFAULT.USER_MENTION,
|
|
110
|
-
enableImageCompression: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableImageCompression) ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION
|
|
111
|
+
enableImageCompression: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableImageCompression) ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION,
|
|
112
|
+
enableMessageSearch: (chatOptions === null || chatOptions === void 0 ? void 0 : chatOptions.enableMessageSearch) ?? SendbirdUIKit.DEFAULT.MESSAGE_SEARCH
|
|
111
113
|
}, /*#__PURE__*/React.createElement(LocalizationProvider, {
|
|
112
114
|
stringSet: defaultStringSet
|
|
113
115
|
}, /*#__PURE__*/React.createElement(PlatformServiceProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","Sendbird","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","PLATFORM","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","CHANNEL_LIST_TYPING_INDICATOR","CHANNEL_LIST_MESSAGE_RECEIPT_STATUS","USE_USER_ID_FOR_NICKNAME","USER_MENTION","IMAGE_COMPRESSION","SendbirdUIKitContainer","_ref","children","appId","chatOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","userMention","imageCompression","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","localCacheStorage","undefined","sdkInstance","setSdkInstance","sendbird","initializeSendbird","onInitialized","current","chatSDK","emojiManager","mentionManager","config","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","enableUserMention","imageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","forEach","u","renderChildren","disabled","createElement","enableAutoPushTokenRegistration","enableChannelListTypingIndicator","enableChannelListMessageReceiptStatus","enableUseUserIdForNickname","enableImageCompression","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","onCreateChannel","onBeforeCreateChannel","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","init","modules","localCacheEnabled","Boolean","useAsyncStorageStore","newInstance","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","listener","callback","callbackType","callCount","unsubscribe","state","online","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport Sendbird from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport type {\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport { NOOP, useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport type { UIKitFeaturesInSendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\nimport type { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\n\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n CHANNEL_LIST_TYPING_INDICATOR: false,\n CHANNEL_LIST_MESSAGE_RECEIPT_STATUS: false,\n USE_USER_ID_FOR_NICKNAME: false,\n USER_MENTION: false,\n IMAGE_COMPRESSION: true,\n },\n});\n\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n };\n chatOptions?: {\n localCacheStorage?: LocalCacheStorage;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n } & Partial<UIKitFeaturesInSendbirdChatContext>;\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n userMention,\n imageCompression,\n}: SendbirdUIKitContainerProps) => {\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n const internalStorage = useMemo(\n () => (chatOptions?.localCacheStorage ? new InternalLocalCacheStorage(chatOptions.localCacheStorage) : undefined),\n [chatOptions?.localCacheStorage],\n );\n\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, internalStorage, chatOptions?.onInitialized);\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n\n const mentionManager = useMemo(() => {\n const config = new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n return new MentionManager(config, chatOptions?.enableUserMention ?? SendbirdUIKit.DEFAULT.USER_MENTION);\n }, [\n chatOptions?.enableUserMention,\n userMention?.mentionLimit,\n userMention?.suggestionLimit,\n userMention?.debounceMills,\n ]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, internalStorage, chatOptions?.onInitialized);\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n if (!isFirstMount) {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n }\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n return (\n <SafeAreaProvider>\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n enableAutoPushTokenRegistration={\n chatOptions?.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableChannelListTypingIndicator={\n chatOptions?.enableChannelListTypingIndicator ?? SendbirdUIKit.DEFAULT.CHANNEL_LIST_TYPING_INDICATOR\n }\n enableChannelListMessageReceiptStatus={\n chatOptions?.enableChannelListMessageReceiptStatus ??\n SendbirdUIKit.DEFAULT.CHANNEL_LIST_MESSAGE_RECEIPT_STATUS\n }\n enableUseUserIdForNickname={\n chatOptions?.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableUserMention={chatOptions?.enableUserMention ?? SendbirdUIKit.DEFAULT.USER_MENTION}\n enableImageCompression={chatOptions?.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider\n onCreateChannel={userProfile?.onCreateChannel}\n onBeforeCreateChannel={userProfile?.onBeforeCreateChannel}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ReactionProvider>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </SafeAreaProvider>\n );\n};\n\nconst initializeSendbird = (\n appId: string,\n internalStorage?: InternalLocalCacheStorage,\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK,\n) => {\n const unsubscribes: Array<() => void> = [];\n let chatSDK: SendbirdChatSDK;\n\n chatSDK = Sendbird.init({\n appId,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: Boolean(internalStorage),\n useAsyncStorageStore: internalStorage as never,\n newInstance: true,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n if (SendbirdUIKit.VERSION) {\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","Sendbird","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","PLATFORM","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","CHANNEL_LIST_TYPING_INDICATOR","CHANNEL_LIST_MESSAGE_RECEIPT_STATUS","USE_USER_ID_FOR_NICKNAME","USER_MENTION","IMAGE_COMPRESSION","MESSAGE_SEARCH","SendbirdUIKitContainer","_ref","children","appId","chatOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","userMention","imageCompression","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","localCacheStorage","undefined","sdkInstance","setSdkInstance","sendbird","initializeSendbird","onInitialized","current","chatSDK","emojiManager","mentionManager","config","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","enableUserMention","imageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","forEach","u","renderChildren","disabled","createElement","enableAutoPushTokenRegistration","enableChannelListTypingIndicator","enableChannelListMessageReceiptStatus","enableUseUserIdForNickname","enableImageCompression","enableMessageSearch","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","onCreateChannel","onBeforeCreateChannel","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","init","modules","localCacheEnabled","Boolean","useAsyncStorageStore","newInstance","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","listener","callback","callbackType","callCount","unsubscribe","state","online","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport Sendbird from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport type {\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\nimport { NOOP, useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport type { UIKitFeaturesInSendbirdChatContext } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\nimport type { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\n\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n CHANNEL_LIST_TYPING_INDICATOR: false,\n CHANNEL_LIST_MESSAGE_RECEIPT_STATUS: false,\n USE_USER_ID_FOR_NICKNAME: false,\n USER_MENTION: false,\n IMAGE_COMPRESSION: true,\n MESSAGE_SEARCH: false,\n },\n});\n\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n };\n chatOptions?: {\n localCacheStorage?: LocalCacheStorage;\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n } & Partial<UIKitFeaturesInSendbirdChatContext>;\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => JSX.Element;\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = ({\n children,\n appId,\n chatOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n userMention,\n imageCompression,\n}: SendbirdUIKitContainerProps) => {\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n const internalStorage = useMemo(\n () => (chatOptions?.localCacheStorage ? new InternalLocalCacheStorage(chatOptions.localCacheStorage) : undefined),\n [chatOptions?.localCacheStorage],\n );\n\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, internalStorage, chatOptions?.onInitialized);\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n\n const mentionManager = useMemo(() => {\n const config = new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n return new MentionManager(config, chatOptions?.enableUserMention ?? SendbirdUIKit.DEFAULT.USER_MENTION);\n }, [\n chatOptions?.enableUserMention,\n userMention?.mentionLimit,\n userMention?.suggestionLimit,\n userMention?.debounceMills,\n ]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, internalStorage, chatOptions?.onInitialized);\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n if (!isFirstMount) {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n }\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n return (\n <SafeAreaProvider>\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n enableAutoPushTokenRegistration={\n chatOptions?.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableChannelListTypingIndicator={\n chatOptions?.enableChannelListTypingIndicator ?? SendbirdUIKit.DEFAULT.CHANNEL_LIST_TYPING_INDICATOR\n }\n enableChannelListMessageReceiptStatus={\n chatOptions?.enableChannelListMessageReceiptStatus ??\n SendbirdUIKit.DEFAULT.CHANNEL_LIST_MESSAGE_RECEIPT_STATUS\n }\n enableUseUserIdForNickname={\n chatOptions?.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableUserMention={chatOptions?.enableUserMention ?? SendbirdUIKit.DEFAULT.USER_MENTION}\n enableImageCompression={chatOptions?.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n enableMessageSearch={chatOptions?.enableMessageSearch ?? SendbirdUIKit.DEFAULT.MESSAGE_SEARCH}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider\n onCreateChannel={userProfile?.onCreateChannel}\n onBeforeCreateChannel={userProfile?.onBeforeCreateChannel}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ReactionProvider>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </SafeAreaProvider>\n );\n};\n\nconst initializeSendbird = (\n appId: string,\n internalStorage?: InternalLocalCacheStorage,\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK,\n) => {\n const unsubscribes: Array<() => void> = [];\n let chatSDK: SendbirdChatSDK;\n\n chatSDK = Sendbird.init({\n appId,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: Boolean(internalStorage),\n useAsyncStorageStore: internalStorage as never,\n newInstance: true,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n if (SendbirdUIKit.VERSION) {\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
|
|
@@ -14,7 +14,8 @@ export const SendbirdChatProvider = _ref => {
|
|
|
14
14
|
enableChannelListTypingIndicator,
|
|
15
15
|
enableUseUserIdForNickname,
|
|
16
16
|
enableUserMention,
|
|
17
|
-
enableImageCompression
|
|
17
|
+
enableImageCompression,
|
|
18
|
+
enableMessageSearch
|
|
18
19
|
} = _ref;
|
|
19
20
|
const [currentUser, _setCurrentUser] = useState();
|
|
20
21
|
const forceUpdate = useForceUpdate();
|
|
@@ -69,7 +70,8 @@ export const SendbirdChatProvider = _ref => {
|
|
|
69
70
|
channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus,
|
|
70
71
|
useUserIdForNicknameEnabled: enableUseUserIdForNickname,
|
|
71
72
|
userMentionEnabled: enableUserMention,
|
|
72
|
-
imageCompressionEnabled: enableImageCompression
|
|
73
|
+
imageCompressionEnabled: enableImageCompression,
|
|
74
|
+
messageSearchEnabled: enableMessageSearch
|
|
73
75
|
}
|
|
74
76
|
};
|
|
75
77
|
return /*#__PURE__*/React.createElement(SendbirdChatContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useState","useAppFeatures","confirmAndMarkAsDelivered","useAppState","useForceUpdate","SendbirdChatContext","createContext","SendbirdChatProvider","_ref","children","sdkInstance","emojiManager","mentionManager","imageCompressionConfig","enableAutoPushTokenRegistration","enableChannelListMessageReceiptStatus","enableChannelListTypingIndicator","enableUseUserIdForNickname","enableUserMention","enableImageCompression","currentUser","_setCurrentUser","forceUpdate","appFeatures","setCurrentUser","user","updateCurrentUserInfo","nickname","profile","Error","params","profileUrl","profileImage","markAsDeliveredWithChannel","channel","deliveryReceiptEnabled","status","connectionState","setForegroundState","setBackgroundState","value","sdk","features","autoPushTokenRegistrationEnabled","channelListTypingIndicatorEnabled","channelListMessageReceiptStatusEnabled","useUserIdForNicknameEnabled","userMentionEnabled","imageCompressionEnabled","createElement","Provider"],"sources":["SendbirdChatCtx.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\n\nimport { useAppFeatures } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdUser,\n SendbirdUserUpdateParams,\n} from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAppState, useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type EmojiManager from '../libs/EmojiManager';\nimport type ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport type MentionManager from '../libs/MentionManager';\nimport type { FileType } from '../platform/types';\n\nexport interface UIKitFeaturesInSendbirdChatContext {\n enableAutoPushTokenRegistration: boolean;\n enableChannelListTypingIndicator: boolean;\n enableChannelListMessageReceiptStatus: boolean;\n enableUseUserIdForNickname: boolean;\n enableUserMention: boolean;\n enableImageCompression: boolean;\n}\n\ninterface Props extends UIKitFeaturesInSendbirdChatContext, React.PropsWithChildren {\n sdkInstance: SendbirdChatSDK;\n emojiManager: EmojiManager;\n mentionManager: MentionManager;\n imageCompressionConfig: ImageCompressionConfig;\n}\n\nexport type SendbirdChatContextType = {\n sdk: SendbirdChatSDK;\n emojiManager: EmojiManager;\n mentionManager: MentionManager;\n imageCompressionConfig: ImageCompressionConfig;\n currentUser?: SendbirdUser;\n setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>;\n\n // helper functions\n updateCurrentUserInfo: (nickname?: string, profile?: string | FileType) => Promise<SendbirdUser>;\n markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void;\n\n features: {\n // UIKit features\n autoPushTokenRegistrationEnabled: boolean;\n channelListTypingIndicatorEnabled: boolean;\n channelListMessageReceiptStatusEnabled: boolean;\n useUserIdForNicknameEnabled: boolean;\n userMentionEnabled: boolean;\n imageCompressionEnabled: boolean;\n\n // Sendbird application features\n deliveryReceiptEnabled: boolean;\n broadcastChannelEnabled: boolean;\n superGroupChannelEnabled: boolean;\n reactionEnabled: boolean;\n };\n};\n\nexport const SendbirdChatContext = React.createContext<SendbirdChatContextType | null>(null);\nexport const SendbirdChatProvider = ({\n children,\n sdkInstance,\n emojiManager,\n mentionManager,\n imageCompressionConfig,\n enableAutoPushTokenRegistration,\n enableChannelListMessageReceiptStatus,\n enableChannelListTypingIndicator,\n enableUseUserIdForNickname,\n enableUserMention,\n enableImageCompression,\n}: Props) => {\n const [currentUser, _setCurrentUser] = useState<SendbirdUser>();\n const forceUpdate = useForceUpdate();\n const appFeatures = useAppFeatures(sdkInstance);\n\n const setCurrentUser: SendbirdChatContextType['setCurrentUser'] = useCallback((user) => {\n // NOTE: Sendbird SDK handle User object is always same object, so force update after setCurrentUser\n _setCurrentUser(user);\n forceUpdate();\n }, []);\n\n const updateCurrentUserInfo: SendbirdChatContextType['updateCurrentUserInfo'] = useCallback(\n async (nickname, profile) => {\n let user = currentUser;\n\n if (!user) throw new Error('Current user is not defined, please connect using `useConnection()` hook first');\n\n const params: SendbirdUserUpdateParams = {};\n\n if (!nickname) {\n params.nickname = user.nickname;\n } else {\n params.nickname = nickname;\n }\n\n if (!profile) {\n params.profileUrl = user.profileUrl;\n } else if (typeof profile === 'string') {\n params.profileUrl = profile;\n } else if (typeof profile === 'object') {\n params.profileImage = profile;\n } else {\n throw new Error(`Cannot update profile, not supported profile type(${typeof profile})`);\n }\n\n user = await sdkInstance.updateCurrentUserInfo(params);\n\n setCurrentUser(user);\n return user;\n },\n [sdkInstance, currentUser, setCurrentUser],\n );\n\n const markAsDeliveredWithChannel: SendbirdChatContextType['markAsDeliveredWithChannel'] = useCallback(\n (channel: SendbirdGroupChannel) => {\n if (appFeatures.deliveryReceiptEnabled) confirmAndMarkAsDelivered([channel]);\n },\n [sdkInstance, appFeatures.deliveryReceiptEnabled],\n );\n\n useAppState('change', (status) => {\n // 'active' | 'background' | 'inactive' | 'unknown' | 'extension';\n if (status === 'active') sdkInstance.connectionState === 'CLOSED' && sdkInstance.setForegroundState();\n else if (status === 'background') sdkInstance.connectionState === 'OPEN' && sdkInstance.setBackgroundState();\n });\n\n const value: SendbirdChatContextType = {\n sdk: sdkInstance,\n emojiManager,\n mentionManager,\n imageCompressionConfig,\n currentUser,\n setCurrentUser,\n\n updateCurrentUserInfo,\n markAsDeliveredWithChannel,\n\n features: {\n ...appFeatures,\n autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,\n channelListTypingIndicatorEnabled: enableChannelListTypingIndicator,\n channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus,\n useUserIdForNicknameEnabled: enableUseUserIdForNickname,\n userMentionEnabled: enableUserMention,\n imageCompressionEnabled: enableImageCompression,\n },\n };\n\n return <SendbirdChatContext.Provider value={value}>{children}</SendbirdChatContext.Provider>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAEpD,SAASC,cAAc,QAAQ,4BAA4B;AAO3D,SAASC,yBAAyB,EAAEC,WAAW,EAAEC,cAAc,QAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"names":["React","useCallback","useState","useAppFeatures","confirmAndMarkAsDelivered","useAppState","useForceUpdate","SendbirdChatContext","createContext","SendbirdChatProvider","_ref","children","sdkInstance","emojiManager","mentionManager","imageCompressionConfig","enableAutoPushTokenRegistration","enableChannelListMessageReceiptStatus","enableChannelListTypingIndicator","enableUseUserIdForNickname","enableUserMention","enableImageCompression","enableMessageSearch","currentUser","_setCurrentUser","forceUpdate","appFeatures","setCurrentUser","user","updateCurrentUserInfo","nickname","profile","Error","params","profileUrl","profileImage","markAsDeliveredWithChannel","channel","deliveryReceiptEnabled","status","connectionState","setForegroundState","setBackgroundState","value","sdk","features","autoPushTokenRegistrationEnabled","channelListTypingIndicatorEnabled","channelListMessageReceiptStatusEnabled","useUserIdForNicknameEnabled","userMentionEnabled","imageCompressionEnabled","messageSearchEnabled","createElement","Provider"],"sources":["SendbirdChatCtx.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\n\nimport { useAppFeatures } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdUser,\n SendbirdUserUpdateParams,\n} from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAppState, useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type EmojiManager from '../libs/EmojiManager';\nimport type ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport type MentionManager from '../libs/MentionManager';\nimport type { FileType } from '../platform/types';\n\nexport interface UIKitFeaturesInSendbirdChatContext {\n enableAutoPushTokenRegistration: boolean;\n enableChannelListTypingIndicator: boolean;\n enableChannelListMessageReceiptStatus: boolean;\n enableUseUserIdForNickname: boolean;\n enableUserMention: boolean;\n enableImageCompression: boolean;\n enableMessageSearch: boolean;\n}\n\ninterface Props extends UIKitFeaturesInSendbirdChatContext, React.PropsWithChildren {\n sdkInstance: SendbirdChatSDK;\n emojiManager: EmojiManager;\n mentionManager: MentionManager;\n imageCompressionConfig: ImageCompressionConfig;\n}\n\nexport type SendbirdChatContextType = {\n sdk: SendbirdChatSDK;\n emojiManager: EmojiManager;\n mentionManager: MentionManager;\n imageCompressionConfig: ImageCompressionConfig;\n currentUser?: SendbirdUser;\n setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>;\n\n // helper functions\n updateCurrentUserInfo: (nickname?: string, profile?: string | FileType) => Promise<SendbirdUser>;\n markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void;\n\n features: {\n // RN UIKit features\n autoPushTokenRegistrationEnabled: boolean;\n\n // UIKit features\n channelListTypingIndicatorEnabled: boolean;\n channelListMessageReceiptStatusEnabled: boolean;\n useUserIdForNicknameEnabled: boolean;\n userMentionEnabled: boolean;\n imageCompressionEnabled: boolean;\n messageSearchEnabled: boolean;\n\n // Sendbird application features\n deliveryReceiptEnabled: boolean;\n broadcastChannelEnabled: boolean;\n superGroupChannelEnabled: boolean;\n reactionEnabled: boolean;\n };\n};\n\nexport const SendbirdChatContext = React.createContext<SendbirdChatContextType | null>(null);\nexport const SendbirdChatProvider = ({\n children,\n sdkInstance,\n emojiManager,\n mentionManager,\n imageCompressionConfig,\n enableAutoPushTokenRegistration,\n enableChannelListMessageReceiptStatus,\n enableChannelListTypingIndicator,\n enableUseUserIdForNickname,\n enableUserMention,\n enableImageCompression,\n enableMessageSearch,\n}: Props) => {\n const [currentUser, _setCurrentUser] = useState<SendbirdUser>();\n const forceUpdate = useForceUpdate();\n const appFeatures = useAppFeatures(sdkInstance);\n\n const setCurrentUser: SendbirdChatContextType['setCurrentUser'] = useCallback((user) => {\n // NOTE: Sendbird SDK handle User object is always same object, so force update after setCurrentUser\n _setCurrentUser(user);\n forceUpdate();\n }, []);\n\n const updateCurrentUserInfo: SendbirdChatContextType['updateCurrentUserInfo'] = useCallback(\n async (nickname, profile) => {\n let user = currentUser;\n\n if (!user) throw new Error('Current user is not defined, please connect using `useConnection()` hook first');\n\n const params: SendbirdUserUpdateParams = {};\n\n if (!nickname) {\n params.nickname = user.nickname;\n } else {\n params.nickname = nickname;\n }\n\n if (!profile) {\n params.profileUrl = user.profileUrl;\n } else if (typeof profile === 'string') {\n params.profileUrl = profile;\n } else if (typeof profile === 'object') {\n params.profileImage = profile;\n } else {\n throw new Error(`Cannot update profile, not supported profile type(${typeof profile})`);\n }\n\n user = await sdkInstance.updateCurrentUserInfo(params);\n\n setCurrentUser(user);\n return user;\n },\n [sdkInstance, currentUser, setCurrentUser],\n );\n\n const markAsDeliveredWithChannel: SendbirdChatContextType['markAsDeliveredWithChannel'] = useCallback(\n (channel: SendbirdGroupChannel) => {\n if (appFeatures.deliveryReceiptEnabled) confirmAndMarkAsDelivered([channel]);\n },\n [sdkInstance, appFeatures.deliveryReceiptEnabled],\n );\n\n useAppState('change', (status) => {\n // 'active' | 'background' | 'inactive' | 'unknown' | 'extension';\n if (status === 'active') sdkInstance.connectionState === 'CLOSED' && sdkInstance.setForegroundState();\n else if (status === 'background') sdkInstance.connectionState === 'OPEN' && sdkInstance.setBackgroundState();\n });\n\n const value: SendbirdChatContextType = {\n sdk: sdkInstance,\n emojiManager,\n mentionManager,\n imageCompressionConfig,\n currentUser,\n setCurrentUser,\n\n updateCurrentUserInfo,\n markAsDeliveredWithChannel,\n\n features: {\n ...appFeatures,\n autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,\n channelListTypingIndicatorEnabled: enableChannelListTypingIndicator,\n channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus,\n useUserIdForNicknameEnabled: enableUseUserIdForNickname,\n userMentionEnabled: enableUserMention,\n imageCompressionEnabled: enableImageCompression,\n messageSearchEnabled: enableMessageSearch,\n },\n };\n\n return <SendbirdChatContext.Provider value={value}>{children}</SendbirdChatContext.Provider>;\n};\n"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { useLocalization } from '../../../hooks/useContext';
|
|
|
6
6
|
import { GroupChannelContexts } from '../module/moduleContext';
|
|
7
7
|
const GroupChannelHeader = _ref => {
|
|
8
8
|
let {
|
|
9
|
+
shouldHideRight,
|
|
9
10
|
onPressHeaderLeft,
|
|
10
11
|
onPressHeaderRight
|
|
11
12
|
} = _ref;
|
|
@@ -23,6 +24,7 @@ const GroupChannelHeader = _ref => {
|
|
|
23
24
|
HeaderComponent
|
|
24
25
|
} = useHeaderStyle();
|
|
25
26
|
const subtitle = STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers);
|
|
27
|
+
const isHidden = shouldHideRight();
|
|
26
28
|
return /*#__PURE__*/React.createElement(HeaderComponent, {
|
|
27
29
|
clearTitleMargin: true,
|
|
28
30
|
title: /*#__PURE__*/React.createElement(View, {
|
|
@@ -44,10 +46,10 @@ const GroupChannelHeader = _ref => {
|
|
|
44
46
|
icon: 'arrow-left'
|
|
45
47
|
}),
|
|
46
48
|
onPressLeft: onPressHeaderLeft,
|
|
47
|
-
right: /*#__PURE__*/React.createElement(Icon, {
|
|
49
|
+
right: isHidden ? null : /*#__PURE__*/React.createElement(Icon, {
|
|
48
50
|
icon: 'info'
|
|
49
51
|
}),
|
|
50
|
-
onPressRight: onPressHeaderRight
|
|
52
|
+
onPressRight: isHidden ? undefined : onPressHeaderRight
|
|
51
53
|
});
|
|
52
54
|
};
|
|
53
55
|
const styles = createStyleSheet({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useContext","View","Header","Icon","createStyleSheet","useHeaderStyle","ChannelCover","useLocalization","GroupChannelContexts","GroupChannelHeader","_ref","onPressHeaderLeft","onPressHeaderRight","headerTitle","channel","Fragment","typingUsers","TypingIndicator","STRINGS","HeaderComponent","subtitle","LABELS","TYPING_INDICATOR_TYPINGS","createElement","clearTitleMargin","title","style","styles","titleContainer","size","containerStyle","avatarGroup","flexShrink","Title","h2","Boolean","Subtitle","left","icon","onPressLeft","right","onPressRight","maxWidth","flexDirection","alignItems","marginRight","marginTop"],"sources":["GroupChannelHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { Header, Icon, createStyleSheet, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';\n\nimport ChannelCover from '../../../components/ChannelCover';\nimport { useLocalization } from '../../../hooks/useContext';\nimport { GroupChannelContexts } from '../module/moduleContext';\nimport type { GroupChannelProps } from '../types';\n\nconst GroupChannelHeader = ({
|
|
1
|
+
{"version":3,"names":["React","useContext","View","Header","Icon","createStyleSheet","useHeaderStyle","ChannelCover","useLocalization","GroupChannelContexts","GroupChannelHeader","_ref","shouldHideRight","onPressHeaderLeft","onPressHeaderRight","headerTitle","channel","Fragment","typingUsers","TypingIndicator","STRINGS","HeaderComponent","subtitle","LABELS","TYPING_INDICATOR_TYPINGS","isHidden","createElement","clearTitleMargin","title","style","styles","titleContainer","size","containerStyle","avatarGroup","flexShrink","Title","h2","Boolean","Subtitle","left","icon","onPressLeft","right","onPressRight","undefined","maxWidth","flexDirection","alignItems","marginRight","marginTop"],"sources":["GroupChannelHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { Header, Icon, createStyleSheet, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';\n\nimport ChannelCover from '../../../components/ChannelCover';\nimport { useLocalization } from '../../../hooks/useContext';\nimport { GroupChannelContexts } from '../module/moduleContext';\nimport type { GroupChannelProps } from '../types';\n\nconst GroupChannelHeader = ({\n shouldHideRight,\n onPressHeaderLeft,\n onPressHeaderRight,\n}: GroupChannelProps['Header']) => {\n const { headerTitle, channel } = useContext(GroupChannelContexts.Fragment);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n const { STRINGS } = useLocalization();\n const { HeaderComponent } = useHeaderStyle();\n const subtitle = STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers);\n\n const isHidden = shouldHideRight();\n\n return (\n <HeaderComponent\n clearTitleMargin\n title={\n <View style={styles.titleContainer}>\n <ChannelCover channel={channel} size={34} containerStyle={styles.avatarGroup} />\n <View style={{ flexShrink: 1 }}>\n <Header.Title h2>{headerTitle}</Header.Title>\n {Boolean(subtitle) && subtitle && <Header.Subtitle style={styles.subtitle}>{subtitle}</Header.Subtitle>}\n </View>\n </View>\n }\n left={<Icon icon={'arrow-left'} />}\n onPressLeft={onPressHeaderLeft}\n right={isHidden ? null : <Icon icon={'info'} />}\n onPressRight={isHidden ? undefined : onPressHeaderRight}\n />\n );\n};\n\nconst styles = createStyleSheet({\n titleContainer: {\n maxWidth: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n },\n avatarGroup: {\n marginRight: 8,\n },\n subtitle: {\n marginTop: 2,\n },\n});\n\nexport default GroupChannelHeader;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,MAAM,EAAEC,IAAI,EAAEC,gBAAgB,EAAEC,cAAc,QAAQ,yCAAyC;AAExG,OAAOC,YAAY,MAAM,kCAAkC;AAC3D,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,oBAAoB,QAAQ,yBAAyB;AAG9D,MAAMC,kBAAkB,GAAGC,IAAA,IAIQ;EAAA,IAJP;IAC1BC,eAAe;IACfC,iBAAiB;IACjBC;EAC2B,CAAC,GAAAH,IAAA;EAC5B,MAAM;IAAEI,WAAW;IAAEC;EAAQ,CAAC,GAAGf,UAAU,CAACQ,oBAAoB,CAACQ,QAAQ,CAAC;EAC1E,MAAM;IAAEC;EAAY,CAAC,GAAGjB,UAAU,CAACQ,oBAAoB,CAACU,eAAe,CAAC;EACxE,MAAM;IAAEC;EAAQ,CAAC,GAAGZ,eAAe,EAAE;EACrC,MAAM;IAAEa;EAAgB,CAAC,GAAGf,cAAc,EAAE;EAC5C,MAAMgB,QAAQ,GAAGF,OAAO,CAACG,MAAM,CAACC,wBAAwB,CAACN,WAAW,CAAC;EAErE,MAAMO,QAAQ,GAAGb,eAAe,EAAE;EAElC,oBACEZ,KAAA,CAAA0B,aAAA,CAACL,eAAe;IACdM,gBAAgB;IAChBC,KAAK,eACH5B,KAAA,CAAA0B,aAAA,CAACxB,IAAI;MAAC2B,KAAK,EAAEC,MAAM,CAACC;IAAe,gBACjC/B,KAAA,CAAA0B,aAAA,CAACnB,YAAY;MAACS,OAAO,EAAEA,OAAQ;MAACgB,IAAI,EAAE,EAAG;MAACC,cAAc,EAAEH,MAAM,CAACI;IAAY,EAAG,eAChFlC,KAAA,CAAA0B,aAAA,CAACxB,IAAI;MAAC2B,KAAK,EAAE;QAAEM,UAAU,EAAE;MAAE;IAAE,gBAC7BnC,KAAA,CAAA0B,aAAA,CAACvB,MAAM,CAACiC,KAAK;MAACC,EAAE;IAAA,GAAEtB,WAAW,CAAgB,EAC5CuB,OAAO,CAAChB,QAAQ,CAAC,IAAIA,QAAQ,iBAAItB,KAAA,CAAA0B,aAAA,CAACvB,MAAM,CAACoC,QAAQ;MAACV,KAAK,EAAEC,MAAM,CAACR;IAAS,GAAEA,QAAQ,CAAmB,CAClG,CAEV;IACDkB,IAAI,eAAExC,KAAA,CAAA0B,aAAA,CAACtB,IAAI;MAACqC,IAAI,EAAE;IAAa,EAAI;IACnCC,WAAW,EAAE7B,iBAAkB;IAC/B8B,KAAK,EAAElB,QAAQ,GAAG,IAAI,gBAAGzB,KAAA,CAAA0B,aAAA,CAACtB,IAAI;MAACqC,IAAI,EAAE;IAAO,EAAI;IAChDG,YAAY,EAAEnB,QAAQ,GAAGoB,SAAS,GAAG/B;EAAmB,EACxD;AAEN,CAAC;AAED,MAAMgB,MAAM,GAAGzB,gBAAgB,CAAC;EAC9B0B,cAAc,EAAE;IACde,QAAQ,EAAE,MAAM;IAChBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDd,WAAW,EAAE;IACXe,WAAW,EAAE;EACf,CAAC;EACD3B,QAAQ,EAAE;IACR4B,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAEF,eAAexC,kBAAkB"}
|