@messenger-box/platform-mobile 0.0.1-alpha.381 → 0.0.1-alpha.382
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 +24 -17
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/screens/inbox/containers/ConversationView.tsx +26 -17
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/DialogThreadMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogThreads.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/components/SupportServiceDialogsListItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/ThreadsViewItem.tsx","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/inbox/containers/SupportServiceDialogs.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ThreadConversationView.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ThreadsView.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 { DialogThreads } from '../screens/inbox/DialogThreads';\nimport { DialogThreadMessages } from '../screens/inbox/DialogThreadMessages';\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, role: null },\n component: (props: any) => (\n <DialogMessages\n {...props}\n channelId={props?.route?.params?.channelId}\n role={props?.route?.params?.role}\n />\n ),\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 ['//thread']: {\n exact: true,\n name: 'Thread',\n props: {\n initialParams: { channelId: null, postParentId: null, role: null },\n component: (props: any) => (\n <DialogThreads\n {...props}\n channelId={props?.route?.params?.channelId}\n postParentId={props?.route?.params?.postParentId}\n role={props?.route?.params?.role}\n />\n ),\n options: ({ navigation }: any) => {\n return {\n headerShown: true,\n title: 'Thread',\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 ['//threadmessage']: {\n exact: true,\n name: 'ThreadMessage',\n props: {\n initialParams: { channelId: null, postParentId: null, isPostParentIdThread: null, role: null },\n component: (props: any) => (\n <DialogThreadMessages\n {...props}\n channelId={props?.route?.params?.channelId}\n postParentId={props?.route?.params?.postParentId}\n isPostParentIdThread={props?.route?.params?.isPostParentIdThread}\n role={props?.route?.params?.role}\n />\n ),\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, role }) {\n return (\n // <Box bg={'white'} flex={1} pt={5}>\n <Box bg={'white'} flex={1}>\n <ConversationView channelId={channelId} role={role} />\n </Box>\n );\n}\n","import * as React from 'react';\nimport { Box, Spinner, Text } from 'native-base';\nimport { ThreadConversationView } from './containers/ThreadConversationView';\nimport { ThreadsView } from './containers/ThreadsView';\nimport { useViewChannelDetailQuery, useSendThreadMessageMutation } from '@messenger-box/platform-client';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\n\nexport function DialogThreadMessages({ channelId, postParentId, isPostParentIdThread, role }) {\n const {\n data,\n loading: channelLoading,\n refetch,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n });\n\n const [sendThreadMessage] = useSendThreadMessageMutation();\n const [loading, setLoading] = React.useState<boolean>(true);\n const [channel, setChannel] = React.useState<any>(null);\n const [parentId, setParentId] = React.useState<any>(postParentId);\n\n const refetchChannelDetail = React.useCallback(\n (id: string) => {\n return refetch({ id: id?.toString() });\n },\n [channelId],\n );\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchChannelDetail(channelId);\n return () => {};\n }, []),\n );\n\n React.useEffect(() => {\n setParentId(postParentId);\n }, [postParentId]);\n\n React.useEffect(() => {\n if (data?.viewChannelDetail) {\n setChannel(data?.viewChannelDetail);\n setLoading(false);\n }\n }, [data]);\n\n // React.useEffect(() => {\n // async function sendInitialMessage(channel: any) {\n // const content = `Welcome to ${channel?.title}`;\n // const createdBy = channel?.creator?.id;\n // await sendThreadMessage({\n // variables: {\n // channelId,\n // threadMessageInput: {\n // content,\n // role,\n // },\n // responderId: createdBy,\n // },\n // update: (cache, { data, errors }: any) => {\n // if (!data) {\n // return;\n // }\n // setParentId(data?.sendThreadMessage?.lastMessage?.id);\n // },\n // });\n // }\n // if ((!parentId || parentId == 0) && channel) {\n // sendInitialMessage(channel);\n // }\n\n // if (parentId) setLoading(false);\n // }, [parentId, channel]);\n\n return (\n <Box bg={'white'} flex={1}>\n {/* {loading && !parentId ? ( */}\n {loading ? (\n <Spinner />\n ) : (\n <ThreadConversationView\n channelId={channelId}\n postParentId={parentId}\n isPostParentIdThread={isPostParentIdThread}\n role={role}\n />\n )}\n </Box>\n );\n}\n","import * as React from 'react';\nimport { Box, Spinner, Text } from 'native-base';\nimport { ThreadConversationView } from './containers/ThreadConversationView';\nimport { ThreadsView } from './containers/ThreadsView';\nimport { useViewChannelDetailQuery } from '@messenger-box/platform-client';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\n\nexport function DialogThreads({ channelId, postParentId,role }) {\n const {\n data,\n loading: channelLoading,\n refetch,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n });\n\n const channelsDetail = React.useMemo(() => {\n if (!data?.viewChannelDetail) return null;\n return data?.viewChannelDetail;\n }, [data]);\n\n const refetchChannelDetail = React.useCallback(\n (id: string) => {\n return refetch({ id: id?.toString() });\n },\n [channelId],\n );\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchChannelDetail(channelId);\n return () => {};\n }, []),\n );\n\n return (\n // <Box bg={'white'} flex={1} pt={5}>\n <>\n {channelLoading ? (\n <Spinner />\n ) : (\n <>\n <Box\n flex={1}\n _dark={{\n borderColor: 'coolGray.600',\n backgroundColor: 'gray.700',\n }}\n _light={{\n backgroundColor: 'gray.50',\n }}\n >\n <ThreadsView\n channelId={channelId}\n role={role}\n channelsDetail={channelsDetail}\n refetchChannelDetail={refetchChannelDetail}\n />\n </Box>\n </>\n )}\n </>\n );\n\n // return (\n // // <Box bg={'white'} flex={1} pt={5}>\n // <>\n // {channelLoading ? (\n // <Spinner />\n // ) : (\n // <>\n // {postParentId || postParentId == 0 ? (\n // <Box bg={'white'} flex={1}>\n // <ThreadConversationView\n // channelId={channelId}\n // postParentId={postParentId}\n // channelsDetail={channelsDetail}\n // refetchChannelDetail={refetchChannelDetail}\n // />\n // </Box>\n // ) : (\n // <Box\n // flex={1}\n // _dark={{\n // borderColor: 'coolGray.600',\n // backgroundColor: 'gray.700',\n // }}\n // _light={{\n // backgroundColor: 'gray.50',\n // }}\n // >\n // <ThreadsView\n // channelId={channelId}\n // channelsDetail={channelsDetail}\n // refetchChannelDetail={refetchChannelDetail}\n // />\n // </Box>\n // )}\n // </>\n // )}\n // </>\n // );\n}\n","import * as React from 'react';\nimport { Box, Text } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\nimport { SupportServiceDialogs } from './containers/SupportServiceDialogs';\n\nexport const Inbox = (props: any) => {\n const { channelFilters, channelRole, supportServices } = props;\n return (\n <Box bg={'white'} flex={1}>\n {supportServices && <SupportServiceDialogs channelFilters={channelFilters} channelRole={channelRole} {...props} />}\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 parentId:any = null;\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n parentId: parentId,\n limit: 25,\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(),parentId:parentId, limit: 25 });\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 const filteredData = data?.filter((p: any) => p?.message !== '');\n return filteredData[0];\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,TouchableHighlight, 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 <TouchableHighlight underlayColor={'#c0c0c0'} style={{width:'100%'}} 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 </TouchableHighlight>\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 <TouchableHighlight style={{width:'100%'}} underlayColor={'#c0c0c0'} 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 </TouchableHighlight>\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 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 {\n IChannel,\n IUserAccount,\n useThreadMessagesQuery,\n useMessagesQuery,\n useUserAccountQuery,\n useOnThreadCreatedUpdatedSubscription,\n useOnThreadChatMessageAddedSubscription,\n} 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, postParentId?: any) => void;\n refreshing: boolean;\n role: any;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const SupportServiceDialogsListItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n refreshing,\n role,\n}) {\n const {\n data: threadMessages,\n loading: threadMessageLoading,\n error,\n refetch: refetchThreadMessages,\n } = useThreadMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n role,\n limit: 2,\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: 25 });\n refetchThreadMessages({ channelId: channel?.id?.toString(), role, limit: 2 });\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [refreshing]),\n );\n\n const lastMessage = useMemo(() => {\n if (!threadMessages?.threadMessages?.data?.length) {\n return null;\n }\n const { data }: any = threadMessages.threadMessages;\n const replies =\n data\n ?.map((t: any) => t?.replies)\n ?.flat(1)\n ?.filter((p: any) => p?.message !== '') ?? [];\n if (replies?.length) {\n return replies[0];\n // return replies[replies.length - 1];\n } else {\n const post =\n data?.find((t: any) => {\n return t?.post?.message !== '';\n }) ??\n data?.find((t: any) => {\n return t?.post;\n }) ??\n null;\n return post ? post?.post : null;\n }\n }, [threadMessages]);\n\n const creatorAndMembersId = React.useMemo(() => {\n if (!channel?.members) return null;\n const membersIds: any =\n channel?.members?.filter((m: any) => m?.user?.id !== currentUser?.id)?.map((mu: any) => mu?.user?.id) ?? [];\n const creatorId: any = channel?.creator?.id;\n const mergedIds: any = [].concat(membersIds, creatorId) ?? [];\n return mergedIds?.filter((m: any, pos: any) => mergedIds?.indexOf(m) === pos) ?? [];\n }, [channel]);\n\n const postParentId = React.useMemo(() => {\n if (!creatorAndMembersId?.length) return null;\n\n return creatorAndMembersId?.length && creatorAndMembersId?.includes(currentUser?.id)\n ? null\n : lastMessage?.parentId\n ? lastMessage?.parentId\n : lastMessage?.id ?? 0;\n }, [creatorAndMembersId, lastMessage]);\n\n const { data: threadCreatedUpdated } = useOnThreadCreatedUpdatedSubscription({\n variables: {\n channelId: channel?.id?.toString(),\n postParentId:\n postParentId == null\n ? null\n : lastMessage?.parentId\n ? lastMessage?.parentId ?? null\n : lastMessage?.id ?? null,\n },\n });\n\n React.useEffect(() => {\n if (threadCreatedUpdated?.threadCreatedUpdated?.data) {\n refetchThreadMessages({ channelId: channel?.id?.toString(), role, limit: 2 });\n }\n }, [threadCreatedUpdated]);\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, channel?.title, postParentId)}\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 <Avatar\n key={'service-channels-key'}\n bg={'transparent'}\n size={9}\n top={0}\n right={0}\n zIndex={1}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: channel?.creator?.picture,\n }}\n >\n {startCase(channel?.creator?.username?.charAt(0))}\n </Avatar>\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 {channel?.title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {/* {creatorAndMembersId?.length && creatorAndMembersId?.includes(currentUser?.id)\n ? lastMessageCreatorAndMembers?.message ?? ''\n : lastMessage?.message ?? ''} */}\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n {/* {creatorAndMembersId?.length && creatorAndMembersId?.includes(currentUser?.id) ? (\n <Text color=\"gray.500\">\n {lastMessageCreatorAndMembers\n ? createdAtText(lastMessageCreatorAndMembers?.createdAt)\n : ''}\n </Text>\n ) : (\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n )} */}\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 SupportServiceDialogsListItem = React.memo(SupportServiceDialogsListItemComponent);\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, VStack, HStack, Center, Stack, Box, Avatar, View, Button } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport {\n IChannel,\n IUserAccount,\n useThreadMessagesQuery,\n useMessagesQuery,\n useUserAccountQuery,\n useOnThreadChatMessageAddedSubscription,\n useOnThreadCreatedUpdatedSubscription,\n} 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 thread?: any;\n onOpen: (id: any, title: any, postParentId?: any) => void;\n role?: any;\n setData?: any;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const ThreadViewItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n thread,\n onOpen,\n role,\n setData,\n}) {\n const { data: threadCreatedUpdated } = useOnThreadCreatedUpdatedSubscription({\n variables: {\n channelId: thread?.channel?.id?.toString(),\n postParentId: thread?.post?.id?.toString(),\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n React.useEffect(() => {\n if (threadCreatedUpdated?.threadCreatedUpdated?.data) setData(threadCreatedUpdated?.threadCreatedUpdated?.data);\n }, [threadCreatedUpdated?.threadCreatedUpdated]);\n\n const threadPostReply = React.useMemo(() => {\n if (!thread?.replies) return null;\n if (threadCreatedUpdated?.threadCreatedUpdated?.data?.replies?.length) {\n return threadCreatedUpdated?.threadCreatedUpdated?.data?.replies;\n } else return thread?.replies;\n }, [thread, threadCreatedUpdated]);\n\n // const lastMessage = useMemo(() => {\n // if (!threadPost) {\n // return null;\n // }\n // const replies = threadPost?.replies?.filter((p: any) => p?.message !== '') ?? [];\n // if (replies?.length) {\n // return replies[0];\n // // return replies[replies.length - 1];\n // } else {\n // const post = threadPost?.post ?? null;\n // return post ? post?.post : null;\n // }\n // }, [threadPost]);\n\n // const participants: any = React.useMemo(() => {\n // if (!thread?.participants?.length) return null;\n // return thread?.participants?.filter((u: any) => u?.user?.id !== currentUser?.id) ?? [];\n // }, [thread]);\n\n // const allParticipantsNames: any = React.useMemo(() => {\n // if (!participants?.length) return null;\n // return (\n // participants\n // ?.map((p: any) => {\n // return p?.user?.givenName + ' ' + p?.user?.familyName ?? '';\n // })\n // ?.join(', ') ?? ''\n // );\n // }, [participants]);\n\n if (!threadPostReply || threadPostReply?.length == 0) {\n return <></>;\n }\n\n return (\n <VStack\n space={1}\n py={2}\n px={2}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\n flex={1}\n _dark={{\n borderColor: 'white',\n backgroundColor: 'white',\n }}\n _web={{\n shadow: 2,\n borderWidth: 0,\n }}\n _light={{\n backgroundColor: 'white',\n }}\n >\n <HStack\n // px={2}\n // pl={3}\n py={2}\n space={2}\n w={'100%'}\n flex={1}\n direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={1}>\n {/* <HStack flex={1} space={5} py={2} alignItems={'baseline'}>\n <Box>\n <Avatar.Badge size={4} left={0} zIndex={1} bg=\"green.800\" />\n </Box>\n <Box>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {allParticipantsNames || ''}\n </Text>\n </Box>\n </HStack> */}\n <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={1}>\n {/* <HStack space={2} py={2}>\n <Box>\n <Avatar\n bg={'transparent'}\n size={8}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: thread?.post?.author?.picture,\n }}\n >\n {startCase(thread?.post?.author?.username?.charAt(0))}\n </Avatar>\n </Box>\n <Box>\n <HStack space={4}>\n <Text>\n {thread?.post?.author?.givenName + ' ' + thread?.post?.author?.familyName ??\n ''}\n </Text>\n <Text color=\"gray.500\">\n {thread?.post ? createdAtText(thread?.post?.createdAt) : ''}\n </Text>\n </HStack>\n <Text color=\"gray.600\" noOfLines={2}>\n {thread?.post?.message ?? ''}\n </Text>\n {!thread?.replies?.length && (\n <Button\n size={'xs'}\n w={150}\n variant={'outline'}\n _text={{ fontSize: 12, color: '#000' }}\n onPress={() =>\n onOpen(thread?.channel?.id, thread?.channel?.title, thread?.post?.id)\n }\n >\n Reply\n </Button>\n )}\n </Box>\n </HStack> */}\n {threadPostReply?.length > 0 && (\n <>\n {threadPostReply\n ?.slice(0, 2)\n ?.reverse()\n ?.map((reply: any, index: any) => (\n <HStack key={index} space={2} pb={2} pt={1}>\n <Box>\n <Avatar\n bg={'transparent'}\n size={8}\n _image={{\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: reply?.author?.picture,\n }}\n >\n {startCase(reply?.author?.username?.charAt(0))}\n </Avatar>\n </Box>\n <Box>\n <HStack space={4}>\n <Text>\n {reply?.author?.givenName ?? '' ?? ''}{' '}\n {reply?.author?.familyName ?? '' ?? ''}\n {/* {lastMessage?.author?.givenName +\n ' ' +\n lastMessage?.author?.familyName ?? ''} */}\n </Text>\n <Text color=\"gray.500\">\n {reply?.createdAt ? createdAtText(reply?.createdAt) : ''}\n {/* {lastMessage ? createdAtText(lastMessage?.createdAt) : ''} */}\n </Text>\n </HStack>\n <Text color=\"gray.600\" noOfLines={2}>\n {reply?.message\n ? reply?.message.length < 70\n ? `${reply?.message}`\n : `${reply?.message.substring(0, 68)}....`\n : ''}\n {/* {lastMessage?.message\n ? lastMessage?.message.length < 70\n ? `${lastMessage?.message}`\n : `${lastMessage?.message.substring(0, 68)}....`\n : ''} */}\n </Text>\n {(threadPostReply?.length == 1 || index !== 0) && (\n <Button\n size={'xs'}\n w={150}\n variant={'outline'}\n _text={{ fontSize: 12, color: '#000' }}\n onPress={() =>\n onOpen(\n thread?.channel?.id,\n thread?.channel?.title,\n thread?.post?.id,\n )\n }\n >\n Reply\n </Button>\n )}\n </Box>\n </HStack>\n ))}\n </>\n )}\n </Box>\n </HStack>\n </Box>\n </HStack>\n {/* <HStack>\n <Box flex={0.06} alignItems={'flex-start'}></Box>\n <Button\n size={'xs'}\n variant={'outline'}\n _text={{ fontSize: 12, color: '#000' }}\n onPress={() => onOpen(thread?.channel?.id, thread?.channel?.title, postParentId)}\n >\n Reply\n </Button>\n </HStack> */}\n </VStack>\n );\n};\n\nexport const ThreadViewItem = React.memo(ThreadViewItemComponent);\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 // THREAD_MESSEGE_PATH: str({ default: 'MainStack.Thread' }),\n // THREADS_PATH: str({ default: 'MainStack.ThreadMessage' }),\n THREAD_MESSEGE_PATH: str({ default: 'MainStack.ThreadMessage' }),\n THREADS_PATH: str({ default: 'MainStack.Thread' }),\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 {\n Box,\n Button,\n HStack,\n Icon,\n Image,\n Spinner,\n Text,\n useColorModeValue,\n Avatar,\n ScrollView,\n Center,\n} from 'native-base';\nimport { Platform, TouchableOpacity, TouchableHighlight } from 'react-native';\nimport { useNavigation, useFocusEffect, useIsFocused } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy, startCase } 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 useGetNewMongooseObjectIdQuery,\n useOnChatMessageAddedSubscription,\n IPreDefinedRole,\n useSendExpoNotificationOnPostMutation,\n IPost,\n} from '@messenger-box/platform-client';\nimport { IExpoNotificationData, 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';\nimport { format, isToday, isYesterday } from 'date-fns';\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\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\ninterface IMessageProps extends IMessage {\n type: string;\n propsConfiguration?: any;\n replies?: 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, role }: 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 [loadEarlierMsg, setLoadEarlierMsg] = 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 const isFocused = useIsFocused();\n const { data: mongooseObjectId } = useGetNewMongooseObjectIdQuery({\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n const {\n data: newMessage,\n loading: newMsgLoading,\n error: newMsgError,\n }: any = useOnChatMessageAddedSubscription({\n variables: {\n channelId: channelId?.toString(),\n },\n });\n\n const { startUpload } = useUploadFilesNative();\n\n const [sendMsg] = useSendMessagesMutation();\n\n const [sendExpoNotificationOnPostMutation] = useSendExpoNotificationOnPostMutation();\n\n const {\n data,\n loading: messageLoading,\n refetch,\n }: any = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n parentId: null,\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n });\n\n const {\n data: channelsDetail,\n loading: channelLoading,\n refetch: refetchChannelDetail,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\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 parentId: null,\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 }, [isFocused]),\n );\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 (\n // messages &&\n // messages.length > 0 &&\n // totalCount !== messeageTotalCount &&\n // (loadingOldMessages || channelMessages.length === 0)\n // ) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // setLoadingOldMessages(false);\n // setTotalCount(messeageTotalCount);\n // }\n // // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data, loadingOldMessages, channelMessages]);///\n ////......... initiate messages ......................////\n // useEffect(() => {\n // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n // console.log('loading msg')\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // if (messages && messages.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, totalCount]);\n ////.... initiate messages end................................////\n\n // useEffect(() => {\n // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n // console.log('initiate msg')\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // if (messages && messages.length > 0) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // setTotalCount(messeageTotalCount);\n // }\n // if(loadingOldMessages) setLoadingOldMessages(false);\n // }\n\n // }, [data, channelMessages,loadingOldMessages]);\n\n useEffect(() => {\n if ((data?.messages?.data && channelMessages.length === 0) || (data?.messages?.data && loadingOldMessages)) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n setTotalCount(messeageTotalCount);\n }\n setLoadEarlierMsg(false);\n if (loadingOldMessages) setLoadingOldMessages(false);\n }\n }, [data, loadingOldMessages, channelMessages]);\n\n React.useEffect(() => {\n if (newMessage) {\n const msg = newMessage?.chatMessageAdded;\n setTotalCount((preCount: any) => preCount + 1);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, msg], ({ id }) => id));\n }\n }, [newMessage]);\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 ////////...............New msg check...........////\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 // channelId: channelId?.toString(),\n // parentId: null,\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 ////////////....new msg check end.........//\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 // console.log('fetchmore')\n\n // refetch({ channelId: channelId?.toString(), parentId: null, skip: channelMessages.length })?.then((res:any)=>{\n // setLoadingOldMessages(true);\n // });\n\n // }\n // }, [data, channelMessages]);\n\n const onFetchOld = useCallback((data: any, channelMessages: any) => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadEarlierMsg(true);\n refetch({ channelId: channelId?.toString(), parentId: null, skip: channelMessages.length })?.then(\n (res: any) => setLoadingOldMessages(true),\n );\n }\n }, []);\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 = useCallback(\n async (message: string) => {\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n if (images && images.length > 0) {\n const postId: any = mongooseObjectId?.getNewMongooseObjectId;\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\n if (uploadResponse.data) {\n setImage('');\n setFiles([]);\n setImages([]);\n //setLoading(false);\n const files = uploadedFiles?.map((f: any) => f.id) ?? null;\n await sendMsg({\n variables: {\n postId,\n channelId,\n content: message,\n files,\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n // setChannelMessages((messages: any) => [\n // ...messages,\n // {\n // ...data?.sendMessage,\n // files: {\n // totalCount: uploadedFiles.length,\n // data: uploadedFiles,\n // },\n // },\n // ]);\n // setTotalCount((t: any) => t + 1);\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n const msg = message == '' ? 'Send a file' : message;\n sendPushNotification(data?.sendMessage, channelId);\n },\n });\n }\n } else {\n setLoading(true);\n 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 sendPushNotification(data?.sendMessage, channelId);\n },\n });\n }\n },\n [mongooseObjectId, setChannelMessages, channelId, images, channelToTop, expoTokens],\n );\n\n const sendPushNotification = async (post: IPost, channelId: string) => {\n const notificationData: IExpoNotificationData = {\n url: config.INBOX_MESSEGE_PATH,\n params: { channelId, hideTabBar: true },\n screen: 'DialogMessages',\n other: { sound: Platform.OS === 'android' ? undefined || null : 'default' },\n };\n\n await sendExpoNotificationOnPostMutation({\n variables: {\n postId: post?.id?.toString(),\n notificationData,\n },\n });\n };\n\n // const fetchTokenAndSendPushNotification = (message: any, channelId: any) => {\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 : 'Message';\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 // refetchChannelDetail({ id: channelId?.toString() })?.then((res: any) => {\n // if (res?.data?.viewChannelDetail?.members?.length) {\n // const channelData: any =\n // res?.data?.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 // console.log('expo to', JSON.stringify(tokens));\n // if (tokens?.length > 0) {\n // const to: any = tokens?.length > 0 ? tokens : [];\n // sendPushNotification(title, body, notificationData, to);\n // }\n // }\n // });\n // };\n\n // const handleSend1 = 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 : 'Message';\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 // refetchChannelDetail({ id: channelId?.toString() })?.then((res: any) => {\n // if (res?.data?.viewChannelDetail?.members?.length) {\n // const channelData: any =\n // res?.data?.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 // console.log('expo to', JSON.stringify(tokens));\n // if (tokens?.length > 0) {\n // const to: any = tokens?.length > 0 ? tokens : [];\n\n // sendPushNotification(title, body, notificationData, to);\n // }\n // }\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 message.replies = msg?.replies ?? [];\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 const lastReply: any = currentMessage?.replies?.data?.length > 0 ? currentMessage?.replies?.data?.[0] : null;\n\n if (currentMessage.type === 'ALERT') {\n const attachment = currentMessage?.propsConfiguration?.contents?.attachment;\n let action: string = '';\n let actionId: any = '';\n let params: any = {};\n\n if (attachment?.callToAction?.extraParams) {\n const extraParams: any = attachment?.callToAction?.extraParams;\n const route: any = extraParams?.route ?? null;\n let path: any = null;\n let param: any = null;\n if (role && role == IPreDefinedRole.Guest) {\n path = route?.guest?.name ? route?.guest?.name ?? null : null;\n param = route?.guest?.params ? route?.guest?.params ?? null : null;\n } else if (role && role == IPreDefinedRole.Owner) {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n } else {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n }\n\n action = path;\n params = { ...param };\n } else if (attachment?.callToAction?.link) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n params = { reservationId: actionId };\n }\n\n return (\n <>\n {attachment?.callToAction && action ? (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => action && params && navigation.navigate(action, params)}\n // onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n <MessageText\n {...props}\n textStyle={{\n left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 },\n }}\n />\n </Box>\n ) : (\n <TouchableHighlight\n underlayColor={'#c0c0c0'}\n style={{ width: '100%' }}\n onPress={() =>\n navigation.navigate(config.THREAD_MESSEGE_PATH, {\n channelId: channelId,\n title: 'Message',\n postParentId: currentMessage?._id,\n isPostParentIdThread: true,\n })\n }\n >\n <>\n <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />\n {currentMessage?.replies?.data?.length > 0 && (\n <HStack space={1} px={1} alignItems={'center'}>\n <HStack>\n {currentMessage?.replies?.data\n ?.filter(\n (v: any, i: any, a: any) =>\n a.findIndex((t: any) => t?.author?.id === v?.author?.id) === i,\n )\n ?.slice(0, 2)\n ?.reverse()\n ?.map((p: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={6}\n // top={i == 1 ? 4 : 0}\n // right={i == 1 ? -2 : 0}\n // zIndex={i == 1 ? 5 : 1}\n _image={{\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: p?.author?.picture,\n }}\n >\n {startCase(p?.author?.username?.charAt(0))}\n </Avatar>\n ))}\n </HStack>\n <Text fontSize={12} fontWeight={'bold'} color={'blue.800'}>\n {currentMessage?.replies?.totalCount}{' '}\n {currentMessage?.replies?.totalCount == 1 ? 'reply' : 'replies'}\n </Text>\n <Text fontSize={12} fontWeight={'bold'} color={'gray.500'}>\n {lastReply ? createdAtText(lastReply?.createdAt) : ''}\n </Text>\n </HStack>\n )}\n </>\n </TouchableHighlight>\n )}\n {/* <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n /> */}\n </>\n );\n } else {\n return (\n <TouchableHighlight\n underlayColor={'#c0c0c0'}\n style={{ width: '100%' }}\n onPress={() =>\n navigation.navigate(config.THREAD_MESSEGE_PATH, {\n channelId: channelId,\n title: 'Message',\n postParentId: currentMessage?._id,\n isPostParentIdThread: true,\n })\n }\n >\n <>\n <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />\n {currentMessage?.replies?.data?.length > 0 && (\n <HStack space={1} px={1} alignItems={'center'}>\n <HStack>\n {currentMessage?.replies?.data\n ?.filter(\n (v: any, i: any, a: any) =>\n a.findIndex((t: any) => t?.author?.id === v?.author?.id) === i,\n )\n ?.slice(0, 2)\n ?.reverse()\n ?.map((p: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={6}\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: p?.author?.picture,\n }}\n >\n {startCase(p?.author?.username?.charAt(0))}\n </Avatar>\n ))}\n </HStack>\n <Text fontSize={12} fontWeight={'bold'} color={'blue.800'}>\n {currentMessage?.replies?.totalCount}{' '}\n {currentMessage?.replies?.totalCount == 1 ? 'reply' : 'replies'}\n </Text>\n <Text fontSize={12} fontWeight={'bold'} color={'gray.500'}>\n {lastReply ? createdAtText(lastReply?.createdAt) : ''}\n </Text>\n </HStack>\n )}\n </>\n </TouchableHighlight>\n );\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 let onScroll = false;\n\n // const onEndReached = () => {\n // console.log('on end reached');\n // if (!onScroll) return;\n // // load messages, show ActivityIndicator\n // onScroll = false;\n // // setLoadingOldMessages(true);\n // };\n\n // const onMomentumScrollBegin = useCallback(\n // ({ nativeEvent }: any) => {\n // onScroll = true;\n // console.log('scroll top');\n // if (!loadingOldMessages && channelMessages?.length <= 10 && channelMessages?.length != totalCount) {\n // onFetchOld();\n // } else if (!loadingOldMessages && isCloseToTop(nativeEvent) && channelMessages?.length != totalCount) {\n // onFetchOld();\n // }\n // },\n // [loadingOldMessages, channelMessages],\n // );\n\n // const onMomentumScrollBegin = ({ nativeEvent }: any) => {\n // onScroll = true;\n // console.log('scroll top');\n // if (\n // !loadingOldMessages &&\n // (channelMessages?.length <= 10 || isCloseToTop(nativeEvent)) &&\n // channelMessages?.length != totalCount\n // ) {\n // onFetchOld();\n // }\n // };\n\n return (\n <>\n {loadEarlierMsg && <Spinner />}\n\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\n // listViewProps={{\n // onEndReached: onEndReached,\n // onEndReachedThreshold: 0.5,\n // onMomentumScrollBegin: onMomentumScrollBegin,\n // }}\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={loadEarlierMsg}\n //extraData={{ isLoadingEarlier: loadingOldMessages }}\n renderLoadEarlier={() =>\n !loadEarlierMsg && (\n <Center py={2}>\n <Button\n onPress={() => onFetchOld(data, channelMessages)}\n variant={'outline'}\n _text={{ color: 'black', fontSize: 15, fontWeight: 'bold' }}\n >\n Load earlier messages\n </Button>\n </Center>\n )\n }\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};\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 supportServices: boolean;\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 role: params?.role,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n role: channelRole,\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} pt={props?.supportServices ? 0 : 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","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 { SupportServiceDialogsListItem } from '../components/SupportServiceDialogsListItem';\nimport { useSupportServiceChannelsQuery } 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 SupportServiceInboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nconst SupportServiceDialogsComponent = (props: SupportServiceInboxProps) => {\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: serviceChannels,\n loading: serviceChannelsLoading,\n refetch: getServiceChannelsRefetch,\n } = useSupportServiceChannelsQuery({\n variables: {\n criteria: { type: 'SERVICE' },\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 getServiceChannelsRefetch({ criteria: { type: 'SERVICE' } });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const channels = React.useMemo(() => {\n if (!serviceChannels?.supportServiceChannels?.length) return null;\n let uChannels: any =\n serviceChannels?.supportServiceChannels?.filter((c: any) =>\n c.members.some((u: any) => u.user.__typename == 'UserAccount'),\n ) ?? [];\n return uChannels || [];\n }, [serviceChannels]);\n\n const handleSelectChannel = useCallback((id: any, title: any, postParentId: any) => {\n if (params?.channelId) {\n navigation.navigate(\n params?.postParentId || params?.postParentId == 0 ? config.THREAD_MESSEGE_PATH : (config.THREADS_PATH as any),\n {\n channelId: params?.channelId,\n role:params?.role,\n title: params?.title ?? null,\n postParentId: params?.postParentId,\n hideTabBar: true,\n },\n );\n } else {\n navigation.navigate(\n postParentId || postParentId == 0 ? config.THREAD_MESSEGE_PATH : (config.THREADS_PATH as any),\n {\n channelId: id,\n role:channelRole,\n title: title,\n postParentId: postParentId,\n hideTabBar: true,\n },\n );\n }\n }, []);\n\n const handleRefresh = useCallback(() => {\n //if(userChannels?.channelsByUser?.length != channels?.length)setRefresh(true);\n setRefresh(true)\n getServiceChannelsRefetch({ criteria: { type: 'SERVICE' } })?.then((res:any)=>setRefresh(false));\n }, []);\n\n return (\n <Box p={2} pb={0}>\n <FlatList\n data={channels && channels?.length > 0 ? channels : []}\n onRefresh={handleRefresh}\n refreshing={serviceChannelsLoading}\n contentContainerStyle={{}}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <SupportServiceDialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n refreshing={refreshing}\n selectedChannelId={params?.channelId}\n role={channelRole}\n />\n )}\n keyExtractor={(item, index) => 'support-service-key' + index}\n />\n </Box>\n );\n};\n\nexport const SupportServiceDialogs = React.memo(SupportServiceDialogsComponent);\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n HStack,\n VStack,\n Icon,\n Image,\n Spinner,\n Text,\n useColorModeValue,\n ScrollView,\n Center,\n Avatar,\n} from 'native-base';\nimport { Platform, TouchableOpacity } from 'react-native';\nimport { useNavigation, useFocusEffect, useRoute } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy, startCase } 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 useThreadMessagesLazyQuery,\n useSendThreadMessageMutation,\n useMessagesQuery,\n useSendMessagesMutation,\n useViewChannelDetailQuery,\n useUploadFilesNative,\n useGetNewMongooseObjectIdQuery,\n useOnThreadChatMessageAddedSubscription,\n IPreDefinedRole,\n useSendExpoNotificationOnPostMutation,\n IPost,\n} from '@messenger-box/platform-client';\nimport { IExpoNotificationData, 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';\nimport { format, isToday, isYesterday } from 'date-fns';\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\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\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 ThreadConversationViewComponent = ({ channelId, postParentId, isPostParentIdThread, role }: any) => {\n const { params } = useRoute<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 [loadEarlierMsg, setLoadEarlierMsg] = 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 const [parentId, setParentId] = useState<any>(postParentId);\n const { startUpload } = useUploadFilesNative();\n const [threadPost, setThreadPost] = useState<any[]>([]);\n const { data: mongooseObjectId } = useGetNewMongooseObjectIdQuery({\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n const {\n data: newThreadMsg,\n loading: newThreadMsgLoading,\n error: newThreadMsgError,\n } = useOnThreadChatMessageAddedSubscription({\n variables: {\n channelId: channelId?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n },\n });\n\n const [sendThreadMessage] = useSendThreadMessageMutation();\n const [sendExpoNotificationOnPostMutation] = useSendExpoNotificationOnPostMutation();\n\n const [getThreadMessages, { data: threadMessagesData, loading: threadLoading, refetch: refetchThreadMessages }] =\n useThreadMessagesLazyQuery({\n variables: {\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n role: role?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data,\n loading: messageLoading,\n refetch,\n }: any = useMessagesQuery({\n variables: {\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n // const { data: checkForMessages }: any = useCheckForNewMessagesQuery({\n // variables: {\n // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n // },\n // skip: !channelId,\n // fetchPolicy: 'network-only',\n // pollInterval: 5000,\n // });\n\n useFocusEffect(\n React.useCallback(() => {\n navigation?.setOptions({ title: params?.title ?? 'Thread' });\n if (parentId || parentId == 0) {\n refetchThreadMessages({\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n role: role?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n });\n }\n refetch({\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n parentId: !parentId || parentId == 0 ? null : parentId?.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 setTotalCount(0);\n setChannelMessages([]);\n };\n }, []),\n );\n\n useEffect(() => {\n setParentId(postParentId);\n }, [postParentId]);\n\n useEffect(() => {\n if (parentId && parentId == 0) {\n getThreadMessages({\n variables: {\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n role: role?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n },\n });\n }\n }, [parentId]);\n\n useEffect(() => {\n if (threadMessagesData?.threadMessages) {\n const { data: threads, totalCount: threadTotalCount }: any = threadMessagesData?.threadMessages;\n const threadMessage = threads?.map((t: any) => t?.post);\n setThreadPost(threadMessage);\n // if (!isPostParentIdThread) {\n // // setTotalCount((pc: any) => pc + threadTotalCount);\n // setChannelMessages((oldMessages: any) => uniqBy([...threadMessage, ...oldMessages], ({ id }) => id));\n // }\n }\n }, [threadMessagesData, isPostParentIdThread]);\n\n React.useEffect(() => {\n if (newThreadMsg) {\n console.log('newThreadMsg');\n const msg = newThreadMsg?.threadChatMessageAdded;\n setTotalCount((preCount: any) => preCount + 1);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, msg], ({ id }) => id));\n }\n }, [newThreadMsg]);\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 // setLoadingOldMessages(false);\n // }\n // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data, loadingOldMessages, channelMessages, totalCount]);\n\n useEffect(() => {\n if ((data?.messages?.data && channelMessages.length === 0) || (data?.messages?.data && loadingOldMessages)) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n setTotalCount(messeageTotalCount);\n }\n setLoadEarlierMsg(false);\n if (loadingOldMessages) setLoadingOldMessages(false);\n }\n if (threadPost?.length && data?.messages?.totalCount == channelMessages.length) {\n // setTotalCount((pc: any) => pc + threadTotalCount);\n setChannelMessages((oldMessages: any) => uniqBy([...threadPost, ...oldMessages], ({ id }) => id));\n }\n }, [data, loadingOldMessages, channelMessages, threadPost]);\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 // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\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, parentId]);\n\n React.useEffect(() => {\n if (selectedImage) setImageLoading(false);\n }, [selectedImage]);\n\n // const onFetchOld = useCallback(() => {\n // if (data?.messages?.totalCount > channelMessages.length) {\n // setLoadEarlierMsg(true);\n // refetch({\n // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n // skip: channelMessages.length,\n // })?.then((res: any) => setLoadingOldMessages(true));\n // }\n // }, [data, channelMessages]);\n\n const onFetchOld = useCallback((data: any, channelMessages: any) => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadEarlierMsg(true);\n refetch({\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n skip: channelMessages.length,\n })?.then((res: any) => setLoadingOldMessages(true));\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\n // const ObjectId = (m = Math, d = Date, h = 16, s = (s:any) => m.floor(s).toString(h)) =>\n // s(d.now() / 1000) + ' '.repeat(h).replace(/./g, () => s(m.random() * h))\n\n const handleSend = useCallback(\n async (message: string) => {\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n if (images && images.length > 0) {\n const postId: any = mongooseObjectId?.getNewMongooseObjectId;\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 const files = uploadedFiles?.map((f: any) => f.id) ?? null;\n await sendThreadMessage({\n variables: {\n postId,\n channelId,\n postParentId: !parentId || parentId == 0 ? null : parentId,\n threadMessageInput: {\n content: message,\n files,\n role,\n },\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n const responseMessage = data?.sendThreadMessage?.lastMessage;\n if (!parentId || parentId == 0) {\n setParentId(responseMessage?.id);\n setChannelMessages((messages: any) => [\n ...messages,\n {\n ...responseMessage,\n files: {\n totalCount: uploadedFiles.length,\n data: uploadedFiles,\n },\n },\n ]);\n\n setTotalCount((t: any) => t + 1);\n }\n\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n\n // if (!parentId || parentId == 0) {\n // setParentId(responseMessage?.id);\n // }\n const msg = message == '' ? 'Send a file' : message;\n sendPushNotification(\n responseMessage,\n channelId,\n parentId,\n data?.sendThreadMessage?.data?.id,\n );\n },\n });\n }\n } else {\n setLoading(true);\n await sendThreadMessage({\n variables: {\n channelId,\n postParentId: !parentId || parentId == 0 ? null : parentId,\n threadMessageInput: {\n content: message,\n role,\n },\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n const responseMessage = data?.sendThreadMessage?.lastMessage;\n if (!parentId || parentId == 0) {\n setParentId(responseMessage?.id);\n setChannelMessages((messages: any) => [...messages, responseMessage]);\n setTotalCount((t: any) => t + 1);\n }\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n // if (!parentId || parentId == 0) {\n // setParentId(responseMessage?.id);\n // }\n sendPushNotification(responseMessage, channelId, parentId, data?.sendThreadMessage?.data?.id);\n },\n });\n }\n },\n [mongooseObjectId, setChannelMessages, channelId, images, parentId, expoTokens],\n );\n\n const sendPushNotification = async (post: IPost, channelId: string, parentId: any, threadId: string) => {\n const notificationData: IExpoNotificationData = {\n url: config.THREAD_MESSEGE_PATH,\n params: { channelId, title: params?.title ?? 'Thread', postParentId: parentId, hideTabBar: true },\n screen: 'DialogThreadMessages',\n thread: { id: threadId },\n other: { sound: Platform.OS === 'android' ? undefined || null : 'default' },\n };\n if (parentId || parentId == 0) {\n await sendExpoNotificationOnPostMutation({\n variables: {\n postId: post?.id?.toString(),\n notificationData,\n },\n });\n }\n };\n\n // const fetchTokenAndSendPushNotification = (message: any, channelId: any, parentId: any) => {\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 : 'Message';\n // const body: String = message;\n // const notificationData: any = {\n // url: config.THREAD_MESSEGE_PATH,\n // params: { channelId, title: params?.title ?? 'Thread', postParentId: parentId, hideTabBar: true },\n // screen: 'DialogThreadMessages',\n // };\n // if (parentId || parentId == 0) {\n // refetchThreadMessages({\n // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // role: role?.toString(),\n // postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n // })?.then((res: any) => {\n // if (res?.data?.threadMessages?.data?.length > 0) {\n // const participants =\n // res?.data?.threadMessages?.data?.map((t: any) => t?.participants)?.flat(1) ?? [];\n // const participantsTokens =\n // participants?.length > 0\n // ? participants\n // ?.filter((u: any) => u?.id != auth?.id)\n // ?.map((p: any) => p.tokens)\n // ?.flat(1)\n // : [];\n // const expoTokens =\n // participantsTokens?.length > 0\n // ? participantsTokens\n // ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')\n // ?.map((et: any) => et?.token)\n // : [];\n // if (expoTokens?.length > 0) {\n // const to: any = expoTokens;\n // sendPushNotification(title, body, notificationData, to);\n // }\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 ?? auth?.profile?.id,\n name:\n msg?.author?.givenName ??\n auth?.profile?.given_name + ' ' + msg?.author?.familyName ??\n auth?.profile?.family_name,\n avatar: msg?.author?.picture ?? auth?.profile?.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 let params: any = {};\n if (attachment?.callToAction?.extraParams) {\n const extraParams: any = attachment?.callToAction?.extraParams;\n const route: any = extraParams?.route ?? null;\n let path: any = null;\n let param: any = null;\n if (role && role == IPreDefinedRole.Guest) {\n path = route?.guest?.name ? route?.guest?.name ?? null : null;\n param = route?.guest?.params ? route?.guest?.params ?? null : null;\n } else if (role && role == IPreDefinedRole.Owner) {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n } else {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n }\n\n action = path;\n params = { ...param };\n } else if (attachment?.callToAction?.link) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n params = { reservationId: actionId };\n }\n\n // if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n // action = CALL_TO_ACTION_PATH;\n // actionId = attachment?.callToAction?.link.split('/').pop();\n // }\n\n return (\n <>\n {attachment?.callToAction && action ? (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => action && params && navigation.navigate(action, params)}\n //onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n <MessageText\n {...props}\n textStyle={{\n left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 },\n }}\n />\n </Box>\n ) : (\n <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />\n )}\n {/* <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n /> */}\n </>\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 return <SlackMessage {...props} isShowImageViewer={isShowImageViewer} setImageViewer={setImageViewerObject} />;\n };\n\n return (\n <>\n {/* {loadingOldMessages && <Spinner />} */}\n {loadEarlierMsg && <Spinner />}\n {isPostParentIdThread && (\n <>\n {threadPost?.length > 0 && (\n <>\n <VStack px={2} pt={2} pb={0} space={2}>\n <HStack space={2} alignItems={'center'}>\n <Avatar\n bg={'transparent'}\n size={10}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: threadPost[0]?.author?.picture,\n }}\n >\n {startCase(threadPost[0]?.author?.username?.charAt(0))}\n </Avatar>\n <Box>\n <Text color={'black'} fontWeight={'bold'}>\n {threadPost[0]?.author?.givenName ?? ''}{' '}\n {threadPost[0]?.author?.familyName ?? ''}\n </Text>\n <Text color={'gray.500'} pl={0}>\n {createdAtText(threadPost[0]?.createdAt)} at{' '}\n {format(new Date(threadPost[0]?.createdAt), 'hh:ss:a')}\n </Text>\n </Box>\n </HStack>\n <HStack px={2} space={2} alignItems={'center'}>\n <Text>{threadPost[0]?.message ?? ''}</Text>\n </HStack>\n </VStack>\n\n <Box py={4}>\n <Box px={4} borderTopWidth={1} borderBottomWidth={1} py={2} borderColor={'gray.200'}>\n <Text color={'gray.600'} fontWeight={'bold'}>\n {threadPost[0]?.replies?.totalCount}{' '}\n {threadPost[0]?.replies?.totalCount > 0 ? 'replies' : 'reply'}\n </Text>\n </Box>\n </Box>\n </>\n )}\n </>\n )}\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\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: 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={loadEarlierMsg}\n renderLoadEarlier={() =>\n !loadEarlierMsg && (\n <Center py={2}>\n <Button\n onPress={() => onFetchOld(data, channelMessages)}\n variant={'outline'}\n _text={{ color: 'black', fontSize: 15, fontWeight: 'bold' }}\n >\n Load earlier messages\n </Button>\n </Center>\n )\n }\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 messagesContainerStyle={messageList?.length == 0 && { transform: [{ scaleY: -1 }] }}\n renderChatEmpty={() => (\n <>\n {!threadLoading && !messageLoading && messageList && messageList?.length == 0 && (\n <Box p={5}>\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any message yet!</Text>\n </Center>\n </Box>\n )}\n </>\n )}\n lightboxProps={{\n underlayColor: 'transparent',\n springConfig: { tension: 90000, friction: 90000 },\n disabled: true,\n }}\n />\n </>\n );\n};\n\nexport const ThreadConversationView = React.memo(ThreadConversationViewComponent);\n","import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center, Spinner, Button } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport { orderBy, uniqBy, startCase } from 'lodash';\nimport { ThreadViewItem } from '../components/ThreadsViewItem';\nimport { useThreadMessagesQuery, useOnThreadCreatedUpdatedSubscription } 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';\nconst { MESSAGES_PER_PAGE } = config;\n\nexport interface ThreadsViewProps {\n channelId?: string;\n role?: string;\n channelsDetail?: any;\n refetchChannelDetail: (id: any) => Promise<any>;\n}\n\nconst ThreadsViewComponent = ({ channelId, role, channelsDetail, refetchChannelDetail }: ThreadsViewProps) => {\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 [threadData, setThreadsData] = useState<any>([]);\n\n const {\n data,\n loading: threadLoading,\n error,\n refetch,\n } = useThreadMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n role: role?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n // const { data: threadCreatedUpdated } = useOnThreadCreatedUpdatedSubscription({\n // variables: { channelId: channelId?.toString() },\n // });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n navigation?.setOptions({ title: params?.title ?? 'Thread' });\n refetch({\n channelId: channelId?.toString(),\n role: role?.toString(),\n limit: MESSAGES_PER_PAGE,\n }).then(({ data }) => {\n if (!data?.threadMessages?.data) {\n return;\n }\n\n if (data?.threadMessages?.data?.length) {\n const { data: newThreads } = data?.threadMessages;\n setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));\n }\n });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [channelId]),\n );\n\n React.useEffect(() => {\n if (data?.threadMessages?.data?.length) {\n const { data: newThreads } = data?.threadMessages;\n setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));\n }\n }, [data]);\n\n // React.useEffect(() => {\n // if (threadCreatedUpdated?.threadCreatedUpdated?.data) {\n // const { data: newThreads } = threadCreatedUpdated?.threadCreatedUpdated;\n\n // setThreadsData((oldThreads: any) => {\n // const i = oldThreads.findIndex((el: any) => el.id === newThreads?.id);\n // if (i > -1) oldThreads[i] = newThreads; // (2)\n // else oldThreads.push(newThreads);\n // return oldThreads;\n // });\n // // setThreadsData((oldThreads: any) => uniqBy([...oldThreads, newThreads], ({ id }) => id));\n // }\n // }, [threadCreatedUpdated]);\n\n const setData = React.useCallback((newThreads: any) => {\n setThreadsData((oldThreads: any) => {\n const i = oldThreads.findIndex((el: any) => el.id === newThreads?.id);\n if (i > -1) oldThreads[i] = newThreads; // (2)\n else oldThreads.push(newThreads);\n return oldThreads;\n });\n // setThreadsData((oldThreads: any) => uniqBy([...oldThreads, newThreads], ({ id }) => id));\n }, []);\n\n const threads = React.useMemo(() => {\n if (!threadData?.length) return null;\n return orderBy(threadData, ['updatedAt'], ['desc']) || [];\n //return threadData || [];\n }, [threadData]);\n\n const threadReplies = React.useMemo(() => {\n if (!threads?.length) return null;\n return threads?.map((t: any) => t?.replies)?.flat(1) || [];\n //return threadData || [];\n }, [threads]);\n\n // const threads = React.useMemo(() => {\n // if (!data?.threadMessages?.data?.length) return null;\n // return data?.threadMessages?.data || [];\n // }, [data]);\n\n const handleSelectThread = useCallback((id: any, title: any, postParentId: any) => {\n navigation.navigate(config.THREAD_MESSEGE_PATH as any, {\n channelId: id,\n role: role?.toString(),\n title: title,\n postParentId: postParentId,\n hideTabBar: true,\n });\n // if (params?.channelId) {\n // navigation.navigate(config.THREAD_MESSEGE_PATH as any, {\n // channelId: params?.channelId,\n // title: params?.title ?? null,\n // postParentId: postParentId,\n // hideTabBar: true,\n // });\n // } else {\n // navigation.navigate(config.THREAD_MESSEGE_PATH as any, {\n // channelId: id,\n // title: title,\n // postParentId: postParentId,\n // hideTabBar: true,\n // });\n // }\n }, []);\n\n const handleRefresh = useCallback(() => {\n refetch({\n channelId: channelId?.toString(),\n role: role?.toString(),\n limit: MESSAGES_PER_PAGE,\n }).then(({ data }) => {\n if (!data?.threadMessages?.data) {\n return;\n }\n\n if (data?.threadMessages?.data?.length) {\n const { data: newThreads } = data?.threadMessages;\n setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));\n }\n });\n }, []);\n\n const fetchMoreThreads = useCallback(() => {\n refetch({\n channelId: channelId?.toString(),\n role: role?.toString(),\n skip: threads?.length,\n });\n }, []);\n\n // if (!threadReplies || threadReplies?.length == 0) {\n // return (\n // <Center w=\"full\" bg={'f8f8f8'} height={'full'}>\n // You don't have any message yet!\n // </Center>\n // );\n // }\n\n return (\n <Box\n flex={1}\n p={2}\n pb={0}\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 <FlatList\n style={{ flex: 1 }}\n data={threads && threads?.length > 0 ? threads : []}\n onRefresh={handleRefresh}\n refreshing={threadLoading}\n contentContainerStyle={{ paddingBottom: 60 }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: thread, index }) => (\n <ThreadViewItem\n key={index}\n onOpen={handleSelectThread}\n currentUser={auth}\n thread={thread}\n role={role}\n setData={setData}\n />\n )}\n ListEmptyComponent={() => (\n <>\n {!threadLoading || threads?.length == 0}\n <Box p={5}>\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any message yet!</Text>\n </Center>\n </Box>\n </>\n )}\n keyExtractor={(item, index) => 'threads-view-key' + index}\n onEndReached={fetchMoreThreads}\n onEndReachedThreshold={0.1}\n />\n </Box>\n );\n};\n\nexport const ThreadsView = React.memo(ThreadsViewComponent);\n","export * from './inbox/Inbox';\nexport * from './inbox/DialogMessages';\nexport * from './inbox/DialogThreads';\nexport * from './inbox/DialogThreadMessages'\n","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/DialogThreadMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogThreads.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/components/SupportServiceDialogsListItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/ThreadsViewItem.tsx","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/inbox/containers/SupportServiceDialogs.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ThreadConversationView.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/containers/ThreadsView.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 { DialogThreads } from '../screens/inbox/DialogThreads';\nimport { DialogThreadMessages } from '../screens/inbox/DialogThreadMessages';\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, role: null },\n component: (props: any) => (\n <DialogMessages\n {...props}\n channelId={props?.route?.params?.channelId}\n role={props?.route?.params?.role}\n />\n ),\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 ['//thread']: {\n exact: true,\n name: 'Thread',\n props: {\n initialParams: { channelId: null, postParentId: null, role: null },\n component: (props: any) => (\n <DialogThreads\n {...props}\n channelId={props?.route?.params?.channelId}\n postParentId={props?.route?.params?.postParentId}\n role={props?.route?.params?.role}\n />\n ),\n options: ({ navigation }: any) => {\n return {\n headerShown: true,\n title: 'Thread',\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 ['//threadmessage']: {\n exact: true,\n name: 'ThreadMessage',\n props: {\n initialParams: { channelId: null, postParentId: null, isPostParentIdThread: null, role: null },\n component: (props: any) => (\n <DialogThreadMessages\n {...props}\n channelId={props?.route?.params?.channelId}\n postParentId={props?.route?.params?.postParentId}\n isPostParentIdThread={props?.route?.params?.isPostParentIdThread}\n role={props?.route?.params?.role}\n />\n ),\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, role }) {\n return (\n // <Box bg={'white'} flex={1} pt={5}>\n <Box bg={'white'} flex={1}>\n <ConversationView channelId={channelId} role={role} />\n </Box>\n );\n}\n","import * as React from 'react';\nimport { Box, Spinner, Text } from 'native-base';\nimport { ThreadConversationView } from './containers/ThreadConversationView';\nimport { ThreadsView } from './containers/ThreadsView';\nimport { useViewChannelDetailQuery, useSendThreadMessageMutation } from '@messenger-box/platform-client';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\n\nexport function DialogThreadMessages({ channelId, postParentId, isPostParentIdThread, role }) {\n const {\n data,\n loading: channelLoading,\n refetch,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n });\n\n const [sendThreadMessage] = useSendThreadMessageMutation();\n const [loading, setLoading] = React.useState<boolean>(true);\n const [channel, setChannel] = React.useState<any>(null);\n const [parentId, setParentId] = React.useState<any>(postParentId);\n\n const refetchChannelDetail = React.useCallback(\n (id: string) => {\n return refetch({ id: id?.toString() });\n },\n [channelId],\n );\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchChannelDetail(channelId);\n return () => {};\n }, []),\n );\n\n React.useEffect(() => {\n setParentId(postParentId);\n }, [postParentId]);\n\n React.useEffect(() => {\n if (data?.viewChannelDetail) {\n setChannel(data?.viewChannelDetail);\n setLoading(false);\n }\n }, [data]);\n\n // React.useEffect(() => {\n // async function sendInitialMessage(channel: any) {\n // const content = `Welcome to ${channel?.title}`;\n // const createdBy = channel?.creator?.id;\n // await sendThreadMessage({\n // variables: {\n // channelId,\n // threadMessageInput: {\n // content,\n // role,\n // },\n // responderId: createdBy,\n // },\n // update: (cache, { data, errors }: any) => {\n // if (!data) {\n // return;\n // }\n // setParentId(data?.sendThreadMessage?.lastMessage?.id);\n // },\n // });\n // }\n // if ((!parentId || parentId == 0) && channel) {\n // sendInitialMessage(channel);\n // }\n\n // if (parentId) setLoading(false);\n // }, [parentId, channel]);\n\n return (\n <Box bg={'white'} flex={1}>\n {/* {loading && !parentId ? ( */}\n {loading ? (\n <Spinner />\n ) : (\n <ThreadConversationView\n channelId={channelId}\n postParentId={parentId}\n isPostParentIdThread={isPostParentIdThread}\n role={role}\n />\n )}\n </Box>\n );\n}\n","import * as React from 'react';\nimport { Box, Spinner, Text } from 'native-base';\nimport { ThreadConversationView } from './containers/ThreadConversationView';\nimport { ThreadsView } from './containers/ThreadsView';\nimport { useViewChannelDetailQuery } from '@messenger-box/platform-client';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\n\nexport function DialogThreads({ channelId, postParentId,role }) {\n const {\n data,\n loading: channelLoading,\n refetch,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\n },\n });\n\n const channelsDetail = React.useMemo(() => {\n if (!data?.viewChannelDetail) return null;\n return data?.viewChannelDetail;\n }, [data]);\n\n const refetchChannelDetail = React.useCallback(\n (id: string) => {\n return refetch({ id: id?.toString() });\n },\n [channelId],\n );\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchChannelDetail(channelId);\n return () => {};\n }, []),\n );\n\n return (\n // <Box bg={'white'} flex={1} pt={5}>\n <>\n {channelLoading ? (\n <Spinner />\n ) : (\n <>\n <Box\n flex={1}\n _dark={{\n borderColor: 'coolGray.600',\n backgroundColor: 'gray.700',\n }}\n _light={{\n backgroundColor: 'gray.50',\n }}\n >\n <ThreadsView\n channelId={channelId}\n role={role}\n channelsDetail={channelsDetail}\n refetchChannelDetail={refetchChannelDetail}\n />\n </Box>\n </>\n )}\n </>\n );\n\n // return (\n // // <Box bg={'white'} flex={1} pt={5}>\n // <>\n // {channelLoading ? (\n // <Spinner />\n // ) : (\n // <>\n // {postParentId || postParentId == 0 ? (\n // <Box bg={'white'} flex={1}>\n // <ThreadConversationView\n // channelId={channelId}\n // postParentId={postParentId}\n // channelsDetail={channelsDetail}\n // refetchChannelDetail={refetchChannelDetail}\n // />\n // </Box>\n // ) : (\n // <Box\n // flex={1}\n // _dark={{\n // borderColor: 'coolGray.600',\n // backgroundColor: 'gray.700',\n // }}\n // _light={{\n // backgroundColor: 'gray.50',\n // }}\n // >\n // <ThreadsView\n // channelId={channelId}\n // channelsDetail={channelsDetail}\n // refetchChannelDetail={refetchChannelDetail}\n // />\n // </Box>\n // )}\n // </>\n // )}\n // </>\n // );\n}\n","import * as React from 'react';\nimport { Box, Text } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\nimport { SupportServiceDialogs } from './containers/SupportServiceDialogs';\n\nexport const Inbox = (props: any) => {\n const { channelFilters, channelRole, supportServices } = props;\n return (\n <Box bg={'white'} flex={1}>\n {supportServices && <SupportServiceDialogs channelFilters={channelFilters} channelRole={channelRole} {...props} />}\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 parentId:any = null;\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n parentId: parentId,\n limit: 25,\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(),parentId:parentId, limit: 25 });\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 const filteredData = data?.filter((p: any) => p?.message !== '');\n return filteredData[0];\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,TouchableHighlight, 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 <TouchableHighlight underlayColor={'#c0c0c0'} style={{width:'100%'}} 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 </TouchableHighlight>\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 <TouchableHighlight style={{width:'100%'}} underlayColor={'#c0c0c0'} 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 </TouchableHighlight>\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 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 {\n IChannel,\n IUserAccount,\n useThreadMessagesQuery,\n useMessagesQuery,\n useUserAccountQuery,\n useOnThreadCreatedUpdatedSubscription,\n useOnThreadChatMessageAddedSubscription,\n} 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, postParentId?: any) => void;\n refreshing: boolean;\n role: any;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const SupportServiceDialogsListItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n refreshing,\n role,\n}) {\n const {\n data: threadMessages,\n loading: threadMessageLoading,\n error,\n refetch: refetchThreadMessages,\n } = useThreadMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n role,\n limit: 2,\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: 25 });\n refetchThreadMessages({ channelId: channel?.id?.toString(), role, limit: 2 });\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [refreshing]),\n );\n\n const lastMessage = useMemo(() => {\n if (!threadMessages?.threadMessages?.data?.length) {\n return null;\n }\n const { data }: any = threadMessages.threadMessages;\n const replies =\n data\n ?.map((t: any) => t?.replies)\n ?.flat(1)\n ?.filter((p: any) => p?.message !== '') ?? [];\n if (replies?.length) {\n return replies[0];\n // return replies[replies.length - 1];\n } else {\n const post =\n data?.find((t: any) => {\n return t?.post?.message !== '';\n }) ??\n data?.find((t: any) => {\n return t?.post;\n }) ??\n null;\n return post ? post?.post : null;\n }\n }, [threadMessages]);\n\n const creatorAndMembersId = React.useMemo(() => {\n if (!channel?.members) return null;\n const membersIds: any =\n channel?.members?.filter((m: any) => m?.user?.id !== currentUser?.id)?.map((mu: any) => mu?.user?.id) ?? [];\n const creatorId: any = channel?.creator?.id;\n const mergedIds: any = [].concat(membersIds, creatorId) ?? [];\n return mergedIds?.filter((m: any, pos: any) => mergedIds?.indexOf(m) === pos) ?? [];\n }, [channel]);\n\n const postParentId = React.useMemo(() => {\n if (!creatorAndMembersId?.length) return null;\n\n return creatorAndMembersId?.length && creatorAndMembersId?.includes(currentUser?.id)\n ? null\n : lastMessage?.parentId\n ? lastMessage?.parentId\n : lastMessage?.id ?? 0;\n }, [creatorAndMembersId, lastMessage]);\n\n const { data: threadCreatedUpdated } = useOnThreadCreatedUpdatedSubscription({\n variables: {\n channelId: channel?.id?.toString(),\n postParentId:\n postParentId == null\n ? null\n : lastMessage?.parentId\n ? lastMessage?.parentId ?? null\n : lastMessage?.id ?? null,\n },\n });\n\n React.useEffect(() => {\n if (threadCreatedUpdated?.threadCreatedUpdated?.data) {\n refetchThreadMessages({ channelId: channel?.id?.toString(), role, limit: 2 });\n }\n }, [threadCreatedUpdated]);\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, channel?.title, postParentId)}\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 <Avatar\n key={'service-channels-key'}\n bg={'transparent'}\n size={9}\n top={0}\n right={0}\n zIndex={1}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: channel?.creator?.picture,\n }}\n >\n {startCase(channel?.creator?.username?.charAt(0))}\n </Avatar>\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 {channel?.title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {/* {creatorAndMembersId?.length && creatorAndMembersId?.includes(currentUser?.id)\n ? lastMessageCreatorAndMembers?.message ?? ''\n : lastMessage?.message ?? ''} */}\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n {/* {creatorAndMembersId?.length && creatorAndMembersId?.includes(currentUser?.id) ? (\n <Text color=\"gray.500\">\n {lastMessageCreatorAndMembers\n ? createdAtText(lastMessageCreatorAndMembers?.createdAt)\n : ''}\n </Text>\n ) : (\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n )} */}\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 SupportServiceDialogsListItem = React.memo(SupportServiceDialogsListItemComponent);\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, VStack, HStack, Center, Stack, Box, Avatar, View, Button } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport {\n IChannel,\n IUserAccount,\n useThreadMessagesQuery,\n useMessagesQuery,\n useUserAccountQuery,\n useOnThreadChatMessageAddedSubscription,\n useOnThreadCreatedUpdatedSubscription,\n} 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 thread?: any;\n onOpen: (id: any, title: any, postParentId?: any) => void;\n role?: any;\n setData?: any;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const ThreadViewItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n thread,\n onOpen,\n role,\n setData,\n}) {\n const { data: threadCreatedUpdated } = useOnThreadCreatedUpdatedSubscription({\n variables: {\n channelId: thread?.channel?.id?.toString(),\n postParentId: thread?.post?.id?.toString(),\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n React.useEffect(() => {\n if (threadCreatedUpdated?.threadCreatedUpdated?.data) setData(threadCreatedUpdated?.threadCreatedUpdated?.data);\n }, [threadCreatedUpdated?.threadCreatedUpdated]);\n\n const threadPostReply = React.useMemo(() => {\n if (!thread?.replies) return null;\n if (threadCreatedUpdated?.threadCreatedUpdated?.data?.replies?.length) {\n return threadCreatedUpdated?.threadCreatedUpdated?.data?.replies;\n } else return thread?.replies;\n }, [thread, threadCreatedUpdated]);\n\n // const lastMessage = useMemo(() => {\n // if (!threadPost) {\n // return null;\n // }\n // const replies = threadPost?.replies?.filter((p: any) => p?.message !== '') ?? [];\n // if (replies?.length) {\n // return replies[0];\n // // return replies[replies.length - 1];\n // } else {\n // const post = threadPost?.post ?? null;\n // return post ? post?.post : null;\n // }\n // }, [threadPost]);\n\n // const participants: any = React.useMemo(() => {\n // if (!thread?.participants?.length) return null;\n // return thread?.participants?.filter((u: any) => u?.user?.id !== currentUser?.id) ?? [];\n // }, [thread]);\n\n // const allParticipantsNames: any = React.useMemo(() => {\n // if (!participants?.length) return null;\n // return (\n // participants\n // ?.map((p: any) => {\n // return p?.user?.givenName + ' ' + p?.user?.familyName ?? '';\n // })\n // ?.join(', ') ?? ''\n // );\n // }, [participants]);\n\n if (!threadPostReply || threadPostReply?.length == 0) {\n return <></>;\n }\n\n return (\n <VStack\n space={1}\n py={2}\n px={2}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\n flex={1}\n _dark={{\n borderColor: 'white',\n backgroundColor: 'white',\n }}\n _web={{\n shadow: 2,\n borderWidth: 0,\n }}\n _light={{\n backgroundColor: 'white',\n }}\n >\n <HStack\n // px={2}\n // pl={3}\n py={2}\n space={2}\n w={'100%'}\n flex={1}\n direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={1}>\n {/* <HStack flex={1} space={5} py={2} alignItems={'baseline'}>\n <Box>\n <Avatar.Badge size={4} left={0} zIndex={1} bg=\"green.800\" />\n </Box>\n <Box>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {allParticipantsNames || ''}\n </Text>\n </Box>\n </HStack> */}\n <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={1}>\n {/* <HStack space={2} py={2}>\n <Box>\n <Avatar\n bg={'transparent'}\n size={8}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: thread?.post?.author?.picture,\n }}\n >\n {startCase(thread?.post?.author?.username?.charAt(0))}\n </Avatar>\n </Box>\n <Box>\n <HStack space={4}>\n <Text>\n {thread?.post?.author?.givenName + ' ' + thread?.post?.author?.familyName ??\n ''}\n </Text>\n <Text color=\"gray.500\">\n {thread?.post ? createdAtText(thread?.post?.createdAt) : ''}\n </Text>\n </HStack>\n <Text color=\"gray.600\" noOfLines={2}>\n {thread?.post?.message ?? ''}\n </Text>\n {!thread?.replies?.length && (\n <Button\n size={'xs'}\n w={150}\n variant={'outline'}\n _text={{ fontSize: 12, color: '#000' }}\n onPress={() =>\n onOpen(thread?.channel?.id, thread?.channel?.title, thread?.post?.id)\n }\n >\n Reply\n </Button>\n )}\n </Box>\n </HStack> */}\n {threadPostReply?.length > 0 && (\n <>\n {threadPostReply\n ?.slice(0, 2)\n ?.reverse()\n ?.map((reply: any, index: any) => (\n <HStack key={index} space={2} pb={2} pt={1}>\n <Box>\n <Avatar\n bg={'transparent'}\n size={8}\n _image={{\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: reply?.author?.picture,\n }}\n >\n {startCase(reply?.author?.username?.charAt(0))}\n </Avatar>\n </Box>\n <Box>\n <HStack space={4}>\n <Text>\n {reply?.author?.givenName ?? '' ?? ''}{' '}\n {reply?.author?.familyName ?? '' ?? ''}\n {/* {lastMessage?.author?.givenName +\n ' ' +\n lastMessage?.author?.familyName ?? ''} */}\n </Text>\n <Text color=\"gray.500\">\n {reply?.createdAt ? createdAtText(reply?.createdAt) : ''}\n {/* {lastMessage ? createdAtText(lastMessage?.createdAt) : ''} */}\n </Text>\n </HStack>\n <Text color=\"gray.600\" noOfLines={2}>\n {reply?.message\n ? reply?.message.length < 70\n ? `${reply?.message}`\n : `${reply?.message.substring(0, 68)}....`\n : ''}\n {/* {lastMessage?.message\n ? lastMessage?.message.length < 70\n ? `${lastMessage?.message}`\n : `${lastMessage?.message.substring(0, 68)}....`\n : ''} */}\n </Text>\n {(threadPostReply?.length == 1 || index !== 0) && (\n <Button\n size={'xs'}\n w={150}\n variant={'outline'}\n _text={{ fontSize: 12, color: '#000' }}\n onPress={() =>\n onOpen(\n thread?.channel?.id,\n thread?.channel?.title,\n thread?.post?.id,\n )\n }\n >\n Reply\n </Button>\n )}\n </Box>\n </HStack>\n ))}\n </>\n )}\n </Box>\n </HStack>\n </Box>\n </HStack>\n {/* <HStack>\n <Box flex={0.06} alignItems={'flex-start'}></Box>\n <Button\n size={'xs'}\n variant={'outline'}\n _text={{ fontSize: 12, color: '#000' }}\n onPress={() => onOpen(thread?.channel?.id, thread?.channel?.title, postParentId)}\n >\n Reply\n </Button>\n </HStack> */}\n </VStack>\n );\n};\n\nexport const ThreadViewItem = React.memo(ThreadViewItemComponent);\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 // THREAD_MESSEGE_PATH: str({ default: 'MainStack.Thread' }),\n // THREADS_PATH: str({ default: 'MainStack.ThreadMessage' }),\n THREAD_MESSEGE_PATH: str({ default: 'MainStack.ThreadMessage' }),\n THREADS_PATH: str({ default: 'MainStack.Thread' }),\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 {\n Box,\n Button,\n HStack,\n Icon,\n Image,\n Spinner,\n Text,\n useColorModeValue,\n Avatar,\n ScrollView,\n Center,\n} from 'native-base';\nimport { Platform, TouchableOpacity, TouchableHighlight } from 'react-native';\nimport { useNavigation, useFocusEffect, useIsFocused } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy, startCase } 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 useGetNewMongooseObjectIdQuery,\n useOnChatMessageAddedSubscription,\n IPreDefinedRole,\n useSendExpoNotificationOnPostMutation,\n IPost,\n} from '@messenger-box/platform-client';\nimport { IExpoNotificationData, 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';\nimport { format, isToday, isYesterday } from 'date-fns';\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\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\ninterface IMessageProps extends IMessage {\n type: string;\n propsConfiguration?: any;\n replies?: 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, role }: 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 [loadEarlierMsg, setLoadEarlierMsg] = 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 const isFocused = useIsFocused();\n const { data: mongooseObjectId } = useGetNewMongooseObjectIdQuery({\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n const {\n data: newMessage,\n loading: newMsgLoading,\n error: newMsgError,\n }: any = useOnChatMessageAddedSubscription({\n variables: {\n channelId: channelId?.toString(),\n },\n });\n\n const { startUpload } = useUploadFilesNative();\n\n const [sendMsg] = useSendMessagesMutation();\n\n const [sendExpoNotificationOnPostMutation] = useSendExpoNotificationOnPostMutation();\n\n const {\n data,\n loading: messageLoading,\n refetch,\n }: any = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n parentId: null,\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n nextFetchPolicy: 'cache-first',\n });\n\n const {\n data: channelsDetail,\n loading: channelLoading,\n refetch: refetchChannelDetail,\n } = useViewChannelDetailQuery({\n variables: {\n id: channelId?.toString(),\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 parentId: null,\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 }, [isFocused]),\n );\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 (\n // messages &&\n // messages.length > 0 &&\n // totalCount !== messeageTotalCount &&\n // (loadingOldMessages || channelMessages.length === 0)\n // ) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // setLoadingOldMessages(false);\n // setTotalCount(messeageTotalCount);\n // }\n // // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data, loadingOldMessages, channelMessages]);///\n ////......... initiate messages ......................////\n // useEffect(() => {\n // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n // console.log('loading msg')\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // if (messages && messages.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, totalCount]);\n ////.... initiate messages end................................////\n\n // useEffect(() => {\n // if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n // console.log('initiate msg')\n // const { data: messages, totalCount: messeageTotalCount } = data.messages;\n // if (messages && messages.length > 0) {\n // setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n // setTotalCount(messeageTotalCount);\n // }\n // if(loadingOldMessages) setLoadingOldMessages(false);\n // }\n\n // }, [data, channelMessages,loadingOldMessages]);\n\n useEffect(() => {\n if ((data?.messages?.data && channelMessages.length === 0) || (data?.messages?.data && loadingOldMessages)) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n setTotalCount(messeageTotalCount);\n }\n setLoadEarlierMsg(false);\n if (loadingOldMessages) setLoadingOldMessages(false);\n }\n }, [data, loadingOldMessages, channelMessages]);\n\n React.useEffect(() => {\n if (newMessage) {\n const msg = newMessage?.chatMessageAdded;\n setTotalCount((preCount: any) => preCount + 1);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, msg], ({ id }) => id));\n }\n }, [newMessage]);\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 ////////...............New msg check...........////\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 // channelId: channelId?.toString(),\n // parentId: null,\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 ////////////....new msg check end.........//\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 // console.log('fetchmore')\n\n // refetch({ channelId: channelId?.toString(), parentId: null, skip: channelMessages.length })?.then((res:any)=>{\n // setLoadingOldMessages(true);\n // });\n\n // }\n // }, [data, channelMessages]);\n\n const onFetchOld = useCallback((data: any, channelMessages: any) => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadEarlierMsg(true);\n refetch({ channelId: channelId?.toString(), parentId: null, skip: channelMessages.length })?.then(\n (res: any) => setLoadingOldMessages(true),\n );\n }\n }, []);\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 = useCallback(\n async (message: string) => {\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n const notificationData: IExpoNotificationData = {\n url: config.INBOX_MESSEGE_PATH,\n params: { channelId, hideTabBar: true },\n screen: 'DialogMessages',\n other: { sound: Platform.OS === 'android' ? undefined || null : 'default' },\n };\n\n if (images && images.length > 0) {\n const postId: any = mongooseObjectId?.getNewMongooseObjectId;\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\n if (uploadResponse.data) {\n setImage('');\n setFiles([]);\n setImages([]);\n //setLoading(false);\n const files = uploadedFiles?.map((f: any) => f.id) ?? null;\n await sendMsg({\n variables: {\n postId,\n channelId,\n content: message,\n files,\n notificationParams: notificationData,\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n // setChannelMessages((messages: any) => [\n // ...messages,\n // {\n // ...data?.sendMessage,\n // files: {\n // totalCount: uploadedFiles.length,\n // data: uploadedFiles,\n // },\n // },\n // ]);\n // setTotalCount((t: any) => t + 1);\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n const msg = message == '' ? 'Send a file' : message;\n //sendPushNotification(data?.sendMessage, channelId);\n },\n });\n }\n } else {\n setLoading(true);\n await sendMsg({\n variables: {\n channelId,\n content: message,\n notificationParams: notificationData,\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 // sendPushNotification(data?.sendMessage, channelId);\n },\n });\n }\n },\n [mongooseObjectId, setChannelMessages, channelId, images, channelToTop, expoTokens],\n );\n\n // const sendPushNotification = async (post: IPost, channelId: string) => {\n // const notificationData: IExpoNotificationData = {\n // url: config.INBOX_MESSEGE_PATH,\n // params: { channelId, hideTabBar: true },\n // screen: 'DialogMessages',\n // other: { sound: Platform.OS === 'android' ? undefined || null : 'default' },\n // };\n\n // await sendExpoNotificationOnPostMutation({\n // variables: {\n // postId: post?.id?.toString(),\n // notificationData,\n // },\n // });\n // };\n\n // const fetchTokenAndSendPushNotification = (message: any, channelId: any) => {\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 : 'Message';\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 // refetchChannelDetail({ id: channelId?.toString() })?.then((res: any) => {\n // if (res?.data?.viewChannelDetail?.members?.length) {\n // const channelData: any =\n // res?.data?.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 // console.log('expo to', JSON.stringify(tokens));\n // if (tokens?.length > 0) {\n // const to: any = tokens?.length > 0 ? tokens : [];\n // sendPushNotification(title, body, notificationData, to);\n // }\n // }\n // });\n // };\n\n // const handleSend1 = 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 : 'Message';\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 // refetchChannelDetail({ id: channelId?.toString() })?.then((res: any) => {\n // if (res?.data?.viewChannelDetail?.members?.length) {\n // const channelData: any =\n // res?.data?.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 // console.log('expo to', JSON.stringify(tokens));\n // if (tokens?.length > 0) {\n // const to: any = tokens?.length > 0 ? tokens : [];\n\n // sendPushNotification(title, body, notificationData, to);\n // }\n // }\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 message.replies = msg?.replies ?? [];\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 const lastReply: any = currentMessage?.replies?.data?.length > 0 ? currentMessage?.replies?.data?.[0] : null;\n\n if (currentMessage.type === 'ALERT') {\n const attachment = currentMessage?.propsConfiguration?.contents?.attachment;\n let action: string = '';\n let actionId: any = '';\n let params: any = {};\n\n if (attachment?.callToAction?.extraParams) {\n const extraParams: any = attachment?.callToAction?.extraParams;\n const route: any = extraParams?.route ?? null;\n let path: any = null;\n let param: any = null;\n if (role && role == IPreDefinedRole.Guest) {\n path = route?.guest?.name ? route?.guest?.name ?? null : null;\n param = route?.guest?.params ? route?.guest?.params ?? null : null;\n } else if (role && role == IPreDefinedRole.Owner) {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n } else {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n }\n\n action = path;\n params = { ...param };\n } else if (attachment?.callToAction?.link) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n params = { reservationId: actionId };\n }\n\n return (\n <>\n {attachment?.callToAction && action ? (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => action && params && navigation.navigate(action, params)}\n // onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n <MessageText\n {...props}\n textStyle={{\n left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 },\n }}\n />\n </Box>\n ) : (\n <TouchableHighlight\n underlayColor={'#c0c0c0'}\n style={{ width: '100%' }}\n onPress={() =>\n navigation.navigate(config.THREAD_MESSEGE_PATH, {\n channelId: channelId,\n title: 'Message',\n postParentId: currentMessage?._id,\n isPostParentIdThread: true,\n })\n }\n >\n <>\n <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />\n {currentMessage?.replies?.data?.length > 0 && (\n <HStack space={1} px={1} alignItems={'center'}>\n <HStack>\n {currentMessage?.replies?.data\n ?.filter(\n (v: any, i: any, a: any) =>\n a.findIndex((t: any) => t?.author?.id === v?.author?.id) === i,\n )\n ?.slice(0, 2)\n ?.reverse()\n ?.map((p: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={6}\n // top={i == 1 ? 4 : 0}\n // right={i == 1 ? -2 : 0}\n // zIndex={i == 1 ? 5 : 1}\n _image={{\n borderRadius: 6,\n borderWidth: 2,\n borderColor: '#fff',\n }}\n source={{\n uri: p?.author?.picture,\n }}\n >\n {startCase(p?.author?.username?.charAt(0))}\n </Avatar>\n ))}\n </HStack>\n <Text fontSize={12} fontWeight={'bold'} color={'blue.800'}>\n {currentMessage?.replies?.totalCount}{' '}\n {currentMessage?.replies?.totalCount == 1 ? 'reply' : 'replies'}\n </Text>\n <Text fontSize={12} fontWeight={'bold'} color={'gray.500'}>\n {lastReply ? createdAtText(lastReply?.createdAt) : ''}\n </Text>\n </HStack>\n )}\n </>\n </TouchableHighlight>\n )}\n {/* <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n /> */}\n </>\n );\n } else {\n return (\n <TouchableHighlight\n underlayColor={'#c0c0c0'}\n style={{ width: '100%' }}\n onPress={() =>\n navigation.navigate(config.THREAD_MESSEGE_PATH, {\n channelId: channelId,\n title: 'Message',\n postParentId: currentMessage?._id,\n isPostParentIdThread: true,\n })\n }\n >\n <>\n <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />\n {currentMessage?.replies?.data?.length > 0 && (\n <HStack space={1} px={1} alignItems={'center'}>\n <HStack>\n {currentMessage?.replies?.data\n ?.filter(\n (v: any, i: any, a: any) =>\n a.findIndex((t: any) => t?.author?.id === v?.author?.id) === i,\n )\n ?.slice(0, 2)\n ?.reverse()\n ?.map((p: any, i: Number) => (\n <Avatar\n key={'key' + i}\n bg={'transparent'}\n size={6}\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: p?.author?.picture,\n }}\n >\n {startCase(p?.author?.username?.charAt(0))}\n </Avatar>\n ))}\n </HStack>\n <Text fontSize={12} fontWeight={'bold'} color={'blue.800'}>\n {currentMessage?.replies?.totalCount}{' '}\n {currentMessage?.replies?.totalCount == 1 ? 'reply' : 'replies'}\n </Text>\n <Text fontSize={12} fontWeight={'bold'} color={'gray.500'}>\n {lastReply ? createdAtText(lastReply?.createdAt) : ''}\n </Text>\n </HStack>\n )}\n </>\n </TouchableHighlight>\n );\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 let onScroll = false;\n\n // const onEndReached = () => {\n // console.log('on end reached');\n // if (!onScroll) return;\n // // load messages, show ActivityIndicator\n // onScroll = false;\n // // setLoadingOldMessages(true);\n // };\n\n // const onMomentumScrollBegin = useCallback(\n // ({ nativeEvent }: any) => {\n // onScroll = true;\n // console.log('scroll top');\n // if (!loadingOldMessages && channelMessages?.length <= 10 && channelMessages?.length != totalCount) {\n // onFetchOld();\n // } else if (!loadingOldMessages && isCloseToTop(nativeEvent) && channelMessages?.length != totalCount) {\n // onFetchOld();\n // }\n // },\n // [loadingOldMessages, channelMessages],\n // );\n\n // const onMomentumScrollBegin = ({ nativeEvent }: any) => {\n // onScroll = true;\n // console.log('scroll top');\n // if (\n // !loadingOldMessages &&\n // (channelMessages?.length <= 10 || isCloseToTop(nativeEvent)) &&\n // channelMessages?.length != totalCount\n // ) {\n // onFetchOld();\n // }\n // };\n\n return (\n <>\n {loadEarlierMsg && <Spinner />}\n\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\n // listViewProps={{\n // onEndReached: onEndReached,\n // onEndReachedThreshold: 0.5,\n // onMomentumScrollBegin: onMomentumScrollBegin,\n // }}\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={loadEarlierMsg}\n //extraData={{ isLoadingEarlier: loadingOldMessages }}\n renderLoadEarlier={() =>\n !loadEarlierMsg && (\n <Center py={2}>\n <Button\n onPress={() => onFetchOld(data, channelMessages)}\n variant={'outline'}\n _text={{ color: 'black', fontSize: 15, fontWeight: 'bold' }}\n >\n Load earlier messages\n </Button>\n </Center>\n )\n }\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};\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 supportServices: boolean;\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 role: params?.role,\n title: params?.title ?? null,\n hideTabBar: true,\n });\n } else {\n navigation.navigate(config.INBOX_MESSEGE_PATH as any, {\n channelId: id,\n role: channelRole,\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} pt={props?.supportServices ? 0 : 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","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 { SupportServiceDialogsListItem } from '../components/SupportServiceDialogsListItem';\nimport { useSupportServiceChannelsQuery } 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 SupportServiceInboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nconst SupportServiceDialogsComponent = (props: SupportServiceInboxProps) => {\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: serviceChannels,\n loading: serviceChannelsLoading,\n refetch: getServiceChannelsRefetch,\n } = useSupportServiceChannelsQuery({\n variables: {\n criteria: { type: 'SERVICE' },\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 getServiceChannelsRefetch({ criteria: { type: 'SERVICE' } });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n const channels = React.useMemo(() => {\n if (!serviceChannels?.supportServiceChannels?.length) return null;\n let uChannels: any =\n serviceChannels?.supportServiceChannels?.filter((c: any) =>\n c.members.some((u: any) => u.user.__typename == 'UserAccount'),\n ) ?? [];\n return uChannels || [];\n }, [serviceChannels]);\n\n const handleSelectChannel = useCallback((id: any, title: any, postParentId: any) => {\n if (params?.channelId) {\n navigation.navigate(\n params?.postParentId || params?.postParentId == 0 ? config.THREAD_MESSEGE_PATH : (config.THREADS_PATH as any),\n {\n channelId: params?.channelId,\n role:params?.role,\n title: params?.title ?? null,\n postParentId: params?.postParentId,\n hideTabBar: true,\n },\n );\n } else {\n navigation.navigate(\n postParentId || postParentId == 0 ? config.THREAD_MESSEGE_PATH : (config.THREADS_PATH as any),\n {\n channelId: id,\n role:channelRole,\n title: title,\n postParentId: postParentId,\n hideTabBar: true,\n },\n );\n }\n }, []);\n\n const handleRefresh = useCallback(() => {\n //if(userChannels?.channelsByUser?.length != channels?.length)setRefresh(true);\n setRefresh(true)\n getServiceChannelsRefetch({ criteria: { type: 'SERVICE' } })?.then((res:any)=>setRefresh(false));\n }, []);\n\n return (\n <Box p={2} pb={0}>\n <FlatList\n data={channels && channels?.length > 0 ? channels : []}\n onRefresh={handleRefresh}\n refreshing={serviceChannelsLoading}\n contentContainerStyle={{}}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <SupportServiceDialogsListItem\n onOpen={handleSelectChannel}\n currentUser={auth}\n channel={channel}\n refreshing={refreshing}\n selectedChannelId={params?.channelId}\n role={channelRole}\n />\n )}\n keyExtractor={(item, index) => 'support-service-key' + index}\n />\n </Box>\n );\n};\n\nexport const SupportServiceDialogs = React.memo(SupportServiceDialogsComponent);\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n HStack,\n VStack,\n Icon,\n Image,\n Spinner,\n Text,\n useColorModeValue,\n ScrollView,\n Center,\n Avatar,\n} from 'native-base';\nimport { Platform, TouchableOpacity } from 'react-native';\nimport { useNavigation, useFocusEffect, useRoute } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy, startCase } 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 useThreadMessagesLazyQuery,\n useSendThreadMessageMutation,\n useMessagesQuery,\n useSendMessagesMutation,\n useViewChannelDetailQuery,\n useUploadFilesNative,\n useGetNewMongooseObjectIdQuery,\n useOnThreadChatMessageAddedSubscription,\n IPreDefinedRole,\n useSendExpoNotificationOnPostMutation,\n IPost,\n} from '@messenger-box/platform-client';\nimport { IExpoNotificationData, 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';\nimport { format, isToday, isYesterday } from 'date-fns';\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\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\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 ThreadConversationViewComponent = ({ channelId, postParentId, isPostParentIdThread, role }: any) => {\n const { params } = useRoute<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 [loadEarlierMsg, setLoadEarlierMsg] = 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 const [parentId, setParentId] = useState<any>(postParentId);\n const { startUpload } = useUploadFilesNative();\n const [threadPost, setThreadPost] = useState<any[]>([]);\n const { data: mongooseObjectId } = useGetNewMongooseObjectIdQuery({\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n const {\n data: newThreadMsg,\n loading: newThreadMsgLoading,\n error: newThreadMsgError,\n } = useOnThreadChatMessageAddedSubscription({\n variables: {\n channelId: channelId?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n },\n });\n\n const [sendThreadMessage] = useSendThreadMessageMutation();\n const [sendExpoNotificationOnPostMutation] = useSendExpoNotificationOnPostMutation();\n\n const [getThreadMessages, { data: threadMessagesData, loading: threadLoading, refetch: refetchThreadMessages }] =\n useThreadMessagesLazyQuery({\n variables: {\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n role: role?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const {\n data,\n loading: messageLoading,\n refetch,\n }: any = useMessagesQuery({\n variables: {\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n // const { data: checkForMessages }: any = useCheckForNewMessagesQuery({\n // variables: {\n // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n // },\n // skip: !channelId,\n // fetchPolicy: 'network-only',\n // pollInterval: 5000,\n // });\n\n useFocusEffect(\n React.useCallback(() => {\n navigation?.setOptions({ title: params?.title ?? 'Thread' });\n if (parentId || parentId == 0) {\n refetchThreadMessages({\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n role: role?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n });\n }\n refetch({\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n parentId: !parentId || parentId == 0 ? null : parentId?.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 setTotalCount(0);\n setChannelMessages([]);\n };\n }, []),\n );\n\n useEffect(() => {\n setParentId(postParentId);\n }, [postParentId]);\n\n useEffect(() => {\n if (parentId && parentId == 0) {\n getThreadMessages({\n variables: {\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n role: role?.toString(),\n postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n },\n });\n }\n }, [parentId]);\n\n useEffect(() => {\n if (threadMessagesData?.threadMessages) {\n const { data: threads, totalCount: threadTotalCount }: any = threadMessagesData?.threadMessages;\n const threadMessage = threads?.map((t: any) => t?.post);\n setThreadPost(threadMessage);\n // if (!isPostParentIdThread) {\n // // setTotalCount((pc: any) => pc + threadTotalCount);\n // setChannelMessages((oldMessages: any) => uniqBy([...threadMessage, ...oldMessages], ({ id }) => id));\n // }\n }\n }, [threadMessagesData, isPostParentIdThread]);\n\n React.useEffect(() => {\n if (newThreadMsg) {\n console.log('newThreadMsg');\n const msg = newThreadMsg?.threadChatMessageAdded;\n setTotalCount((preCount: any) => preCount + 1);\n setChannelMessages((oldMessages: any) => uniqBy([...oldMessages, msg], ({ id }) => id));\n }\n }, [newThreadMsg]);\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 // setLoadingOldMessages(false);\n // }\n // if (totalCount !== messeageTotalCount) setTotalCount(messeageTotalCount);\n // }\n // }, [data, loadingOldMessages, channelMessages, totalCount]);\n\n useEffect(() => {\n if ((data?.messages?.data && channelMessages.length === 0) || (data?.messages?.data && loadingOldMessages)) {\n const { data: messages, totalCount: messeageTotalCount } = data.messages;\n if (messages && messages.length > 0) {\n setChannelMessages((oldMessages: any) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n setTotalCount(messeageTotalCount);\n }\n setLoadEarlierMsg(false);\n if (loadingOldMessages) setLoadingOldMessages(false);\n }\n if (threadPost?.length && data?.messages?.totalCount == channelMessages.length) {\n // setTotalCount((pc: any) => pc + threadTotalCount);\n setChannelMessages((oldMessages: any) => uniqBy([...threadPost, ...oldMessages], ({ id }) => id));\n }\n }, [data, loadingOldMessages, channelMessages, threadPost]);\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 // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\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, parentId]);\n\n React.useEffect(() => {\n if (selectedImage) setImageLoading(false);\n }, [selectedImage]);\n\n // const onFetchOld = useCallback(() => {\n // if (data?.messages?.totalCount > channelMessages.length) {\n // setLoadEarlierMsg(true);\n // refetch({\n // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n // skip: channelMessages.length,\n // })?.then((res: any) => setLoadingOldMessages(true));\n // }\n // }, [data, channelMessages]);\n\n const onFetchOld = useCallback((data: any, channelMessages: any) => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadEarlierMsg(true);\n refetch({\n channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n parentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n skip: channelMessages.length,\n })?.then((res: any) => setLoadingOldMessages(true));\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\n // const ObjectId = (m = Math, d = Date, h = 16, s = (s:any) => m.floor(s).toString(h)) =>\n // s(d.now() / 1000) + ' '.repeat(h).replace(/./g, () => s(m.random() * h))\n\n const handleSend = useCallback(\n async (message: string) => {\n if (!channelId) return;\n if (!message && message != ' ' && images.length == 0) return;\n\n if (images && images.length > 0) {\n const postId: any = mongooseObjectId?.getNewMongooseObjectId;\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 const files = uploadedFiles?.map((f: any) => f.id) ?? null;\n await sendThreadMessage({\n variables: {\n postId,\n channelId,\n postParentId: !parentId || parentId == 0 ? null : parentId,\n threadMessageInput: {\n content: message,\n files,\n role,\n },\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n const responseMessage = data?.sendThreadMessage?.lastMessage;\n if (!parentId || parentId == 0) {\n setParentId(responseMessage?.id);\n setChannelMessages((messages: any) => [\n ...messages,\n {\n ...responseMessage,\n files: {\n totalCount: uploadedFiles.length,\n data: uploadedFiles,\n },\n },\n ]);\n\n setTotalCount((t: any) => t + 1);\n }\n\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n\n // if (!parentId || parentId == 0) {\n // setParentId(responseMessage?.id);\n // }\n const msg = message == '' ? 'Send a file' : message;\n sendPushNotification(\n responseMessage,\n channelId,\n parentId,\n data?.sendThreadMessage?.data?.id,\n );\n },\n });\n }\n } else {\n setLoading(true);\n await sendThreadMessage({\n variables: {\n channelId,\n postParentId: !parentId || parentId == 0 ? null : parentId,\n threadMessageInput: {\n content: message,\n role,\n },\n },\n update: (cache, { data, errors }: any) => {\n if (!data || errors) {\n setLoading(false);\n return;\n }\n const responseMessage = data?.sendThreadMessage?.lastMessage;\n if (!parentId || parentId == 0) {\n setParentId(responseMessage?.id);\n setChannelMessages((messages: any) => [...messages, responseMessage]);\n setTotalCount((t: any) => t + 1);\n }\n setChannelToTop(channelToTop + 1);\n setLoading(false);\n setMsg('');\n // if (!parentId || parentId == 0) {\n // setParentId(responseMessage?.id);\n // }\n sendPushNotification(responseMessage, channelId, parentId, data?.sendThreadMessage?.data?.id);\n },\n });\n }\n },\n [mongooseObjectId, setChannelMessages, channelId, images, parentId, expoTokens],\n );\n\n const sendPushNotification = async (post: IPost, channelId: string, parentId: any, threadId: string) => {\n const notificationData: IExpoNotificationData = {\n url: config.THREAD_MESSEGE_PATH,\n params: { channelId, title: params?.title ?? 'Thread', postParentId: parentId, hideTabBar: true },\n screen: 'DialogThreadMessages',\n thread: { id: threadId },\n other: { sound: Platform.OS === 'android' ? undefined || null : 'default' },\n };\n if (parentId || parentId == 0) {\n await sendExpoNotificationOnPostMutation({\n variables: {\n postId: post?.id?.toString(),\n notificationData,\n },\n });\n }\n };\n\n // const fetchTokenAndSendPushNotification = (message: any, channelId: any, parentId: any) => {\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 : 'Message';\n // const body: String = message;\n // const notificationData: any = {\n // url: config.THREAD_MESSEGE_PATH,\n // params: { channelId, title: params?.title ?? 'Thread', postParentId: parentId, hideTabBar: true },\n // screen: 'DialogThreadMessages',\n // };\n // if (parentId || parentId == 0) {\n // refetchThreadMessages({\n // channelId: !parentId || parentId == 0 ? null : channelId?.toString(),\n // role: role?.toString(),\n // postParentId: !parentId || parentId == 0 ? null : parentId?.toString(),\n // })?.then((res: any) => {\n // if (res?.data?.threadMessages?.data?.length > 0) {\n // const participants =\n // res?.data?.threadMessages?.data?.map((t: any) => t?.participants)?.flat(1) ?? [];\n // const participantsTokens =\n // participants?.length > 0\n // ? participants\n // ?.filter((u: any) => u?.id != auth?.id)\n // ?.map((p: any) => p.tokens)\n // ?.flat(1)\n // : [];\n // const expoTokens =\n // participantsTokens?.length > 0\n // ? participantsTokens\n // ?.filter((t: any) => t?.type == 'EXPO_NOTIFICATION_TOKEN')\n // ?.map((et: any) => et?.token)\n // : [];\n // if (expoTokens?.length > 0) {\n // const to: any = expoTokens;\n // sendPushNotification(title, body, notificationData, to);\n // }\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 ?? auth?.profile?.id,\n name:\n msg?.author?.givenName ??\n auth?.profile?.given_name + ' ' + msg?.author?.familyName ??\n auth?.profile?.family_name,\n avatar: msg?.author?.picture ?? auth?.profile?.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 let params: any = {};\n if (attachment?.callToAction?.extraParams) {\n const extraParams: any = attachment?.callToAction?.extraParams;\n const route: any = extraParams?.route ?? null;\n let path: any = null;\n let param: any = null;\n if (role && role == IPreDefinedRole.Guest) {\n path = route?.guest?.name ? route?.guest?.name ?? null : null;\n param = route?.guest?.params ? route?.guest?.params ?? null : null;\n } else if (role && role == IPreDefinedRole.Owner) {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n } else {\n path = route?.host?.name ? route?.host?.name ?? null : null;\n param = route?.host?.params ? route?.host?.params ?? null : null;\n }\n\n action = path;\n params = { ...param };\n } else if (attachment?.callToAction?.link) {\n action = CALL_TO_ACTION_PATH;\n actionId = attachment?.callToAction?.link.split('/').pop();\n params = { reservationId: actionId };\n }\n\n // if (attachment?.callToAction?.link?.includes('my-reservation-details')) {\n // action = CALL_TO_ACTION_PATH;\n // actionId = attachment?.callToAction?.link.split('/').pop();\n // }\n\n return (\n <>\n {attachment?.callToAction && action ? (\n <Box bg={CALL_TO_ACTION_BOX_BGCOLOR} borderRadius={15} pb={2}>\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={CALL_TO_ACTION_BUTTON_BORDERCOLOR}\n onPress={() => action && params && navigation.navigate(action, params)}\n //onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={CALL_TO_ACTION_TEXT_COLOR}>{attachment.callToAction.title}</Text>\n </Button>\n <MessageText\n {...props}\n textStyle={{\n left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 },\n }}\n />\n </Box>\n ) : (\n <MessageText {...props} textStyle={{ left: { marginLeft: 5 } }} />\n )}\n {/* <MessageText\n {...props}\n textStyle={{ left: { marginLeft: 5, color: CALL_TO_ACTION_TEXT_COLOR, paddingHorizontal: 2 } }}\n /> */}\n </>\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 return <SlackMessage {...props} isShowImageViewer={isShowImageViewer} setImageViewer={setImageViewerObject} />;\n };\n\n return (\n <>\n {/* {loadingOldMessages && <Spinner />} */}\n {loadEarlierMsg && <Spinner />}\n {isPostParentIdThread && (\n <>\n {threadPost?.length > 0 && (\n <>\n <VStack px={2} pt={2} pb={0} space={2}>\n <HStack space={2} alignItems={'center'}>\n <Avatar\n bg={'transparent'}\n size={10}\n _image={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: threadPost[0]?.author?.picture,\n }}\n >\n {startCase(threadPost[0]?.author?.username?.charAt(0))}\n </Avatar>\n <Box>\n <Text color={'black'} fontWeight={'bold'}>\n {threadPost[0]?.author?.givenName ?? ''}{' '}\n {threadPost[0]?.author?.familyName ?? ''}\n </Text>\n <Text color={'gray.500'} pl={0}>\n {createdAtText(threadPost[0]?.createdAt)} at{' '}\n {format(new Date(threadPost[0]?.createdAt), 'hh:ss:a')}\n </Text>\n </Box>\n </HStack>\n <HStack px={2} space={2} alignItems={'center'}>\n <Text>{threadPost[0]?.message ?? ''}</Text>\n </HStack>\n </VStack>\n\n <Box py={4}>\n <Box px={4} borderTopWidth={1} borderBottomWidth={1} py={2} borderColor={'gray.200'}>\n <Text color={'gray.600'} fontWeight={'bold'}>\n {threadPost[0]?.replies?.totalCount}{' '}\n {threadPost[0]?.replies?.totalCount > 0 ? 'replies' : 'reply'}\n </Text>\n </Box>\n </Box>\n </>\n )}\n </>\n )}\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\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: 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={loadEarlierMsg}\n renderLoadEarlier={() =>\n !loadEarlierMsg && (\n <Center py={2}>\n <Button\n onPress={() => onFetchOld(data, channelMessages)}\n variant={'outline'}\n _text={{ color: 'black', fontSize: 15, fontWeight: 'bold' }}\n >\n Load earlier messages\n </Button>\n </Center>\n )\n }\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 messagesContainerStyle={messageList?.length == 0 && { transform: [{ scaleY: -1 }] }}\n renderChatEmpty={() => (\n <>\n {!threadLoading && !messageLoading && messageList && messageList?.length == 0 && (\n <Box p={5}>\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any message yet!</Text>\n </Center>\n </Box>\n )}\n </>\n )}\n lightboxProps={{\n underlayColor: 'transparent',\n springConfig: { tension: 90000, friction: 90000 },\n disabled: true,\n }}\n />\n </>\n );\n};\n\nexport const ThreadConversationView = React.memo(ThreadConversationViewComponent);\n","import React, { useCallback, useMemo, useEffect, useState } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center, Spinner, Button } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute, useIsFocused, useFocusEffect } from '@react-navigation/native';\nimport { orderBy, uniqBy, startCase } from 'lodash';\nimport { ThreadViewItem } from '../components/ThreadsViewItem';\nimport { useThreadMessagesQuery, useOnThreadCreatedUpdatedSubscription } 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';\nconst { MESSAGES_PER_PAGE } = config;\n\nexport interface ThreadsViewProps {\n channelId?: string;\n role?: string;\n channelsDetail?: any;\n refetchChannelDetail: (id: any) => Promise<any>;\n}\n\nconst ThreadsViewComponent = ({ channelId, role, channelsDetail, refetchChannelDetail }: ThreadsViewProps) => {\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 [threadData, setThreadsData] = useState<any>([]);\n\n const {\n data,\n loading: threadLoading,\n error,\n refetch,\n } = useThreadMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n role: role?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n // const { data: threadCreatedUpdated } = useOnThreadCreatedUpdatedSubscription({\n // variables: { channelId: channelId?.toString() },\n // });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n navigation?.setOptions({ title: params?.title ?? 'Thread' });\n refetch({\n channelId: channelId?.toString(),\n role: role?.toString(),\n limit: MESSAGES_PER_PAGE,\n }).then(({ data }) => {\n if (!data?.threadMessages?.data) {\n return;\n }\n\n if (data?.threadMessages?.data?.length) {\n const { data: newThreads } = data?.threadMessages;\n setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));\n }\n });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, [channelId]),\n );\n\n React.useEffect(() => {\n if (data?.threadMessages?.data?.length) {\n const { data: newThreads } = data?.threadMessages;\n setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));\n }\n }, [data]);\n\n // React.useEffect(() => {\n // if (threadCreatedUpdated?.threadCreatedUpdated?.data) {\n // const { data: newThreads } = threadCreatedUpdated?.threadCreatedUpdated;\n\n // setThreadsData((oldThreads: any) => {\n // const i = oldThreads.findIndex((el: any) => el.id === newThreads?.id);\n // if (i > -1) oldThreads[i] = newThreads; // (2)\n // else oldThreads.push(newThreads);\n // return oldThreads;\n // });\n // // setThreadsData((oldThreads: any) => uniqBy([...oldThreads, newThreads], ({ id }) => id));\n // }\n // }, [threadCreatedUpdated]);\n\n const setData = React.useCallback((newThreads: any) => {\n setThreadsData((oldThreads: any) => {\n const i = oldThreads.findIndex((el: any) => el.id === newThreads?.id);\n if (i > -1) oldThreads[i] = newThreads; // (2)\n else oldThreads.push(newThreads);\n return oldThreads;\n });\n // setThreadsData((oldThreads: any) => uniqBy([...oldThreads, newThreads], ({ id }) => id));\n }, []);\n\n const threads = React.useMemo(() => {\n if (!threadData?.length) return null;\n return orderBy(threadData, ['updatedAt'], ['desc']) || [];\n //return threadData || [];\n }, [threadData]);\n\n const threadReplies = React.useMemo(() => {\n if (!threads?.length) return null;\n return threads?.map((t: any) => t?.replies)?.flat(1) || [];\n //return threadData || [];\n }, [threads]);\n\n // const threads = React.useMemo(() => {\n // if (!data?.threadMessages?.data?.length) return null;\n // return data?.threadMessages?.data || [];\n // }, [data]);\n\n const handleSelectThread = useCallback((id: any, title: any, postParentId: any) => {\n navigation.navigate(config.THREAD_MESSEGE_PATH as any, {\n channelId: id,\n role: role?.toString(),\n title: title,\n postParentId: postParentId,\n hideTabBar: true,\n });\n // if (params?.channelId) {\n // navigation.navigate(config.THREAD_MESSEGE_PATH as any, {\n // channelId: params?.channelId,\n // title: params?.title ?? null,\n // postParentId: postParentId,\n // hideTabBar: true,\n // });\n // } else {\n // navigation.navigate(config.THREAD_MESSEGE_PATH as any, {\n // channelId: id,\n // title: title,\n // postParentId: postParentId,\n // hideTabBar: true,\n // });\n // }\n }, []);\n\n const handleRefresh = useCallback(() => {\n refetch({\n channelId: channelId?.toString(),\n role: role?.toString(),\n limit: MESSAGES_PER_PAGE,\n }).then(({ data }) => {\n if (!data?.threadMessages?.data) {\n return;\n }\n\n if (data?.threadMessages?.data?.length) {\n const { data: newThreads } = data?.threadMessages;\n setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));\n }\n });\n }, []);\n\n const fetchMoreThreads = useCallback(() => {\n refetch({\n channelId: channelId?.toString(),\n role: role?.toString(),\n skip: threads?.length,\n });\n }, []);\n\n // if (!threadReplies || threadReplies?.length == 0) {\n // return (\n // <Center w=\"full\" bg={'f8f8f8'} height={'full'}>\n // You don't have any message yet!\n // </Center>\n // );\n // }\n\n return (\n <Box\n flex={1}\n p={2}\n pb={0}\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 <FlatList\n style={{ flex: 1 }}\n data={threads && threads?.length > 0 ? threads : []}\n onRefresh={handleRefresh}\n refreshing={threadLoading}\n contentContainerStyle={{ paddingBottom: 60 }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: thread, index }) => (\n <ThreadViewItem\n key={index}\n onOpen={handleSelectThread}\n currentUser={auth}\n thread={thread}\n role={role}\n setData={setData}\n />\n )}\n ListEmptyComponent={() => (\n <>\n {!threadLoading || threads?.length == 0}\n <Box p={5}>\n <Center mt={6}>\n <Icon as={Ionicons} name=\"chatbubbles\" size={'xl'} />\n <Text>You don't have any message yet!</Text>\n </Center>\n </Box>\n </>\n )}\n keyExtractor={(item, index) => 'threads-view-key' + index}\n onEndReached={fetchMoreThreads}\n onEndReachedThreshold={0.1}\n />\n </Box>\n );\n};\n\nexport const ThreadsView = React.memo(ThreadsViewComponent);\n","export * from './inbox/Inbox';\nexport * from './inbox/DialogMessages';\nexport * from './inbox/DialogThreads';\nexport * from './inbox/DialogThreadMessages'\n","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":""}
|