@messenger-box/platform-mobile 0.0.1-alpha.348 → 0.0.1-alpha.351
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/CHANGELOG.md +4 -0
- package/lib/index.js +11 -12
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
- package/src/screens/inbox/containers/ConversationView.tsx +10 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.0.1-alpha.351](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.350...v0.0.1-alpha.351) (2023-05-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @messenger-box/platform-mobile
|
|
9
|
+
|
|
6
10
|
## [0.0.1-alpha.348](https://github.com/CDEBase/messenger-box/compare/v0.0.1-alpha.347...v0.0.1-alpha.348) (2023-05-11)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package @messenger-box/platform-mobile
|
package/lib/index.js
CHANGED
|
@@ -1169,7 +1169,7 @@ const ConversationViewComponent = ({ channelId }) => {
|
|
|
1169
1169
|
if (totalCount !== messeageTotalCount)
|
|
1170
1170
|
setTotalCount(messeageTotalCount);
|
|
1171
1171
|
}
|
|
1172
|
-
}, [data]);
|
|
1172
|
+
}, [data, loadingOldMessages, channelMessages]);
|
|
1173
1173
|
// useEffect(() => {
|
|
1174
1174
|
// if (data?.messages?.data) {
|
|
1175
1175
|
// const { data: messages, totalCount: messeageTotalCount } = data.messages;
|
|
@@ -1197,9 +1197,11 @@ const ConversationViewComponent = ({ channelId }) => {
|
|
|
1197
1197
|
// }
|
|
1198
1198
|
// }, [checkForMessages, totalCount]);
|
|
1199
1199
|
(0, react_1.useEffect)(() => {
|
|
1200
|
-
var _a, _b;
|
|
1201
|
-
if (
|
|
1202
|
-
|
|
1200
|
+
var _a, _b, _c;
|
|
1201
|
+
if (!messageLoading &&
|
|
1202
|
+
((_a = checkForMessages === null || checkForMessages === void 0 ? void 0 : checkForMessages.messages) === null || _a === void 0 ? void 0 : _a.totalCount) &&
|
|
1203
|
+
((_b = checkForMessages === null || checkForMessages === void 0 ? void 0 : checkForMessages.messages) === null || _b === void 0 ? void 0 : _b.totalCount) > totalCount) {
|
|
1204
|
+
const numberOfNewMessages = ((_c = checkForMessages === null || checkForMessages === void 0 ? void 0 : checkForMessages.messages) === null || _c === void 0 ? void 0 : _c.totalCount) - totalCount;
|
|
1203
1205
|
console.log('new msg check');
|
|
1204
1206
|
refetch({
|
|
1205
1207
|
limit: numberOfNewMessages,
|
|
@@ -1591,17 +1593,14 @@ const ConversationViewComponent = ({ channelId }) => {
|
|
|
1591
1593
|
// }
|
|
1592
1594
|
// }
|
|
1593
1595
|
// }}
|
|
1594
|
-
// onSend={(messages) => {
|
|
1595
|
-
// handleSend(messages[0]?.text ?? ' ');
|
|
1596
|
-
// }}
|
|
1597
1596
|
onSend: (messages) => { var _a, _b; return handleSend((_b = (_a = messages[0]) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : ' '); }, text: msg ? msg : ' ', onInputTextChanged: (text) => setMsg(text), renderFooter: () => (loading ? react_1.default.createElement(native_base_1.Spinner, null) : imageLoading ? react_1.default.createElement(native_base_1.Spinner, null) : ''), scrollToBottom: true, user: {
|
|
1598
1597
|
// _id: currentUser?.id || '',
|
|
1599
1598
|
_id: (auth === null || auth === void 0 ? void 0 : auth.id) || '',
|
|
1600
|
-
}, isTyping: true, alwaysShowSend: loading ? false : true, onLoadEarlier: onFetchOld, infiniteScroll: true, renderSend: renderSend,
|
|
1601
|
-
//
|
|
1602
|
-
//
|
|
1603
|
-
//
|
|
1604
|
-
|
|
1599
|
+
}, isTyping: true, alwaysShowSend: loading ? false : true, onLoadEarlier: onFetchOld, infiniteScroll: true, renderSend: renderSend, loadEarlier: ((_a = data === null || data === void 0 ? void 0 : data.messages) === null || _a === void 0 ? void 0 : _a.totalCount) > channelMessages.length,
|
|
1600
|
+
//isLoadingEarlier={isLoadingEarlier}
|
|
1601
|
+
//extraData={{ isLoadingEarlier: loadingOldMessages }}
|
|
1602
|
+
//renderLoadEarlier={() => <Spinner />}}
|
|
1603
|
+
renderMessageText: renderMessageText, minInputToolbarHeight: 50, renderActions: renderActions, renderAccessory: renderAccessory, renderMessage: renderMessage, renderChatFooter: () => (react_1.default.createElement(SlackMessageContainer_1.ImageViewerModal, { isVisible: isShowImageViewer, setVisible: setImageViewer, modalContent: modalContent })), lightboxProps: {
|
|
1605
1604
|
underlayColor: 'transparent',
|
|
1606
1605
|
springConfig: { tension: 90000, friction: 90000 },
|
|
1607
1606
|
disabled: true,
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@messenger-box/platform-mobile/./src/index.ts","webpack://@messenger-box/platform-mobile/./src/module.ts","webpack://@messenger-box/platform-mobile/./src/navigation/InboxNavigation.tsx","webpack://@messenger-box/platform-mobile/./src/navigation/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/Inbox.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/CachedImage/consts.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/CachedImage/index.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/DialogsListItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/config.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ConversationView.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/Dialogs.tsx","webpack://@messenger-box/platform-mobile/./src/screens/index.ts","webpack://@messenger-box/platform-mobile/external commonjs \"@adminide-stack/user-auth0-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@common-stack/client-react\"","webpack://@messenger-box/platform-mobile/external commonjs \"@expo/vector-icons\"","webpack://@messenger-box/platform-mobile/external commonjs \"@messenger-box/platform-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@react-navigation/native\"","webpack://@messenger-box/platform-mobile/external commonjs \"base-64\"","webpack://@messenger-box/platform-mobile/external commonjs \"date-fns\"","webpack://@messenger-box/platform-mobile/external commonjs \"envalid\"","webpack://@messenger-box/platform-mobile/external commonjs \"expo-file-system\"","webpack://@messenger-box/platform-mobile/external commonjs \"expo-image-picker\"","webpack://@messenger-box/platform-mobile/external commonjs \"lodash\"","webpack://@messenger-box/platform-mobile/external commonjs \"native-base\"","webpack://@messenger-box/platform-mobile/external commonjs \"react\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native-gifted-chat\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-redux\"","webpack://@messenger-box/platform-mobile/webpack/bootstrap","webpack://@messenger-box/platform-mobile/webpack/before-startup","webpack://@messenger-box/platform-mobile/webpack/startup","webpack://@messenger-box/platform-mobile/webpack/after-startup"],"sourcesContent":["import PlatformModule from './module';\n\nimport { Feature } from '@common-stack/client-react';\n\nexport default new Feature(PlatformModule);\nexport * from './navigation';\nexport * from './screens';\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { Feature } from '@common-stack/client-react';\nimport { schema, typePolicies, dataIdFromObject } from '@messenger-box/platform-client';\n\nexport default new Feature({\n dataIdFromObject,\n clientStateParams: { typeDefs: schema, typePolicies },\n});\n","import * as React from 'react';\nimport { Feature } from '@common-stack/client-react';\nimport { DialogMessages } from '../screens/inbox/DialogMessages';\nimport { IconButton, Icon } from 'native-base';\nimport { MaterialIcons } from '@expo/vector-icons';\n\nconst inboxConfig = {\n ['//message']: {\n exact: true,\n name: 'Message',\n props: {\n initialParams: { channelId: null },\n component: (props: any) => <DialogMessages {...props} channelId={props?.route?.params?.channelId} />,\n options: ({ navigation }: any) => {\n return {\n headerShown: true,\n title: 'Inbox',\n headerBackTitleVisible: false,\n gestureEnabled: false,\n swipeEnabled: false,\n headerLeft: (props: any) => (\n <IconButton\n onPress={() => navigation.goBack()}\n icon={<Icon size={'lg'} as={MaterialIcons} name=\"arrow-back-ios\" color={'black'} />}\n />\n ),\n };\n },\n },\n },\n};\n\nexport const inboxFeature = new Feature({\n routeConfig: inboxConfig as any,\n});\n","export * from './InboxNavigation';\n","import * as React from 'react';\nimport { Box } from 'native-base';\nimport { ConversationView } from './containers/ConversationView';\n\nexport function DialogMessages({ channelId }) {\n return (\n <Box bg={'white'} flex={1} pt={5}>\n <ConversationView channelId={channelId} />\n </Box>\n );\n}","import * as React from 'react';\nimport { Box } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\n\nexport const Inbox = (props:any) => {\n const { channelFilters, channelRole } = props;\n return (\n <Box bg={'white'} flex={1}>\n <Dialogs channelFilters={channelFilters} channelRole={channelRole} {...props} />\n </Box>\n );\n};\n","import * as FileSystem from \"expo-file-system\"\n\nexport const IMAGE_CACHE_FOLDER = `${FileSystem.cacheDirectory}`\n// export const IMAGE_CACHE_FOLDER = `${FileSystem.documentDirectory}images/`\nexport default IMAGE_CACHE_FOLDER\n","import React, { useEffect, useState, useRef } from 'react';\nimport { Image } from 'native-base';\n// import { Image } from \"react-native\"\nimport * as FileSystem from 'expo-file-system';\n\nimport * as CONST from './consts';\n\nconst CachedImage = (props: any) => {\n const { source, cacheKey, placeholderContent } = props;\n const { uri, headers, expiresIn } = source;\n const fileURI = `${CONST.IMAGE_CACHE_FOLDER}${cacheKey}`;\n\n const [imgUri, setImgUri] = useState<any>(fileURI);\n\n const componentIsMounted = useRef(true);\n const requestOption = headers ? { headers } : {};\n\n const _callback = (downloadProgress: any) => {\n if (componentIsMounted.current === false) {\n downloadResumableRef.current.pauseAsync();\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n };\n\n const downloadResumableRef = useRef(FileSystem.createDownloadResumable(uri, fileURI, requestOption, _callback));\n\n useEffect(() => {\n loadImage();\n return () => {\n componentIsMounted.current = false;\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const loadImage = async () => {\n try {\n // Use the cached image if it exists\n const metadata: any = await FileSystem.getInfoAsync(fileURI);\n const expired = expiresIn && new Date().getTime() / 1000 - metadata?.modificationTime > expiresIn;\n // console.log({expiresIn, expired})\n\n // console.log({modificationTime: metadata.modificationTime, currentTime: new Date().getTime() / 1000})\n // console.log({metadata})\n if (!metadata.exists || metadata?.size === 0 || expired) {\n if (componentIsMounted.current) {\n setImgUri(null);\n\n if (expired) {\n await FileSystem.deleteAsync(fileURI, { idempotent: true });\n }\n // download to cache\n setImgUri(null);\n\n const response: any = await downloadResumableRef.current.downloadAsync();\n if (componentIsMounted.current && response.status === 200) {\n setImgUri(`${fileURI}?`); // deep clone to force re-render\n }\n if (response.status !== 200) {\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n }\n }\n } catch (err) {\n // console.log({ err })\n }\n };\n // console.log({placeholderContent})\n if (!imgUri) return placeholderContent || null;\n\n return (\n <Image\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n source={{\n ...source,\n uri: imgUri,\n }}\n />\n );\n};\n\nexport const CacheManager = {\n addToCache: async ({ file, key }: any) => {\n await FileSystem.copyAsync({\n from: file,\n to: `${CONST.IMAGE_CACHE_FOLDER}${key}`,\n });\n // const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`)\n // return uri\n const uri = await CacheManager.getCachedUri({ key });\n return uri;\n },\n\n getCachedUri: async ({ key }: any) => {\n const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`);\n return uri;\n },\n\n downloadAsync: async ({ uri, key, options }: any) => {\n return await FileSystem.downloadAsync(uri, `${CONST.IMAGE_CACHE_FOLDER}${key}`, options);\n },\n};\n\nexport default CachedImage;\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, HStack, Stack, Box, Avatar, View } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { IChannel, IUserAccount, useMessagesQuery, useUserAccountQuery } from '@messenger-box/platform-client';\nimport { startCase } from 'lodash';\n\nconst createdAtText = (value: string) => {\n if (!value) return '';\n let date = new Date(value);\n if (isToday(date)) return 'Today';\n if (isYesterday(date)) return 'Yesterday';\n return format(new Date(value), 'MMM dd, yyyy');\n};\n\nexport interface IDialogListChannel extends IChannel {\n users: IUserAccount[];\n}\n\nexport interface IDialogListItemProps {\n currentUser?: any;\n users?: any;\n selectedChannelId?: any;\n channel?: any;\n onOpen: (id: any, title: any) => void;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const DialogsListItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchMessages({ channelId: channel?.id?.toString(), limit: 1 });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const lastMessage = useMemo(() => {\n if (!messagesQuery?.messages?.data?.length) {\n return null;\n }\n const { data } = messagesQuery.messages;\n return data[data.length - 1];\n }, [messagesQuery]);\n\n const channelMembers = useMemo(\n () =>\n channel?.members\n ?.filter((ch: any) => ch?.user?.id != currentUser?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null,\n [currentUser, channel],\n );\n\n const title = useMemo(\n () =>\n channelMembers\n ?.map((u: any) => u?.givenName + ' ' + u?.familyName ?? '')\n ?.filter((mu: any) => mu)\n ?.join(', ') ?? '',\n [channelMembers],\n );\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, title)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\n flex={1}\n _dark={{\n borderColor: 'coolGray.600',\n backgroundColor: 'gray.700',\n }}\n _web={{\n shadow: 2,\n borderWidth: 0,\n }}\n _light={{\n backgroundColor: 'gray.50',\n }}\n >\n <HStack\n // px={2}\n // pl={3}\n py={3}\n space={2}\n w={'100%'}\n flex={1}\n direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={0.1} alignItems={'flex-start'} pl={3}>\n <Avatar.Group\n _avatar={{\n size: 'sm',\n bg: 'transparent',\n }}\n >\n {channelMembers &&\n channelMembers?.length > 0 &&\n channelMembers?.slice(0, 2)?.map((ch: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={9}\n top={i == 1 ? 4 : 0}\n right={i == 1 ? -2 : 0}\n zIndex={i == 1 ? 5 : 1}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: ch?.picture,\n }}\n >\n {startCase(ch?.username?.charAt(0))}\n {channelMembers?.length == 1 && (\n <Avatar.Badge bg=\"green.800\" bottom={-4} right={-4} />\n )}\n </Avatar>\n ))}\n </Avatar.Group>\n </Box>\n <Box flex={0.9}>\n <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack>\n {/* <Text\n flex={1}\n color=\"gray.600\"\n p={0}\n m={0}\n w={'100%'}\n justifyContent={''}\n fontSize=\"lg\"\n fontWeight=\"semibold\"\n >\n {title}\n </Text> */}\n {/* <Text flex={0.1} color=\"gray.600\">\n {lastMessage?.message ?? ''}\n </Text> */}\n </Box>\n {/* <Text flex={0.2} color=\"gray.500\">\n {lastMessage ? createdAtText(lastMessage?.createdAt) : ''}\n </Text> */}\n </HStack>\n </Pressable>\n );\n};\n\nexport const DialogsListItem = React.memo(DialogsListItemComponent);\n","import React, {useState} from 'react';\nimport {Alert, Modal, StyleSheet, Text, Pressable, View,SafeAreaView,StatusBar} from 'react-native';\n\nconst ImageViewerModal = ({children,isVisible=false,setVisible,modalContent=null}:any) => {\n \n return (\n <Modal\n animationType=\"slide\"\n // transparent={true}\n visible={isVisible}\n presentationStyle={'fullScreen'}\n style={{flex:1}}\n onRequestClose={() => {\n setVisible(false);\n }}>\n <View style={styles.container}> \n <View style={styles.headerView}>\n {/* <View><Text></Text></View>\n <View><Text></Text></View> */}\n <View style={{alignSelf:'flex-end',paddingRight:5}} > \n <Pressable\n style={[styles.button, styles.buttonClose]}\n onPress={() => setVisible(false)}>\n <Text style={styles.headerTextStyle}>X</Text>\n </Pressable></View>\n </View>\n <View style={styles.centeredView}>\n {modalContent ? modalContent : children}\n </View>\n <View style={styles.footerView}>\n\n </View>\n </View>\n </Modal>\n );\n};\n\nconst styles = StyleSheet.create({\n container:{\n flex:1,\n },\n headerView:{\n width:'100%',\n alignItems: 'center',\n justifyContent:'space-between',\n // backgroundColor:'rgba(r, g, b, a)',\n backgroundColor:'#000',\n paddingTop:50,\n paddingBottom:10,\n },\n centeredView: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'white',\n\n borderRadius: 20,\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n footerView:{\n minHeight:100,\n backgroundColor:'#000'\n },\n modalView: {\n flex:1,\n backgroundColor: 'white',\n borderRadius: 20,\n alignItems: 'center',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n button: {\n borderRadius: 20,\n padding: 10,\n elevation: 2,\n },\n buttonOpen: {\n backgroundColor: '#F194FF',\n },\n buttonClose: {\n backgroundColor: 'transparent',\n },\n textStyle: {\n color: 'white',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n headerTextStyle:{\n color: '#fff',\n // fontWeight: 'bold',\n textAlign: 'center',\n fontSize:20,\n },\n modalText: {\n marginBottom: 15,\n textAlign: 'center',\n },\n});\n\nexport default ImageViewerModal;","/* eslint-disable no-underscore-dangle, no-use-before-define */\nimport React from 'react';\nimport { Text, StyleSheet, TouchableOpacity, View, Platform, Dimensions } from 'react-native';\n\nimport { MessageText, MessageImage, Time, utils } from 'react-native-gifted-chat';\nimport CachedImage from '../CachedImage';\nconst { isSameUser, isSameDay } = utils;\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nexport default class Bubble extends React.Component<any> {\n static defaultProps: {\n touchableProps: {};\n onLongPress: null;\n renderMessageImage: null;\n renderMessageText: null;\n renderCustomView: null;\n renderTime: null;\n currentMessage: { text: null; createdAt: null; image: null };\n nextMessage: {};\n previousMessage: {};\n containerStyle: {};\n wrapperStyle: {};\n tickStyle: {};\n containerToNextStyle: {};\n containerToPreviousStyle: {};\n isShowImageViewer: false;\n setImageViewer: (obj: any, v: boolean) => void;\n };\n static propTypes: any;\n constructor(props: any) {\n super(props);\n }\n\n renderMessageText() {\n if (this.props.currentMessage.text) {\n const { containerStyle, wrapperStyle, messageTextStyle, ...messageTextProps } = this.props;\n if (this.props.renderMessageText) {\n return this.props.renderMessageText(messageTextProps);\n }\n return (\n <MessageText\n {...messageTextProps}\n textStyle={{\n left: [\n styles.standardFont,\n styles.slackMessageText,\n messageTextProps.textStyle,\n messageTextStyle,\n ],\n }}\n />\n );\n }\n return null;\n }\n\n renderMessageImage() {\n if (this.props.currentMessage.image) {\n const { containerStyle, wrapperStyle, ...messageImageProps } = this.props;\n if (this.props.renderMessageImage) {\n return this.props.renderMessageImage(messageImageProps);\n }\n const { image, _id } = messageImageProps?.currentMessage;\n\n return (\n <TouchableOpacity onPress={() => this.props.setImageViewer(messageImageProps?.currentMessage, true)}>\n <View\n style={{\n width: windowWidth - (windowWidth - 150),\n height: windowHeight - (windowHeight - 100),\n }}\n >\n {/* <MessageImage\n {...messageImageProps}\n imageStyle={[styles.slackImage, messageImageProps.imageStyle]}\n /> */}\n <CachedImage\n style={[styles.slackImage, { width: '100%', height: '100%' }]}\n cacheKey={`${_id}-slack-bubble-imageKey`}\n source={{\n uri: image,\n //headers: `Authorization: Bearer ${token}`,\n expiresIn: 86400,\n }}\n resizeMode={'cover'}\n alt={'image'}\n />\n </View>\n </TouchableOpacity>\n );\n }\n return null;\n }\n\n renderTicks() {\n const { currentMessage } = this.props;\n if (this.props.renderTicks) {\n return this.props.renderTicks(currentMessage);\n }\n if (currentMessage.user._id !== this.props.user._id) {\n return null;\n }\n if (currentMessage.sent || currentMessage.received) {\n return (\n <View style={[styles.headerItem, styles.tickView]}>\n {currentMessage.sent && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n {currentMessage.received && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n </View>\n );\n }\n return null;\n }\n\n renderUsername() {\n const username = this.props.currentMessage.user.name;\n if (username) {\n const { containerStyle, wrapperStyle, ...usernameProps } = this.props;\n if (this.props.renderUsername) {\n return this.props.renderUsername(usernameProps);\n }\n return (\n <Text style={[styles.standardFont, styles.headerItem, styles.username, this.props.usernameStyle]}>\n {username}\n </Text>\n );\n }\n return null;\n }\n\n renderTime() {\n if (this.props.currentMessage.createdAt) {\n const { containerStyle, wrapperStyle, ...timeProps }: any = this.props;\n if (this.props.renderTime) {\n return this.props.renderTime(timeProps);\n }\n return (\n <Time\n {...timeProps}\n containerStyle={{ left: [styles.timeContainer] }}\n textStyle={{\n left: [styles.standardFont, styles.headerItem, styles.time, timeProps.textStyle],\n }}\n />\n );\n }\n return null;\n }\n\n renderCustomView() {\n if (this.props.renderCustomView) {\n return this.props.renderCustomView(this.props);\n }\n return null;\n }\n\n render() {\n const isSameThread =\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage);\n\n const messageHeader = isSameThread ? null : (\n <View style={styles.headerView}>\n {this.renderUsername()}\n {this.renderTime()}\n {this.renderTicks()}\n </View>\n );\n\n return (\n <View style={[styles.container, this.props.containerStyle]}>\n <TouchableOpacity disabled={true} accessibilityTraits=\"text\" {...this.props.touchableProps}>\n <View style={[styles.wrapper, this.props.wrapperStyle]}>\n <View>\n {this.renderCustomView()}\n {messageHeader}\n {this.renderMessageImage()}\n {this.renderMessageText()}\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n }\n}\n\n// Note: Everything is forced to be \"left\" positioned with this component.\n// The \"right\" position is only used in the default Bubble.\nconst styles = StyleSheet.create({\n standardFont: {\n fontSize: 15,\n },\n slackMessageText: {\n marginLeft: 0,\n marginRight: 0,\n },\n container: {\n flex: 1,\n alignItems: 'flex-start',\n },\n wrapper: {\n marginRight: 60,\n minHeight: 20,\n justifyContent: 'flex-start',\n },\n username: {\n fontWeight: 'bold',\n top: 0,\n paddingTop: 0,\n marginTop: 0,\n },\n time: {\n textAlign: 'left',\n fontSize: 12,\n },\n timeContainer: {\n marginLeft: 0,\n marginRight: 0,\n marginBottom: 0,\n },\n headerItem: {\n marginRight: 10,\n },\n headerView: {\n // Try to align it better with the avatar on Android.\n marginTop: Platform.OS === 'android' ? -2 : 0,\n flexDirection: 'row',\n alignItems: 'baseline',\n },\n /* eslint-disable react-native/no-color-literals */\n tick: {\n backgroundColor: 'transparent',\n color: 'white',\n },\n /* eslint-enable react-native/no-color-literals */\n tickView: {\n flexDirection: 'row',\n },\n slackImage: {\n borderRadius: 3,\n marginLeft: 8,\n marginRight: 0,\n },\n});\n\n// Bubble.contextTypes = {\n// actionSheet: PropTypes.func,\n// };\n\nBubble.defaultProps = {\n touchableProps: {},\n onLongPress: null,\n renderMessageImage: null,\n renderMessageText: null,\n renderCustomView: null,\n renderTime: null,\n currentMessage: {\n text: null,\n createdAt: null,\n image: null,\n },\n nextMessage: {},\n previousMessage: {},\n containerStyle: {},\n wrapperStyle: {},\n tickStyle: {},\n containerToNextStyle: {},\n containerToPreviousStyle: {},\n isShowImageViewer: false,\n setImageViewer: (obj: any, v: boolean) => null,\n};\n","/* eslint-disable no-underscore-dangle, no-use-before-define */\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { View, ViewPropTypes, StyleSheet } from 'react-native';\n\nimport { Avatar, Day, utils } from 'react-native-gifted-chat';\nimport Bubble from './SlackBubble';\n\nconst { isSameUser, isSameDay } = utils;\n\nexport default class Message extends React.Component<any> {\n static defaultProps: {\n renderAvatar: undefined;\n renderBubble: null;\n renderDay: null;\n currentMessage: {};\n nextMessage: {};\n previousMessage: {};\n user: {};\n containerStyle: {};\n isShowImageViewer:false,\n setImageViewer:(obj:any,v:boolean) => void,\n };\n getInnerComponentProps() {\n const { containerStyle, ...props } = this.props;\n return {\n ...props,\n position: 'left',\n isSameUser,\n isSameDay,\n };\n }\n\n renderDay() {\n if (this.props.currentMessage.createdAt) {\n const dayProps = this.getInnerComponentProps();\n if (this.props.renderDay) {\n return this.props.renderDay(dayProps);\n }\n return <Day {...dayProps} />;\n }\n return null;\n }\n\n renderBubble() {\n const bubbleProps = this.getInnerComponentProps();\n if (this.props.renderBubble) {\n return this.props.renderBubble(bubbleProps);\n }\n return <Bubble {...bubbleProps} isShowImageViewer={this.props.isShowImageViewer} setImageViewer={this.props.setImageViewer} />;\n }\n\n renderAvatar() {\n let extraStyle: any;\n if (\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage)\n ) {\n // Set the invisible avatar height to 0, but keep the width, padding, etc.\n extraStyle = { height: 0 };\n }\n\n const avatarProps: any = this.getInnerComponentProps();\n return (\n <Avatar\n {...avatarProps}\n showAvatarForEveryMessage={true}\n imageStyle={{\n left: [styles.slackAvatar, avatarProps.imageStyle, extraStyle],\n }}\n />\n );\n }\n\n render() {\n const marginBottom = isSameUser(this.props.currentMessage, this.props.nextMessage) ? 2 : 10;\n\n return (\n <View>\n {this.renderDay()}\n <View style={[styles.container, { marginBottom }, this.props.containerStyle]}>\n {this.renderAvatar()}\n {this.renderBubble()}\n </View>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n marginLeft: 8,\n marginRight: 0,\n },\n slackAvatar: {\n // The bottom should roughly line up with the first line of message text.\n height: 40,\n width: 40,\n borderRadius: 3,\n marginTop: 0,\n },\n});\n\nMessage.defaultProps = {\n renderAvatar: undefined,\n renderBubble: null,\n renderDay: null,\n currentMessage: {},\n nextMessage: {},\n previousMessage: {},\n user: {},\n containerStyle: {},\n isShowImageViewer:false,\n setImageViewer:(obj:any,v:boolean) => null,\n};\n","import SlackMessage from './SlackMessage';\nimport ImageViewerModal from './ImageViewerModal';\nexport { SlackMessage ,ImageViewerModal};\n","import { cleanEnv, num, str } from 'envalid';\n\nexport const config = cleanEnv(process['APP_ENV'] || process.env, {\n MESSAGES_PER_PAGE: num({ devDefault: 10, default: 20 }),\n FILES_PER_MESSAGE: num({ default: 10 }),\n INBOX_MESSEGE_PATH: str({ default: 'MainStack.Message' }),\n CALL_TO_ACTION_PATH: str({ default: 'MainStack.MyReservationDetails' }),\n CALL_TO_ACTION_BOX_BGCOLOR: str({ default: '#0084ff' }),\n CALL_TO_ACTION_BUTTON_BORDERCOLOR: str({ default: '#fff' }),\n CALL_TO_ACTION_TEXT_COLOR: str({ default: '#fff' }),\n});\n","export { config } from './config';\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Box, Button, HStack, Icon, Image, Spinner, Text, useColorModeValue, ScrollView } from 'native-base';\nimport { Platform, TouchableOpacity } from 'react-native';\nimport { useNavigation, useFocusEffect } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy } from 'lodash';\nimport * as ImagePicker from 'expo-image-picker';\nimport { encode as atob } from 'base-64';\nimport { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Actions, GiftedChat, IMessage, MessageText, Send } from 'react-native-gifted-chat';\nimport {\n useCheckForNewMessagesQuery,\n useGetAllUsersQuery,\n useMessagesQuery,\n useSendMessagesMutation,\n useViewChannelDetailQuery,\n useUploadFilesNative,\n} from '@messenger-box/platform-client';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { SlackMessage, ImageViewerModal } from '../components/SlackMessageContainer';\nimport CachedImage from '../components/CachedImage';\nconst {\n MESSAGES_PER_PAGE,\n CALL_TO_ACTION_BOX_BGCOLOR,\n CALL_TO_ACTION_PATH,\n CALL_TO_ACTION_BUTTON_BORDERCOLOR,\n CALL_TO_ACTION_TEXT_COLOR,\n} = config;\n\ninterface IMessageProps extends IMessage {\n type: string;\n propsConfiguration?: any;\n}\n\nexport interface AlertMessageAttachmentsInterface {\n title: string;\n isTitleHtml: boolean;\n icon: string;\n callToAction: {\n title: string;\n link: string;\n };\n}\n\nconst ConversationViewComponent = ({ channelId }: any) => {\n const [channelToTop, setChannelToTop] = useState(0);\n const [channelMessages, setChannelMessages] = useState<any>([]);\n const auth: any = useSelector(userSelector);\n const [totalCount, setTotalCount] = useState<any>(0);\n const [selectedImage, setImage] = useState<string>('');\n const [loadingOldMessages, setLoadingOldMessages] = useState(false);\n const color = useColorModeValue('white', 'black');\n // const color = useColorModeValue('black', 'white');\n const navigation = useNavigation<any>();\n const [files, setFiles] = useState<File[]>([]);\n const [images, setImages] = useState<ImagePicker.ImageInfo[]>([]);\n const [msg, setMsg] = useState<string>('');\n const [loading, setLoading] = useState(false);\n const [imageLoading, setImageLoading] = useState(false);\n const [expoTokens, setExpoTokens] = useState<any[]>([]);\n const [isShowImageViewer, setImageViewer] = useState<boolean>(false);\n const [imageObject, setImageObject] = useState<any>({});\n\n const { startUpload } = useUploadFilesNative();\n\n const [sendMsg] = useSendMessagesMutation();\n\n const {\n data,\n loading: messageLoading,\n refetch,\n }: any = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data: channelsDetail,\n loading: channelLoading,\n refetch: refetchChannelDetail,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n });\n\n // const { data: users } = useGetAllUsersQuery();\n\n const { data: checkForMessages }: any = useCheckForNewMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n },\n skip: !channelId,\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchChannelDetail({ id: channelId?.toString() });\n refetch({\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n }).then(({ data }) => {\n if (!data?.messages) {\n return;\n }\n const { data: messages, totalCount }: any = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n setTotalCount(0);\n setChannelMessages([]);\n };\n }, []),\n );\n\n React.useEffect(() => {\n if (channelsDetail?.viewChannelDetail?.members?.length) {\n const channelData: any =\n channelsDetail?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];\n const tokens: any =\n channelData\n ?.map(\n (u: any) =>\n u?.user?.tokens\n ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')\n ?.map((et: any) => et?.token) ?? [],\n )\n ?.flat(1)\n ?.filter((t: any) => t)\n ?.filter((value: any, index: any, array: any) => array.indexOf(value) === index) ?? [];\n\n if (tokens?.length > 0) setExpoTokens(tokens);\n }\n }, [channelsDetail]);\n\n React.useEffect(() => {\n if (selectedImage) setImageLoading(false);\n }, [selectedImage]);\n\n // const currentUser = useMemo(\n // () => users?.getUsers?.find(({ alias }: any) => alias?.includes(auth?.auth0UserId)),\n // [users, auth],\n // );\n\n // useEffect(() => {\n // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // if (messages && messages.length > 0) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // }\n // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data, loadingOldMessages, channelMessages]);\n\n useEffect(() => {\n if (data?.messages?.data) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0 && (loadingOldMessages || channelMessages.length === 0)) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n setLoadingOldMessages(false);\n }\n if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n }\n }, [data]);\n\n // useEffect(() => {\n // if (data?.messages?.data) {\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // console.log('messeageTotalCount',messeageTotalCount)\n // console.log('totalCount',totalCount)\n // if (messages && messages.length > 0) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // }\n // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data]);\n\n // useEffect(() => {\n // if (checkForMessages?.messages?.totalCount > totalCount) {\n // const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;\n // refetch({\n // limit: numberOfNewMessages,\n // }).then(({ data }) => {\n // if (!data?.messages) {\n // return;\n // }\n // const { data: messages, totalCount }:any = data.messages;\n // setTotalCount(totalCount);\n // setChannelMessages((oldMessages:any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n // });\n // }\n // }, [checkForMessages, totalCount]);\n\n useEffect(() => {\n if (checkForMessages?.messages?.totalCount > totalCount) {\n const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;\n console.log('new msg check');\n refetch({\n limit: numberOfNewMessages,\n }).then(({ data }) => {\n if (!data?.messages) {\n return;\n }\n const { data: messages, totalCount }: any = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n }\n }, [checkForMessages, totalCount]);\n\n // const onFetchOld = useCallback(() => {\n // // if (data?.messages?.totalCount > channelMessages.length) {\n // //if(channelMessages.length !== data?.messages?.totalCount){\n // if(totalCount > channelMessages.length){\n // setLoadingOldMessages(true);\n // refetch({ skip: channelMessages.length });\n // }\n // }, [data, channelMessages]);\n\n // const onFetchOld = () => {\n // // if (data?.messages?.totalCount > channelMessages.length) {\n // //if(channelMessages.length !== data?.messages?.totalCount){\n // if(totalCount > channelMessages.length){\n // setLoadingOldMessages(true);\n // refetch({ skip: channelMessages.length });\n // }\n // };\n\n const onFetchOld = useCallback(() => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadingOldMessages(true);\n refetch({ skip: channelMessages.length });\n }\n }, [data, channelMessages]);\n\n // const onFetchOld = () => {\n // if(totalCount > channelMessages.length){\n // console.log('totalCount',totalCount)\n // console.log('channelMessages.length',channelMessages.length)\n // setLoadingOldMessages(true);\n // refetch({\n // skip: channelMessages.length\n // });\n // }\n // };\n\n // const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {\n // return contentOffset.y <= 100; // 100px from top\n // };\n\n const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {\n const paddingToTop = 60;\n return contentSize.height - layoutMeasurement.height - paddingToTop <= contentOffset.y;\n };\n\n const dataURLtoFile = (dataurl: any, filename: any) => {\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], filename, { type: mime });\n };\n\n const onSelectImages = async () => {\n setImageLoading(true);\n let imageSource: any = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1,\n base64: true,\n });\n if (!imageSource.cancelled) {\n const image = 'data:image/jpeg;base64,' + imageSource?.base64;\n setImage(image);\n const file = dataURLtoFile(image, 'inputImage.jpg');\n setFiles((files) => files.concat(file));\n setImages((images) => images.concat(imageSource as ImagePicker.ImageInfo));\n }\n if (imageSource.cancelled) setLoading(false);\n };\n\n const sendPushNotification = async (title: String, body: String, data: any, to: any) => {\n try {\n const response = await fetch('https://exp.host/--/api/v2/push/send/', {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Accept-Encoding': 'gzip, deflate',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n to: to,\n data: data,\n title: title,\n body: body,\n sound: Platform.OS === 'android' ? undefined || null : 'default',\n }),\n });\n const result: any = await response.json();\n console.log('expo api response', result);\n } catch (error) {\n console.error('Error:', error);\n }\n\n // fetch('https://exp.host/--/api/v2/push/send/', {\n // method: 'POST',\n // headers: {\n // Accept: 'application/json',\n // 'Accept-Encoding': 'gzip, deflate',\n // 'Content-Type': 'application/json',\n // },\n // body: JSON.stringify({\n // to: to,\n // data: data,\n // title: title,\n // body: body,\n // sound: Platform.OS === 'android' ? null : 'default',\n // }),\n // });\n };\n\n // const handleSend = useCallback(\n // async (message: string) => {\n // // if (!(message && channelId)) {\n // // return;\n // // }\n\n // if (!channelId) return;\n // if (!message && message != ' ' && images.length == 0) return;\n\n // setLoading(true);\n // const { data } = await sendMsg({\n // variables: {\n // channelId,\n // content: message,\n // },\n // update: (cache, { data, errors }) => {\n // if (!data || errors) {\n // setLoading(false);\n // return;\n // }\n // setChannelMessages((messages) => [...messages, data?.sendMessage]);\n // setTotalCount((t) => t + 1);\n // setChannelToTop(channelToTop + 1);\n // setLoading(false);\n // const title: String = currentUser?.givenName+' '+currentUser?.familyName+' in Followup Chat';\n // const body: String = message;\n // const notificationData: any = {\n // url: config.INBOX_MESSEGE_PATH,\n // params: { channelId, hideTabBar: true },\n // screen: 'DialogMessages',\n // };\n // console.log('expo to',JSON.stringify(expoTokens));\n // if (expoTokens?.length > 0) {\n // const to: any = expoTokens?.length > 0 ? expoTokens : [];\n\n // sendPushNotification(title, body, notificationData, to);\n // }\n\n // setMsg('');\n // },\n // });\n // if (images && images.length > 0 && data?.sendMessage?.id) {\n // const { id: postId } = data.sendMessage;\n // setLoading(true);\n // const uploadResponse = await startUpload({\n // file: images,\n // saveUploadedFile: {\n // variables: {\n // postId,\n // },\n // },\n // createUploadLink: {\n // variables: {\n // postId,\n // },\n // },\n // });\n // if (uploadResponse?.error) setLoading(false);\n // const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\n // if (uploadResponse.data) {\n // setImage('');\n // setFiles([]);\n // setImages([]);\n // setLoading(false);\n // }\n // setChannelMessages((messages) =>\n // messages.map((message) => {\n // if (message.id === postId) {\n // return {\n // ...message,\n // files: {\n // totalCount: uploadedFiles.length,\n // data: uploadedFiles,\n // },\n // };\n // }\n // return message;\n // }),\n // );\n // }\n // },\n // [setChannelMessages, currentUser, channelId, images,expoTokens],\n // );\n\n const handleSend = async (message: string) => {\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n setLoading(true);\n const { data } = await sendMsg({\n variables: {\n channelId,\n content: message,\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n setChannelMessages((messages: any) => [...messages, data?.sendMessage]);\n setTotalCount((t: any) => t + 1);\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n const givenName = auth?.profile?.given_name ?? '';\n const familyName = auth?.profile?.family_name ?? '';\n const fullName = givenName ? givenName + ' ' + familyName : '';\n const title: String = fullName ? fullName + ' in Followup Chat' : 'Followup Chat';\n const body: String = message;\n const notificationData: any = {\n url: config.INBOX_MESSEGE_PATH,\n params: { channelId, hideTabBar: true },\n screen: 'DialogMessages',\n };\n console.log('expo to', JSON.stringify(expoTokens));\n if (expoTokens?.length > 0) {\n const to: any = expoTokens?.length > 0 ? expoTokens : [];\n\n sendPushNotification(title, body, notificationData, to);\n }\n },\n });\n if (images && images.length > 0 && data?.sendMessage?.id) {\n const { id: postId } = data.sendMessage;\n setLoading(true);\n const uploadResponse = await startUpload({\n file: images,\n saveUploadedFile: {\n variables: {\n postId,\n },\n },\n createUploadLink: {\n variables: {\n postId,\n },\n },\n });\n if (uploadResponse?.error) setLoading(false);\n const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\n if (uploadResponse.data) {\n setImage('');\n setFiles([]);\n setImages([]);\n setLoading(false);\n }\n setChannelMessages((messages: any) =>\n messages.map((message: any) => {\n if (message.id === postId) {\n return {\n ...message,\n files: {\n totalCount: uploadedFiles.length,\n data: uploadedFiles,\n },\n };\n }\n return message;\n }),\n );\n }\n };\n\n const messageList = useMemo(() => {\n let currentDate = '';\n let res: any = [];\n if (channelMessages.length) {\n orderBy(channelMessages, ['createdAt'], ['desc']).map((msg) => {\n let message: IMessageProps = {\n _id: '',\n text: '',\n createdAt: 0,\n user: {\n _id: '',\n name: '',\n avatar: '',\n },\n type: '',\n };\n const date = new Date(msg.createdAt);\n message._id = msg.id;\n message.text = msg.message;\n message.createdAt = date;\n (message.user = {\n _id: msg.author.id,\n name: msg.author.givenName + ' ' + msg.author.familyName,\n avatar: msg.author?.picture,\n }),\n (message.image = msg.files?.data[0]?.url),\n (message.sent = msg?.isDelivered),\n (message.received = msg?.isRead);\n message.type = msg?.type;\n message.propsConfiguration = msg?.propsConfiguration;\n res.push(message);\n });\n }\n return res;\n }, [channelMessages]);\n\n const renderSend = (props) => {\n return (\n <Send {...props}>\n <Box>\n <MaterialCommunityIcons\n name=\"send-circle\"\n style={{ marginBottom: 5, marginRight: 5 }}\n size={32}\n color=\"#2e64e5\"\n />\n </Box>\n </Send>\n );\n };\n\n const renderMessageText = (props: any) => {\n const { currentMessage } = props;\n if (currentMessage.type === 'ALERT') {\n const attachment = currentMessage?.propsConfiguration?.contents?.attachment;\n let action: string = '';\n let actionId: any = '';\n if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n // if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n // action = 'm-reservation-detail';\n // actionId = attachment?.callToAction?.link.split('/').pop();\n // }\n return (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n {attachment?.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n />\n </Box>\n );\n } else {\n return <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />;\n }\n };\n\n const renderActions = (props) => {\n return (\n <Actions\n {...props}\n icon={() => <Icon as={Ionicons} name={'image'} size={'lg'} color={'black'} onPress={onSelectImages} />}\n />\n );\n };\n\n const renderAccessory = (props) => {\n return (\n <Box>\n {selectedImage !== '' ? (\n <HStack alignItems={'center'}>\n <Image ml={3} key={selectedImage} alt={'image'} source={{ uri: selectedImage }} size={'xs'} />\n <Button\n variant={'ghost'}\n colorScheme={'secondary'}\n onPress={() => {\n setFiles([]);\n setImage('');\n setImages([]);\n }}\n >\n Cancel\n </Button>\n </HStack>\n ) : null}\n </Box>\n );\n };\n\n const setImageViewerObject = (obj: any, v: boolean) => {\n setImageObject(obj);\n setImageViewer(v);\n };\n\n const modalContent = React.useMemo(() => {\n if (!imageObject) return <></>;\n const { image, _id } = imageObject;\n return (\n <CachedImage\n style={{ width: '100%', height: '100%' }}\n resizeMode={'cover'}\n // cacheKey={`${_id}-conversation-modal-image-key`}\n cacheKey={`${_id}-slack-bubble-imageKey`}\n source={{\n uri: image,\n //headers: `Authorization: Bearer ${token}`,\n expiresIn: 86400,\n }}\n alt={'image'}\n />\n );\n }, [imageObject]);\n\n const renderMessage = (props: any) => {\n // const {\n // currentMessage: { text: currText },\n // } = props;\n\n //let messageTextStyle: any;\n\n // Make \"pure emoji\" messages much bigger than plain text.\n // if (currText && emojiUtils.isPureEmojiString(currText)) {\n // messageTextStyle = {\n // fontSize: 28,\n // // Emoji get clipped if lineHeight isn't increased; make it consistent across platforms.\n // lineHeight: Platform.OS === 'android' ? 34 : 30,\n // }\n // }\n\n // return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;\n return <SlackMessage {...props} isShowImageViewer={isShowImageViewer} setImageViewer={setImageViewerObject} />;\n };\n\n return (\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\n // listViewProps={{\n // scrollEventThrottle: 400,\n // onScroll: ({ nativeEvent }) => { console.log('scroll')\n // if (!loadingOldMessages && isCloseToTop(nativeEvent)) {\n // onFetchOld();\n // }\n // }\n // }}\n // onSend={(messages) => {\n // handleSend(messages[0]?.text ?? ' ');\n // }}\n onSend={(messages) => handleSend(messages[0]?.text ?? ' ')}\n text={msg ? msg : ' '}\n onInputTextChanged={(text) => setMsg(text)}\n renderFooter={() => (loading ? <Spinner /> : imageLoading ? <Spinner /> : '')}\n scrollToBottom\n user={{\n // _id: currentUser?.id || '',\n _id: auth?.id || '',\n }}\n isTyping={true}\n alwaysShowSend={loading ? false : true}\n onLoadEarlier={onFetchOld}\n infiniteScroll={true}\n renderSend={renderSend}\n // loadEarlier={checkForMessages?.messages?.totalCount > totalCount}\n //loadEarlier={channelMessages.length !== data?.messages?.totalCount}\n // loadEarlier={totalCount > channelMessages.length}\n loadEarlier={data?.messages?.totalCount > channelMessages.length}\n renderMessageText={renderMessageText}\n minInputToolbarHeight={50}\n renderActions={renderActions}\n renderAccessory={renderAccessory}\n renderMessage={renderMessage}\n renderChatFooter={() => (\n <ImageViewerModal\n isVisible={isShowImageViewer}\n setVisible={setImageViewer}\n modalContent={modalContent}\n />\n )}\n lightboxProps={{\n underlayColor: 'transparent',\n springConfig: { tension: 90000, friction: 90000 },\n disabled: true,\n }}\n />\n );\n};\n\nexport const ConversationView = React.memo(ConversationViewComponent);\n","import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center, Spinner } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetChannelsByUserQuery } from '@messenger-box/platform-client';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\nimport { config } from '../config';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nconst DialogsComponent = (props: InboxProps) => {\n const { channelFilters, channelRole } = props;\n const { params } = useRoute<any>();\n const auth = useSelector(userSelector);\n const dispatch = useDispatch();\n const navigation = useNavigation<any>();\n const isFocused = useIsFocused();\n const [refreshing, setRefresh] = useState<boolean>(false);\n // const [userDirectChannel, setUserDirectChannel] = useState<any>([]);\n\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n },\n onCompleted:(data:any)=>{\n setRefresh(false);\n }\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n setRefresh(false);\n getChannelsRefetch({ role: channelRole, criteria: channelFilters });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [channelFilters]),\n );\n\n const channels = React.useMemo(() => {\n if (!userChannels?.channelsByUser?.length) return null;\n let uChannels: any =\n userChannels?.channelsByUser?.filter((c: any) =>\n c.members.some((u: any) => u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n ) ?? [];\n return uChannels || [];\n }, [userChannels]);\n\n // useEffect(() => {\n // setTimeout(() => {\n // dispatch({\n // type: CHANGE_SETTINGS_ACTION,\n // payload: {\n // footerRender: false,\n // },\n // } as any);\n // }, 0);\n // return () => {\n // dispatch({\n // type: CHANGE_SETTINGS_ACTION,\n // payload: {\n // footerRender: true,\n // },\n // } as any);\n // };\n // }, []);\n\n // useEffect(() => {\n // if (userChannels?.channelsByUser) {\n // if (userChannels?.channelsByUser?.length == 0) {\n // setUserDirectChannel([]);\n // }\n // //Direct channel\n // let userDirectChannels: any =\n // userChannels?.channelsByUser\n // ?.filter((i: any) => i.type == 'DIRECT')\n // ?.filter((c: any) =>\n // c.members.some((u: any) => u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n // ) ?? [];\n\n // if (userDirectChannels?.length > 0) setUserDirectChannel(userDirectChannels);\n // }\n // }, [userChannels?.channelsByUser]);\n\n const handleSelectChannel = useCallback((id: any, title: any) => {\n if (params?.channelId) {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: params?.channelId,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n title: title,\n hideTabBar: true,\n });\n }\n }, []);\n\n const handleRefresh = useCallback(() => {\n //if(userChannels?.channelsByUser?.length != channels?.length)setRefresh(true);\n getChannelsRefetch({ role: channelRole, criteria: channelFilters });\n },[])\n\n return (\n <Box p={2}>\n <FlatList\n data={channels && channels?.length > 0 ? channels : []}\n onRefresh={handleRefresh}\n refreshing={userChannelsLoading}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <DialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n ListEmptyComponent={() => (\n <>\n {userChannelsLoading ? (\n <Spinner />\n ) : (\n <Box p={5}>\n <Heading>Chat</Heading>\n <Input\n height={50}\n mt={3}\n placeholder=\"Search\"\n borderRadius={50}\n borderColor={'gray.200'}\n borderWidth={2}\n />\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any messages yet!</Text>\n </Center>\n </Box>\n )}\n </>\n )}\n keyExtractor={(item, index) => 'key' + index}\n />\n </Box>\n );\n};\n\nexport const Dialogs = React.memo(DialogsComponent);\n","export * from './inbox/Inbox';\nexport * from './inbox/DialogMessages';","module.exports = require(\"@adminide-stack/user-auth0-client\");","module.exports = require(\"@common-stack/client-react\");","module.exports = require(\"@expo/vector-icons\");","module.exports = require(\"@messenger-box/platform-client\");","module.exports = require(\"@react-navigation/native\");","module.exports = require(\"base-64\");","module.exports = require(\"date-fns\");","module.exports = require(\"envalid\");","module.exports = require(\"expo-file-system\");","module.exports = require(\"expo-image-picker\");","module.exports = require(\"lodash\");","module.exports = require(\"native-base\");","module.exports = require(\"react\");","module.exports = require(\"react-native\");","module.exports = require(\"react-native-gifted-chat\");","module.exports = require(\"react-redux\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@messenger-box/platform-mobile/./src/index.ts","webpack://@messenger-box/platform-mobile/./src/module.ts","webpack://@messenger-box/platform-mobile/./src/navigation/InboxNavigation.tsx","webpack://@messenger-box/platform-mobile/./src/navigation/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/Inbox.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/CachedImage/consts.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/CachedImage/index.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/DialogsListItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/ImageViewerModal.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackBubble.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/SlackMessage.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/SlackMessageContainer/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/config.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/config/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ConversationView.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/Dialogs.tsx","webpack://@messenger-box/platform-mobile/./src/screens/index.ts","webpack://@messenger-box/platform-mobile/external commonjs \"@adminide-stack/user-auth0-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@common-stack/client-react\"","webpack://@messenger-box/platform-mobile/external commonjs \"@expo/vector-icons\"","webpack://@messenger-box/platform-mobile/external commonjs \"@messenger-box/platform-client\"","webpack://@messenger-box/platform-mobile/external commonjs \"@react-navigation/native\"","webpack://@messenger-box/platform-mobile/external commonjs \"base-64\"","webpack://@messenger-box/platform-mobile/external commonjs \"date-fns\"","webpack://@messenger-box/platform-mobile/external commonjs \"envalid\"","webpack://@messenger-box/platform-mobile/external commonjs \"expo-file-system\"","webpack://@messenger-box/platform-mobile/external commonjs \"expo-image-picker\"","webpack://@messenger-box/platform-mobile/external commonjs \"lodash\"","webpack://@messenger-box/platform-mobile/external commonjs \"native-base\"","webpack://@messenger-box/platform-mobile/external commonjs \"react\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-native-gifted-chat\"","webpack://@messenger-box/platform-mobile/external commonjs \"react-redux\"","webpack://@messenger-box/platform-mobile/webpack/bootstrap","webpack://@messenger-box/platform-mobile/webpack/before-startup","webpack://@messenger-box/platform-mobile/webpack/startup","webpack://@messenger-box/platform-mobile/webpack/after-startup"],"sourcesContent":["import PlatformModule from './module';\n\nimport { Feature } from '@common-stack/client-react';\n\nexport default new Feature(PlatformModule);\nexport * from './navigation';\nexport * from './screens';\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { Feature } from '@common-stack/client-react';\nimport { schema, typePolicies, dataIdFromObject } from '@messenger-box/platform-client';\n\nexport default new Feature({\n dataIdFromObject,\n clientStateParams: { typeDefs: schema, typePolicies },\n});\n","import * as React from 'react';\nimport { Feature } from '@common-stack/client-react';\nimport { DialogMessages } from '../screens/inbox/DialogMessages';\nimport { IconButton, Icon } from 'native-base';\nimport { MaterialIcons } from '@expo/vector-icons';\n\nconst inboxConfig = {\n ['//message']: {\n exact: true,\n name: 'Message',\n props: {\n initialParams: { channelId: null },\n component: (props: any) => <DialogMessages {...props} channelId={props?.route?.params?.channelId} />,\n options: ({ navigation }: any) => {\n return {\n headerShown: true,\n title: 'Inbox',\n headerBackTitleVisible: false,\n gestureEnabled: false,\n swipeEnabled: false,\n headerLeft: (props: any) => (\n <IconButton\n onPress={() => navigation.goBack()}\n icon={<Icon size={'lg'} as={MaterialIcons} name=\"arrow-back-ios\" color={'black'} />}\n />\n ),\n };\n },\n },\n },\n};\n\nexport const inboxFeature = new Feature({\n routeConfig: inboxConfig as any,\n});\n","export * from './InboxNavigation';\n","import * as React from 'react';\nimport { Box } from 'native-base';\nimport { ConversationView } from './containers/ConversationView';\n\nexport function DialogMessages({ channelId }) {\n return (\n <Box bg={'white'} flex={1} pt={5}>\n <ConversationView channelId={channelId} />\n </Box>\n );\n}","import * as React from 'react';\nimport { Box } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\n\nexport const Inbox = (props:any) => {\n const { channelFilters, channelRole } = props;\n return (\n <Box bg={'white'} flex={1}>\n <Dialogs channelFilters={channelFilters} channelRole={channelRole} {...props} />\n </Box>\n );\n};\n","import * as FileSystem from \"expo-file-system\"\n\nexport const IMAGE_CACHE_FOLDER = `${FileSystem.cacheDirectory}`\n// export const IMAGE_CACHE_FOLDER = `${FileSystem.documentDirectory}images/`\nexport default IMAGE_CACHE_FOLDER\n","import React, { useEffect, useState, useRef } from 'react';\nimport { Image } from 'native-base';\n// import { Image } from \"react-native\"\nimport * as FileSystem from 'expo-file-system';\n\nimport * as CONST from './consts';\n\nconst CachedImage = (props: any) => {\n const { source, cacheKey, placeholderContent } = props;\n const { uri, headers, expiresIn } = source;\n const fileURI = `${CONST.IMAGE_CACHE_FOLDER}${cacheKey}`;\n\n const [imgUri, setImgUri] = useState<any>(fileURI);\n\n const componentIsMounted = useRef(true);\n const requestOption = headers ? { headers } : {};\n\n const _callback = (downloadProgress: any) => {\n if (componentIsMounted.current === false) {\n downloadResumableRef.current.pauseAsync();\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n };\n\n const downloadResumableRef = useRef(FileSystem.createDownloadResumable(uri, fileURI, requestOption, _callback));\n\n useEffect(() => {\n loadImage();\n return () => {\n componentIsMounted.current = false;\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const loadImage = async () => {\n try {\n // Use the cached image if it exists\n const metadata: any = await FileSystem.getInfoAsync(fileURI);\n const expired = expiresIn && new Date().getTime() / 1000 - metadata?.modificationTime > expiresIn;\n // console.log({expiresIn, expired})\n\n // console.log({modificationTime: metadata.modificationTime, currentTime: new Date().getTime() / 1000})\n // console.log({metadata})\n if (!metadata.exists || metadata?.size === 0 || expired) {\n if (componentIsMounted.current) {\n setImgUri(null);\n\n if (expired) {\n await FileSystem.deleteAsync(fileURI, { idempotent: true });\n }\n // download to cache\n setImgUri(null);\n\n const response: any = await downloadResumableRef.current.downloadAsync();\n if (componentIsMounted.current && response.status === 200) {\n setImgUri(`${fileURI}?`); // deep clone to force re-render\n }\n if (response.status !== 200) {\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n }\n }\n } catch (err) {\n // console.log({ err })\n }\n };\n // console.log({placeholderContent})\n if (!imgUri) return placeholderContent || null;\n\n return (\n <Image\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n source={{\n ...source,\n uri: imgUri,\n }}\n />\n );\n};\n\nexport const CacheManager = {\n addToCache: async ({ file, key }: any) => {\n await FileSystem.copyAsync({\n from: file,\n to: `${CONST.IMAGE_CACHE_FOLDER}${key}`,\n });\n // const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`)\n // return uri\n const uri = await CacheManager.getCachedUri({ key });\n return uri;\n },\n\n getCachedUri: async ({ key }: any) => {\n const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`);\n return uri;\n },\n\n downloadAsync: async ({ uri, key, options }: any) => {\n return await FileSystem.downloadAsync(uri, `${CONST.IMAGE_CACHE_FOLDER}${key}`, options);\n },\n};\n\nexport default CachedImage;\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, HStack, Stack, Box, Avatar, View } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { IChannel, IUserAccount, useMessagesQuery, useUserAccountQuery } from '@messenger-box/platform-client';\nimport { startCase } from 'lodash';\n\nconst createdAtText = (value: string) => {\n if (!value) return '';\n let date = new Date(value);\n if (isToday(date)) return 'Today';\n if (isYesterday(date)) return 'Yesterday';\n return format(new Date(value), 'MMM dd, yyyy');\n};\n\nexport interface IDialogListChannel extends IChannel {\n users: IUserAccount[];\n}\n\nexport interface IDialogListItemProps {\n currentUser?: any;\n users?: any;\n selectedChannelId?: any;\n channel?: any;\n onOpen: (id: any, title: any) => void;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const DialogsListItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchMessages({ channelId: channel?.id?.toString(), limit: 1 });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const lastMessage = useMemo(() => {\n if (!messagesQuery?.messages?.data?.length) {\n return null;\n }\n const { data } = messagesQuery.messages;\n return data[data.length - 1];\n }, [messagesQuery]);\n\n const channelMembers = useMemo(\n () =>\n channel?.members\n ?.filter((ch: any) => ch?.user?.id != currentUser?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null,\n [currentUser, channel],\n );\n\n const title = useMemo(\n () =>\n channelMembers\n ?.map((u: any) => u?.givenName + ' ' + u?.familyName ?? '')\n ?.filter((mu: any) => mu)\n ?.join(', ') ?? '',\n [channelMembers],\n );\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, title)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\n flex={1}\n _dark={{\n borderColor: 'coolGray.600',\n backgroundColor: 'gray.700',\n }}\n _web={{\n shadow: 2,\n borderWidth: 0,\n }}\n _light={{\n backgroundColor: 'gray.50',\n }}\n >\n <HStack\n // px={2}\n // pl={3}\n py={3}\n space={2}\n w={'100%'}\n flex={1}\n direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={0.1} alignItems={'flex-start'} pl={3}>\n <Avatar.Group\n _avatar={{\n size: 'sm',\n bg: 'transparent',\n }}\n >\n {channelMembers &&\n channelMembers?.length > 0 &&\n channelMembers?.slice(0, 2)?.map((ch: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={9}\n top={i == 1 ? 4 : 0}\n right={i == 1 ? -2 : 0}\n zIndex={i == 1 ? 5 : 1}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: ch?.picture,\n }}\n >\n {startCase(ch?.username?.charAt(0))}\n {channelMembers?.length == 1 && (\n <Avatar.Badge bg=\"green.800\" bottom={-4} right={-4} />\n )}\n </Avatar>\n ))}\n </Avatar.Group>\n </Box>\n <Box flex={0.9}>\n <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack>\n {/* <Text\n flex={1}\n color=\"gray.600\"\n p={0}\n m={0}\n w={'100%'}\n justifyContent={''}\n fontSize=\"lg\"\n fontWeight=\"semibold\"\n >\n {title}\n </Text> */}\n {/* <Text flex={0.1} color=\"gray.600\">\n {lastMessage?.message ?? ''}\n </Text> */}\n </Box>\n {/* <Text flex={0.2} color=\"gray.500\">\n {lastMessage ? createdAtText(lastMessage?.createdAt) : ''}\n </Text> */}\n </HStack>\n </Pressable>\n );\n};\n\nexport const DialogsListItem = React.memo(DialogsListItemComponent);\n","import React, {useState} from 'react';\nimport {Alert, Modal, StyleSheet, Text, Pressable, View,SafeAreaView,StatusBar} from 'react-native';\n\nconst ImageViewerModal = ({children,isVisible=false,setVisible,modalContent=null}:any) => {\n \n return (\n <Modal\n animationType=\"slide\"\n // transparent={true}\n visible={isVisible}\n presentationStyle={'fullScreen'}\n style={{flex:1}}\n onRequestClose={() => {\n setVisible(false);\n }}>\n <View style={styles.container}> \n <View style={styles.headerView}>\n {/* <View><Text></Text></View>\n <View><Text></Text></View> */}\n <View style={{alignSelf:'flex-end',paddingRight:5}} > \n <Pressable\n style={[styles.button, styles.buttonClose]}\n onPress={() => setVisible(false)}>\n <Text style={styles.headerTextStyle}>X</Text>\n </Pressable></View>\n </View>\n <View style={styles.centeredView}>\n {modalContent ? modalContent : children}\n </View>\n <View style={styles.footerView}>\n\n </View>\n </View>\n </Modal>\n );\n};\n\nconst styles = StyleSheet.create({\n container:{\n flex:1,\n },\n headerView:{\n width:'100%',\n alignItems: 'center',\n justifyContent:'space-between',\n // backgroundColor:'rgba(r, g, b, a)',\n backgroundColor:'#000',\n paddingTop:50,\n paddingBottom:10,\n },\n centeredView: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'white',\n\n borderRadius: 20,\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n footerView:{\n minHeight:100,\n backgroundColor:'#000'\n },\n modalView: {\n flex:1,\n backgroundColor: 'white',\n borderRadius: 20,\n alignItems: 'center',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n button: {\n borderRadius: 20,\n padding: 10,\n elevation: 2,\n },\n buttonOpen: {\n backgroundColor: '#F194FF',\n },\n buttonClose: {\n backgroundColor: 'transparent',\n },\n textStyle: {\n color: 'white',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n headerTextStyle:{\n color: '#fff',\n // fontWeight: 'bold',\n textAlign: 'center',\n fontSize:20,\n },\n modalText: {\n marginBottom: 15,\n textAlign: 'center',\n },\n});\n\nexport default ImageViewerModal;","/* eslint-disable no-underscore-dangle, no-use-before-define */\nimport React from 'react';\nimport { Text, StyleSheet, TouchableOpacity, View, Platform, Dimensions } from 'react-native';\n\nimport { MessageText, MessageImage, Time, utils } from 'react-native-gifted-chat';\nimport CachedImage from '../CachedImage';\nconst { isSameUser, isSameDay } = utils;\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nexport default class Bubble extends React.Component<any> {\n static defaultProps: {\n touchableProps: {};\n onLongPress: null;\n renderMessageImage: null;\n renderMessageText: null;\n renderCustomView: null;\n renderTime: null;\n currentMessage: { text: null; createdAt: null; image: null };\n nextMessage: {};\n previousMessage: {};\n containerStyle: {};\n wrapperStyle: {};\n tickStyle: {};\n containerToNextStyle: {};\n containerToPreviousStyle: {};\n isShowImageViewer: false;\n setImageViewer: (obj: any, v: boolean) => void;\n };\n static propTypes: any;\n constructor(props: any) {\n super(props);\n }\n\n renderMessageText() {\n if (this.props.currentMessage.text) {\n const { containerStyle, wrapperStyle, messageTextStyle, ...messageTextProps } = this.props;\n if (this.props.renderMessageText) {\n return this.props.renderMessageText(messageTextProps);\n }\n return (\n <MessageText\n {...messageTextProps}\n textStyle={{\n left: [\n styles.standardFont,\n styles.slackMessageText,\n messageTextProps.textStyle,\n messageTextStyle,\n ],\n }}\n />\n );\n }\n return null;\n }\n\n renderMessageImage() {\n if (this.props.currentMessage.image) {\n const { containerStyle, wrapperStyle, ...messageImageProps } = this.props;\n if (this.props.renderMessageImage) {\n return this.props.renderMessageImage(messageImageProps);\n }\n const { image, _id } = messageImageProps?.currentMessage;\n\n return (\n <TouchableOpacity onPress={() => this.props.setImageViewer(messageImageProps?.currentMessage, true)}>\n <View\n style={{\n width: windowWidth - (windowWidth - 150),\n height: windowHeight - (windowHeight - 100),\n }}\n >\n {/* <MessageImage\n {...messageImageProps}\n imageStyle={[styles.slackImage, messageImageProps.imageStyle]}\n /> */}\n <CachedImage\n style={[styles.slackImage, { width: '100%', height: '100%' }]}\n cacheKey={`${_id}-slack-bubble-imageKey`}\n source={{\n uri: image,\n //headers: `Authorization: Bearer ${token}`,\n expiresIn: 86400,\n }}\n resizeMode={'cover'}\n alt={'image'}\n />\n </View>\n </TouchableOpacity>\n );\n }\n return null;\n }\n\n renderTicks() {\n const { currentMessage } = this.props;\n if (this.props.renderTicks) {\n return this.props.renderTicks(currentMessage);\n }\n if (currentMessage.user._id !== this.props.user._id) {\n return null;\n }\n if (currentMessage.sent || currentMessage.received) {\n return (\n <View style={[styles.headerItem, styles.tickView]}>\n {currentMessage.sent && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n {currentMessage.received && (\n <Text style={[styles.standardFont, styles.tick, this.props.tickStyle]}>✓</Text>\n )}\n </View>\n );\n }\n return null;\n }\n\n renderUsername() {\n const username = this.props.currentMessage.user.name;\n if (username) {\n const { containerStyle, wrapperStyle, ...usernameProps } = this.props;\n if (this.props.renderUsername) {\n return this.props.renderUsername(usernameProps);\n }\n return (\n <Text style={[styles.standardFont, styles.headerItem, styles.username, this.props.usernameStyle]}>\n {username}\n </Text>\n );\n }\n return null;\n }\n\n renderTime() {\n if (this.props.currentMessage.createdAt) {\n const { containerStyle, wrapperStyle, ...timeProps }: any = this.props;\n if (this.props.renderTime) {\n return this.props.renderTime(timeProps);\n }\n return (\n <Time\n {...timeProps}\n containerStyle={{ left: [styles.timeContainer] }}\n textStyle={{\n left: [styles.standardFont, styles.headerItem, styles.time, timeProps.textStyle],\n }}\n />\n );\n }\n return null;\n }\n\n renderCustomView() {\n if (this.props.renderCustomView) {\n return this.props.renderCustomView(this.props);\n }\n return null;\n }\n\n render() {\n const isSameThread =\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage);\n\n const messageHeader = isSameThread ? null : (\n <View style={styles.headerView}>\n {this.renderUsername()}\n {this.renderTime()}\n {this.renderTicks()}\n </View>\n );\n\n return (\n <View style={[styles.container, this.props.containerStyle]}>\n <TouchableOpacity disabled={true} accessibilityTraits=\"text\" {...this.props.touchableProps}>\n <View style={[styles.wrapper, this.props.wrapperStyle]}>\n <View>\n {this.renderCustomView()}\n {messageHeader}\n {this.renderMessageImage()}\n {this.renderMessageText()}\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n }\n}\n\n// Note: Everything is forced to be \"left\" positioned with this component.\n// The \"right\" position is only used in the default Bubble.\nconst styles = StyleSheet.create({\n standardFont: {\n fontSize: 15,\n },\n slackMessageText: {\n marginLeft: 0,\n marginRight: 0,\n },\n container: {\n flex: 1,\n alignItems: 'flex-start',\n },\n wrapper: {\n marginRight: 60,\n minHeight: 20,\n justifyContent: 'flex-start',\n },\n username: {\n fontWeight: 'bold',\n top: 0,\n paddingTop: 0,\n marginTop: 0,\n },\n time: {\n textAlign: 'left',\n fontSize: 12,\n },\n timeContainer: {\n marginLeft: 0,\n marginRight: 0,\n marginBottom: 0,\n },\n headerItem: {\n marginRight: 10,\n },\n headerView: {\n // Try to align it better with the avatar on Android.\n marginTop: Platform.OS === 'android' ? -2 : 0,\n flexDirection: 'row',\n alignItems: 'baseline',\n },\n /* eslint-disable react-native/no-color-literals */\n tick: {\n backgroundColor: 'transparent',\n color: 'white',\n },\n /* eslint-enable react-native/no-color-literals */\n tickView: {\n flexDirection: 'row',\n },\n slackImage: {\n borderRadius: 3,\n marginLeft: 8,\n marginRight: 0,\n },\n});\n\n// Bubble.contextTypes = {\n// actionSheet: PropTypes.func,\n// };\n\nBubble.defaultProps = {\n touchableProps: {},\n onLongPress: null,\n renderMessageImage: null,\n renderMessageText: null,\n renderCustomView: null,\n renderTime: null,\n currentMessage: {\n text: null,\n createdAt: null,\n image: null,\n },\n nextMessage: {},\n previousMessage: {},\n containerStyle: {},\n wrapperStyle: {},\n tickStyle: {},\n containerToNextStyle: {},\n containerToPreviousStyle: {},\n isShowImageViewer: false,\n setImageViewer: (obj: any, v: boolean) => null,\n};\n","/* eslint-disable no-underscore-dangle, no-use-before-define */\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { View, ViewPropTypes, StyleSheet } from 'react-native';\n\nimport { Avatar, Day, utils } from 'react-native-gifted-chat';\nimport Bubble from './SlackBubble';\n\nconst { isSameUser, isSameDay } = utils;\n\nexport default class Message extends React.Component<any> {\n static defaultProps: {\n renderAvatar: undefined;\n renderBubble: null;\n renderDay: null;\n currentMessage: {};\n nextMessage: {};\n previousMessage: {};\n user: {};\n containerStyle: {};\n isShowImageViewer:false,\n setImageViewer:(obj:any,v:boolean) => void,\n };\n getInnerComponentProps() {\n const { containerStyle, ...props } = this.props;\n return {\n ...props,\n position: 'left',\n isSameUser,\n isSameDay,\n };\n }\n\n renderDay() {\n if (this.props.currentMessage.createdAt) {\n const dayProps = this.getInnerComponentProps();\n if (this.props.renderDay) {\n return this.props.renderDay(dayProps);\n }\n return <Day {...dayProps} />;\n }\n return null;\n }\n\n renderBubble() {\n const bubbleProps = this.getInnerComponentProps();\n if (this.props.renderBubble) {\n return this.props.renderBubble(bubbleProps);\n }\n return <Bubble {...bubbleProps} isShowImageViewer={this.props.isShowImageViewer} setImageViewer={this.props.setImageViewer} />;\n }\n\n renderAvatar() {\n let extraStyle: any;\n if (\n isSameUser(this.props.currentMessage, this.props.previousMessage) &&\n isSameDay(this.props.currentMessage, this.props.previousMessage)\n ) {\n // Set the invisible avatar height to 0, but keep the width, padding, etc.\n extraStyle = { height: 0 };\n }\n\n const avatarProps: any = this.getInnerComponentProps();\n return (\n <Avatar\n {...avatarProps}\n showAvatarForEveryMessage={true}\n imageStyle={{\n left: [styles.slackAvatar, avatarProps.imageStyle, extraStyle],\n }}\n />\n );\n }\n\n render() {\n const marginBottom = isSameUser(this.props.currentMessage, this.props.nextMessage) ? 2 : 10;\n\n return (\n <View>\n {this.renderDay()}\n <View style={[styles.container, { marginBottom }, this.props.containerStyle]}>\n {this.renderAvatar()}\n {this.renderBubble()}\n </View>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n marginLeft: 8,\n marginRight: 0,\n },\n slackAvatar: {\n // The bottom should roughly line up with the first line of message text.\n height: 40,\n width: 40,\n borderRadius: 3,\n marginTop: 0,\n },\n});\n\nMessage.defaultProps = {\n renderAvatar: undefined,\n renderBubble: null,\n renderDay: null,\n currentMessage: {},\n nextMessage: {},\n previousMessage: {},\n user: {},\n containerStyle: {},\n isShowImageViewer:false,\n setImageViewer:(obj:any,v:boolean) => null,\n};\n","import SlackMessage from './SlackMessage';\nimport ImageViewerModal from './ImageViewerModal';\nexport { SlackMessage ,ImageViewerModal};\n","import { cleanEnv, num, str } from 'envalid';\n\nexport const config = cleanEnv(process['APP_ENV'] || process.env, {\n MESSAGES_PER_PAGE: num({ devDefault: 10, default: 20 }),\n FILES_PER_MESSAGE: num({ default: 10 }),\n INBOX_MESSEGE_PATH: str({ default: 'MainStack.Message' }),\n CALL_TO_ACTION_PATH: str({ default: 'MainStack.MyReservationDetails' }),\n CALL_TO_ACTION_BOX_BGCOLOR: str({ default: '#0084ff' }),\n CALL_TO_ACTION_BUTTON_BORDERCOLOR: str({ default: '#fff' }),\n CALL_TO_ACTION_TEXT_COLOR: str({ default: '#fff' }),\n});\n","export { config } from './config';\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Box, Button, HStack, Icon, Image, Spinner, Text, useColorModeValue, ScrollView } from 'native-base';\nimport { Platform, TouchableOpacity } from 'react-native';\nimport { useNavigation, useFocusEffect } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy } from 'lodash';\nimport * as ImagePicker from 'expo-image-picker';\nimport { encode as atob } from 'base-64';\nimport { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Actions, GiftedChat, IMessage, MessageText, Send } from 'react-native-gifted-chat';\nimport {\n useCheckForNewMessagesQuery,\n useGetAllUsersQuery,\n useMessagesQuery,\n useSendMessagesMutation,\n useViewChannelDetailQuery,\n useUploadFilesNative,\n} from '@messenger-box/platform-client';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { SlackMessage, ImageViewerModal } from '../components/SlackMessageContainer';\nimport CachedImage from '../components/CachedImage';\nconst {\n MESSAGES_PER_PAGE,\n CALL_TO_ACTION_BOX_BGCOLOR,\n CALL_TO_ACTION_PATH,\n CALL_TO_ACTION_BUTTON_BORDERCOLOR,\n CALL_TO_ACTION_TEXT_COLOR,\n} = config;\n\ninterface IMessageProps extends IMessage {\n type: string;\n propsConfiguration?: any;\n}\n\nexport interface AlertMessageAttachmentsInterface {\n title: string;\n isTitleHtml: boolean;\n icon: string;\n callToAction: {\n title: string;\n link: string;\n };\n}\n\nconst ConversationViewComponent = ({ channelId }: any) => {\n const [channelToTop, setChannelToTop] = useState(0);\n const [channelMessages, setChannelMessages] = useState<any>([]);\n const auth: any = useSelector(userSelector);\n const [totalCount, setTotalCount] = useState<any>(0);\n const [selectedImage, setImage] = useState<string>('');\n const [loadingOldMessages, setLoadingOldMessages] = useState<boolean>(false);\n const color = useColorModeValue('white', 'black');\n // const color = useColorModeValue('black', 'white');\n const navigation = useNavigation<any>();\n const [files, setFiles] = useState<File[]>([]);\n const [images, setImages] = useState<ImagePicker.ImageInfo[]>([]);\n const [msg, setMsg] = useState<string>('');\n const [loading, setLoading] = useState(false);\n const [imageLoading, setImageLoading] = useState(false);\n const [expoTokens, setExpoTokens] = useState<any[]>([]);\n const [isShowImageViewer, setImageViewer] = useState<boolean>(false);\n const [imageObject, setImageObject] = useState<any>({});\n\n const { startUpload } = useUploadFilesNative();\n\n const [sendMsg] = useSendMessagesMutation();\n\n const {\n data,\n loading: messageLoading,\n refetch,\n }: any = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data: channelsDetail,\n loading: channelLoading,\n refetch: refetchChannelDetail,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n });\n\n // const { data: users } = useGetAllUsersQuery();\n\n const { data: checkForMessages }: any = useCheckForNewMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n },\n skip: !channelId,\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchChannelDetail({ id: channelId?.toString() });\n refetch({\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n }).then(({ data }) => {\n if (!data?.messages) {\n return;\n }\n const { data: messages, totalCount }: any = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n setTotalCount(0);\n setChannelMessages([]);\n };\n }, []),\n );\n\n React.useEffect(() => {\n if (channelsDetail?.viewChannelDetail?.members?.length) {\n const channelData: any =\n channelsDetail?.viewChannelDetail?.members?.filter((mu: any) => mu?.user?.id != auth?.id) ?? [];\n const tokens: any =\n channelData\n ?.map(\n (u: any) =>\n u?.user?.tokens\n ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')\n ?.map((et: any) => et?.token) ?? [],\n )\n ?.flat(1)\n ?.filter((t: any) => t)\n ?.filter((value: any, index: any, array: any) => array.indexOf(value) === index) ?? [];\n\n if (tokens?.length > 0) setExpoTokens(tokens);\n }\n }, [channelsDetail]);\n\n React.useEffect(() => {\n if (selectedImage) setImageLoading(false);\n }, [selectedImage]);\n\n // const currentUser = useMemo(\n // () => users?.getUsers?.find(({ alias }: any) => alias?.includes(auth?.auth0UserId)),\n // [users, auth],\n // );\n\n // useEffect(() => {\n // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // if (messages && messages.length > 0) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // }\n // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data, loadingOldMessages, channelMessages]);\n\n useEffect(() => {\n if (data?.messages?.data) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0 && (loadingOldMessages || channelMessages.length === 0)) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n setLoadingOldMessages(false);\n }\n if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n }\n }, [data, loadingOldMessages, channelMessages]);\n\n // useEffect(() => {\n // if (data?.messages?.data) {\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // console.log('messeageTotalCount',messeageTotalCount)\n // console.log('totalCount',totalCount)\n // if (messages && messages.length > 0) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // }\n // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data]);\n\n // useEffect(() => {\n // if (checkForMessages?.messages?.totalCount > totalCount) {\n // const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;\n // refetch({\n // limit: numberOfNewMessages,\n // }).then(({ data }) => {\n // if (!data?.messages) {\n // return;\n // }\n // const { data: messages, totalCount }:any = data.messages;\n // setTotalCount(totalCount);\n // setChannelMessages((oldMessages:any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n // });\n // }\n // }, [checkForMessages, totalCount]);\n\n useEffect(() => {\n if (\n !messageLoading &&\n checkForMessages?.messages?.totalCount &&\n checkForMessages?.messages?.totalCount > totalCount\n ) {\n const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;\n console.log('new msg check');\n refetch({\n limit: numberOfNewMessages,\n }).then(({ data }) => {\n if (!data?.messages) {\n return;\n }\n const { data: messages, totalCount }: any = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n }\n }, [checkForMessages, totalCount]);\n\n // const onFetchOld = useCallback(() => {\n // // if (data?.messages?.totalCount > channelMessages.length) {\n // //if(channelMessages.length !== data?.messages?.totalCount){\n // if(totalCount > channelMessages.length){\n // setLoadingOldMessages(true);\n // refetch({ skip: channelMessages.length });\n // }\n // }, [data, channelMessages]);\n\n // const onFetchOld = () => {\n // // if (data?.messages?.totalCount > channelMessages.length) {\n // //if(channelMessages.length !== data?.messages?.totalCount){\n // if(totalCount > channelMessages.length){\n // setLoadingOldMessages(true);\n // refetch({ skip: channelMessages.length });\n // }\n // };\n\n const onFetchOld = useCallback(() => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadingOldMessages(true);\n refetch({ skip: channelMessages.length });\n }\n }, [data, channelMessages]);\n\n // const onFetchOld = () => {\n // if(totalCount > channelMessages.length){\n // console.log('totalCount',totalCount)\n // console.log('channelMessages.length',channelMessages.length)\n // setLoadingOldMessages(true);\n // refetch({\n // skip: channelMessages.length\n // });\n // }\n // };\n\n // const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {\n // return contentOffset.y <= 100; // 100px from top\n // };\n\n const isCloseToTop = ({ layoutMeasurement, contentOffset, contentSize }) => {\n const paddingToTop = 60;\n return contentSize.height - layoutMeasurement.height - paddingToTop <= contentOffset.y;\n };\n\n const dataURLtoFile = (dataurl: any, filename: any) => {\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], filename, { type: mime });\n };\n\n const onSelectImages = async () => {\n setImageLoading(true);\n let imageSource: any = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1,\n base64: true,\n });\n if (!imageSource.cancelled) {\n const image = 'data:image/jpeg;base64,' + imageSource?.base64;\n setImage(image);\n const file = dataURLtoFile(image, 'inputImage.jpg');\n setFiles((files) => files.concat(file));\n setImages((images) => images.concat(imageSource as ImagePicker.ImageInfo));\n }\n if (imageSource.cancelled) setLoading(false);\n };\n\n const sendPushNotification = async (title: String, body: String, data: any, to: any) => {\n try {\n const response = await fetch('https://exp.host/--/api/v2/push/send/', {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Accept-Encoding': 'gzip, deflate',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n to: to,\n data: data,\n title: title,\n body: body,\n sound: Platform.OS === 'android' ? undefined || null : 'default',\n }),\n });\n const result: any = await response.json();\n console.log('expo api response', result);\n } catch (error) {\n console.error('Error:', error);\n }\n\n // fetch('https://exp.host/--/api/v2/push/send/', {\n // method: 'POST',\n // headers: {\n // Accept: 'application/json',\n // 'Accept-Encoding': 'gzip, deflate',\n // 'Content-Type': 'application/json',\n // },\n // body: JSON.stringify({\n // to: to,\n // data: data,\n // title: title,\n // body: body,\n // sound: Platform.OS === 'android' ? null : 'default',\n // }),\n // });\n };\n\n // const handleSend = useCallback(\n // async (message: string) => {\n // // if (!(message && channelId)) {\n // // return;\n // // }\n\n // if (!channelId) return;\n // if (!message && message != ' ' && images.length == 0) return;\n\n // setLoading(true);\n // const { data } = await sendMsg({\n // variables: {\n // channelId,\n // content: message,\n // },\n // update: (cache, { data, errors }) => {\n // if (!data || errors) {\n // setLoading(false);\n // return;\n // }\n // setChannelMessages((messages) => [...messages, data?.sendMessage]);\n // setTotalCount((t) => t + 1);\n // setChannelToTop(channelToTop + 1);\n // setLoading(false);\n // const title: String = currentUser?.givenName+' '+currentUser?.familyName+' in Followup Chat';\n // const body: String = message;\n // const notificationData: any = {\n // url: config.INBOX_MESSEGE_PATH,\n // params: { channelId, hideTabBar: true },\n // screen: 'DialogMessages',\n // };\n // console.log('expo to',JSON.stringify(expoTokens));\n // if (expoTokens?.length > 0) {\n // const to: any = expoTokens?.length > 0 ? expoTokens : [];\n\n // sendPushNotification(title, body, notificationData, to);\n // }\n\n // setMsg('');\n // },\n // });\n // if (images && images.length > 0 && data?.sendMessage?.id) {\n // const { id: postId } = data.sendMessage;\n // setLoading(true);\n // const uploadResponse = await startUpload({\n // file: images,\n // saveUploadedFile: {\n // variables: {\n // postId,\n // },\n // },\n // createUploadLink: {\n // variables: {\n // postId,\n // },\n // },\n // });\n // if (uploadResponse?.error) setLoading(false);\n // const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\n // if (uploadResponse.data) {\n // setImage('');\n // setFiles([]);\n // setImages([]);\n // setLoading(false);\n // }\n // setChannelMessages((messages) =>\n // messages.map((message) => {\n // if (message.id === postId) {\n // return {\n // ...message,\n // files: {\n // totalCount: uploadedFiles.length,\n // data: uploadedFiles,\n // },\n // };\n // }\n // return message;\n // }),\n // );\n // }\n // },\n // [setChannelMessages, currentUser, channelId, images,expoTokens],\n // );\n\n const handleSend = async (message: string) => {\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n setLoading(true);\n const { data } = await sendMsg({\n variables: {\n channelId,\n content: message,\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n setChannelMessages((messages: any) => [...messages, data?.sendMessage]);\n setTotalCount((t: any) => t + 1);\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n const givenName = auth?.profile?.given_name ?? '';\n const familyName = auth?.profile?.family_name ?? '';\n const fullName = givenName ? givenName + ' ' + familyName : '';\n const title: String = fullName ? fullName + ' in Followup Chat' : 'Followup Chat';\n const body: String = message;\n const notificationData: any = {\n url: config.INBOX_MESSEGE_PATH,\n params: { channelId, hideTabBar: true },\n screen: 'DialogMessages',\n };\n console.log('expo to', JSON.stringify(expoTokens));\n if (expoTokens?.length > 0) {\n const to: any = expoTokens?.length > 0 ? expoTokens : [];\n\n sendPushNotification(title, body, notificationData, to);\n }\n },\n });\n if (images && images.length > 0 && data?.sendMessage?.id) {\n const { id: postId } = data.sendMessage;\n setLoading(true);\n const uploadResponse = await startUpload({\n file: images,\n saveUploadedFile: {\n variables: {\n postId,\n },\n },\n createUploadLink: {\n variables: {\n postId,\n },\n },\n });\n if (uploadResponse?.error) setLoading(false);\n const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\n if (uploadResponse.data) {\n setImage('');\n setFiles([]);\n setImages([]);\n setLoading(false);\n }\n setChannelMessages((messages: any) =>\n messages.map((message: any) => {\n if (message.id === postId) {\n return {\n ...message,\n files: {\n totalCount: uploadedFiles.length,\n data: uploadedFiles,\n },\n };\n }\n return message;\n }),\n );\n }\n };\n\n const messageList = useMemo(() => {\n let currentDate = '';\n let res: any = [];\n if (channelMessages.length) {\n orderBy(channelMessages, ['createdAt'], ['desc']).map((msg) => {\n let message: IMessageProps = {\n _id: '',\n text: '',\n createdAt: 0,\n user: {\n _id: '',\n name: '',\n avatar: '',\n },\n type: '',\n };\n const date = new Date(msg.createdAt);\n message._id = msg.id;\n message.text = msg.message;\n message.createdAt = date;\n (message.user = {\n _id: msg.author.id,\n name: msg.author.givenName + ' ' + msg.author.familyName,\n avatar: msg.author?.picture,\n }),\n (message.image = msg.files?.data[0]?.url),\n (message.sent = msg?.isDelivered),\n (message.received = msg?.isRead);\n message.type = msg?.type;\n message.propsConfiguration = msg?.propsConfiguration;\n res.push(message);\n });\n }\n return res;\n }, [channelMessages]);\n\n const renderSend = (props) => {\n return (\n <Send {...props}>\n <Box>\n <MaterialCommunityIcons\n name=\"send-circle\"\n style={{ marginBottom: 5, marginRight: 5 }}\n size={32}\n color=\"#2e64e5\"\n />\n </Box>\n </Send>\n );\n };\n\n const renderMessageText = (props: any) => {\n const { currentMessage } = props;\n if (currentMessage.type === 'ALERT') {\n const attachment = currentMessage?.propsConfiguration?.contents?.attachment;\n let action: string = '';\n let actionId: any = '';\n if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n // if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n // action = 'm-reservation-detail';\n // actionId = attachment?.callToAction?.link.split('/').pop();\n // }\n return (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n {attachment?.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n />\n </Box>\n );\n } else {\n return <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />;\n }\n };\n\n const renderActions = (props) => {\n return (\n <Actions\n {...props}\n icon={() => <Icon as={Ionicons} name={'image'} size={'lg'} color={'black'} onPress={onSelectImages} />}\n />\n );\n };\n\n const renderAccessory = (props) => {\n return (\n <Box>\n {selectedImage !== '' ? (\n <HStack alignItems={'center'}>\n <Image ml={3} key={selectedImage} alt={'image'} source={{ uri: selectedImage }} size={'xs'} />\n <Button\n variant={'ghost'}\n colorScheme={'secondary'}\n onPress={() => {\n setFiles([]);\n setImage('');\n setImages([]);\n }}\n >\n Cancel\n </Button>\n </HStack>\n ) : null}\n </Box>\n );\n };\n\n const setImageViewerObject = (obj: any, v: boolean) => {\n setImageObject(obj);\n setImageViewer(v);\n };\n\n const modalContent = React.useMemo(() => {\n if (!imageObject) return <></>;\n const { image, _id } = imageObject;\n return (\n <CachedImage\n style={{ width: '100%', height: '100%' }}\n resizeMode={'cover'}\n // cacheKey={`${_id}-conversation-modal-image-key`}\n cacheKey={`${_id}-slack-bubble-imageKey`}\n source={{\n uri: image,\n //headers: `Authorization: Bearer ${token}`,\n expiresIn: 86400,\n }}\n alt={'image'}\n />\n );\n }, [imageObject]);\n\n const renderMessage = (props: any) => {\n // const {\n // currentMessage: { text: currText },\n // } = props;\n\n //let messageTextStyle: any;\n\n // Make \"pure emoji\" messages much bigger than plain text.\n // if (currText && emojiUtils.isPureEmojiString(currText)) {\n // messageTextStyle = {\n // fontSize: 28,\n // // Emoji get clipped if lineHeight isn't increased; make it consistent across platforms.\n // lineHeight: Platform.OS === 'android' ? 34 : 30,\n // }\n // }\n\n // return <SlackMessage {...props} messageTextStyle={messageTextStyle} />;\n return <SlackMessage {...props} isShowImageViewer={isShowImageViewer} setImageViewer={setImageViewerObject} />;\n };\n\n return (\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\n // listViewProps={{\n // scrollEventThrottle: 400,\n // onScroll: ({ nativeEvent }) => { console.log('scroll')\n // if (!loadingOldMessages && isCloseToTop(nativeEvent)) {\n // onFetchOld();\n // }\n // }\n // }}\n onSend={(messages) => handleSend(messages[0]?.text ?? ' ')}\n text={msg ? msg : ' '}\n onInputTextChanged={(text) => setMsg(text)}\n renderFooter={() => (loading ? <Spinner /> : imageLoading ? <Spinner /> : '')}\n scrollToBottom\n user={{\n // _id: currentUser?.id || '',\n _id: auth?.id || '',\n }}\n isTyping={true}\n alwaysShowSend={loading ? false : true}\n onLoadEarlier={onFetchOld}\n infiniteScroll={true}\n renderSend={renderSend}\n loadEarlier={data?.messages?.totalCount > channelMessages.length}\n //isLoadingEarlier={isLoadingEarlier}\n //extraData={{ isLoadingEarlier: loadingOldMessages }}\n //renderLoadEarlier={() => <Spinner />}}\n renderMessageText={renderMessageText}\n minInputToolbarHeight={50}\n renderActions={renderActions}\n renderAccessory={renderAccessory}\n renderMessage={renderMessage}\n renderChatFooter={() => (\n <ImageViewerModal\n isVisible={isShowImageViewer}\n setVisible={setImageViewer}\n modalContent={modalContent}\n />\n )}\n lightboxProps={{\n underlayColor: 'transparent',\n springConfig: { tension: 90000, friction: 90000 },\n disabled: true,\n }}\n />\n );\n};\n\nexport const ConversationView = React.memo(ConversationViewComponent);\n","import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center, Spinner } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetChannelsByUserQuery } from '@messenger-box/platform-client';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\nimport { config } from '../config';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nconst DialogsComponent = (props: InboxProps) => {\n const { channelFilters, channelRole } = props;\n const { params } = useRoute<any>();\n const auth = useSelector(userSelector);\n const dispatch = useDispatch();\n const navigation = useNavigation<any>();\n const isFocused = useIsFocused();\n const [refreshing, setRefresh] = useState<boolean>(false);\n // const [userDirectChannel, setUserDirectChannel] = useState<any>([]);\n\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n },\n onCompleted:(data:any)=>{\n setRefresh(false);\n }\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n setRefresh(false);\n getChannelsRefetch({ role: channelRole, criteria: channelFilters });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [channelFilters]),\n );\n\n const channels = React.useMemo(() => {\n if (!userChannels?.channelsByUser?.length) return null;\n let uChannels: any =\n userChannels?.channelsByUser?.filter((c: any) =>\n c.members.some((u: any) => u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n ) ?? [];\n return uChannels || [];\n }, [userChannels]);\n\n // useEffect(() => {\n // setTimeout(() => {\n // dispatch({\n // type: CHANGE_SETTINGS_ACTION,\n // payload: {\n // footerRender: false,\n // },\n // } as any);\n // }, 0);\n // return () => {\n // dispatch({\n // type: CHANGE_SETTINGS_ACTION,\n // payload: {\n // footerRender: true,\n // },\n // } as any);\n // };\n // }, []);\n\n // useEffect(() => {\n // if (userChannels?.channelsByUser) {\n // if (userChannels?.channelsByUser?.length == 0) {\n // setUserDirectChannel([]);\n // }\n // //Direct channel\n // let userDirectChannels: any =\n // userChannels?.channelsByUser\n // ?.filter((i: any) => i.type == 'DIRECT')\n // ?.filter((c: any) =>\n // c.members.some((u: any) => u?.user?.id != auth?.id && u.user.__typename == 'UserAccount'),\n // ) ?? [];\n\n // if (userDirectChannels?.length > 0) setUserDirectChannel(userDirectChannels);\n // }\n // }, [userChannels?.channelsByUser]);\n\n const handleSelectChannel = useCallback((id: any, title: any) => {\n if (params?.channelId) {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: params?.channelId,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n title: title,\n hideTabBar: true,\n });\n }\n }, []);\n\n const handleRefresh = useCallback(() => {\n //if(userChannels?.channelsByUser?.length != channels?.length)setRefresh(true);\n getChannelsRefetch({ role: channelRole, criteria: channelFilters });\n },[])\n\n return (\n <Box p={2}>\n <FlatList\n data={channels && channels?.length > 0 ? channels : []}\n onRefresh={handleRefresh}\n refreshing={userChannelsLoading}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <DialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n ListEmptyComponent={() => (\n <>\n {userChannelsLoading ? (\n <Spinner />\n ) : (\n <Box p={5}>\n <Heading>Chat</Heading>\n <Input\n height={50}\n mt={3}\n placeholder=\"Search\"\n borderRadius={50}\n borderColor={'gray.200'}\n borderWidth={2}\n />\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any messages yet!</Text>\n </Center>\n </Box>\n )}\n </>\n )}\n keyExtractor={(item, index) => 'key' + index}\n />\n </Box>\n );\n};\n\nexport const Dialogs = React.memo(DialogsComponent);\n","export * from './inbox/Inbox';\nexport * from './inbox/DialogMessages';","module.exports = require(\"@adminide-stack/user-auth0-client\");","module.exports = require(\"@common-stack/client-react\");","module.exports = require(\"@expo/vector-icons\");","module.exports = require(\"@messenger-box/platform-client\");","module.exports = require(\"@react-navigation/native\");","module.exports = require(\"base-64\");","module.exports = require(\"date-fns\");","module.exports = require(\"envalid\");","module.exports = require(\"expo-file-system\");","module.exports = require(\"expo-image-picker\");","module.exports = require(\"lodash\");","module.exports = require(\"native-base\");","module.exports = require(\"react\");","module.exports = require(\"react-native\");","module.exports = require(\"react-native-gifted-chat\");","module.exports = require(\"react-redux\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@messenger-box/platform-mobile",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.351",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"typescript": {
|
|
41
41
|
"definition": "lib/index.d.ts"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "f8c370510452d2c8bb9c26c591b7490367972e58"
|
|
44
44
|
}
|
|
@@ -50,7 +50,7 @@ const ConversationViewComponent = ({ channelId }: any) => {
|
|
|
50
50
|
const auth: any = useSelector(userSelector);
|
|
51
51
|
const [totalCount, setTotalCount] = useState<any>(0);
|
|
52
52
|
const [selectedImage, setImage] = useState<string>('');
|
|
53
|
-
const [loadingOldMessages, setLoadingOldMessages] = useState(false);
|
|
53
|
+
const [loadingOldMessages, setLoadingOldMessages] = useState<boolean>(false);
|
|
54
54
|
const color = useColorModeValue('white', 'black');
|
|
55
55
|
// const color = useColorModeValue('black', 'white');
|
|
56
56
|
const navigation = useNavigation<any>();
|
|
@@ -173,7 +173,7 @@ const ConversationViewComponent = ({ channelId }: any) => {
|
|
|
173
173
|
}
|
|
174
174
|
if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);
|
|
175
175
|
}
|
|
176
|
-
}, [data]);
|
|
176
|
+
}, [data, loadingOldMessages, channelMessages]);
|
|
177
177
|
|
|
178
178
|
// useEffect(() => {
|
|
179
179
|
// if (data?.messages?.data) {
|
|
@@ -204,7 +204,11 @@ const ConversationViewComponent = ({ channelId }: any) => {
|
|
|
204
204
|
// }, [checkForMessages, totalCount]);
|
|
205
205
|
|
|
206
206
|
useEffect(() => {
|
|
207
|
-
if (
|
|
207
|
+
if (
|
|
208
|
+
!messageLoading &&
|
|
209
|
+
checkForMessages?.messages?.totalCount &&
|
|
210
|
+
checkForMessages?.messages?.totalCount > totalCount
|
|
211
|
+
) {
|
|
208
212
|
const numberOfNewMessages = checkForMessages?.messages?.totalCount - totalCount;
|
|
209
213
|
console.log('new msg check');
|
|
210
214
|
refetch({
|
|
@@ -676,9 +680,6 @@ const ConversationViewComponent = ({ channelId }: any) => {
|
|
|
676
680
|
// }
|
|
677
681
|
// }
|
|
678
682
|
// }}
|
|
679
|
-
// onSend={(messages) => {
|
|
680
|
-
// handleSend(messages[0]?.text ?? ' ');
|
|
681
|
-
// }}
|
|
682
683
|
onSend={(messages) => handleSend(messages[0]?.text ?? ' ')}
|
|
683
684
|
text={msg ? msg : ' '}
|
|
684
685
|
onInputTextChanged={(text) => setMsg(text)}
|
|
@@ -693,10 +694,10 @@ const ConversationViewComponent = ({ channelId }: any) => {
|
|
|
693
694
|
onLoadEarlier={onFetchOld}
|
|
694
695
|
infiniteScroll={true}
|
|
695
696
|
renderSend={renderSend}
|
|
696
|
-
// loadEarlier={checkForMessages?.messages?.totalCount > totalCount}
|
|
697
|
-
//loadEarlier={channelMessages.length !== data?.messages?.totalCount}
|
|
698
|
-
// loadEarlier={totalCount > channelMessages.length}
|
|
699
697
|
loadEarlier={data?.messages?.totalCount > channelMessages.length}
|
|
698
|
+
//isLoadingEarlier={isLoadingEarlier}
|
|
699
|
+
//extraData={{ isLoadingEarlier: loadingOldMessages }}
|
|
700
|
+
//renderLoadEarlier={() => <Spinner />}}
|
|
700
701
|
renderMessageText={renderMessageText}
|
|
701
702
|
minInputToolbarHeight={50}
|
|
702
703
|
renderActions={renderActions}
|