@messenger-box/platform-mobile 0.0.1-alpha.219 → 0.0.1-alpha.221
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 +8 -0
- package/lib/index.js +113 -335
- package/lib/index.js.map +1 -1
- package/lib/screens/inbox/containers/ConversationView.d.ts +9 -0
- package/package.json +5 -3
- package/src/screens/inbox/containers/ConversationView.tsx +184 -46
- package/lib/screens/inbox/components/CommonMessage.d.ts +0 -8
- package/lib/screens/inbox/components/FilesList.d.ts +0 -13
- package/lib/screens/inbox/components/MessageInput.d.ts +0 -7
- package/lib/screens/inbox/components/MessageItem.d.ts +0 -18
- package/lib/screens/inbox/components/PlainMessage.d.ts +0 -5
- package/src/screens/inbox/components/CommonMessage.tsx +0 -52
- package/src/screens/inbox/components/FilesList.tsx +0 -41
- package/src/screens/inbox/components/MessageInput.tsx +0 -88
- package/src/screens/inbox/components/MessageItem.tsx +0 -80
- package/src/screens/inbox/components/PlainMessage.tsx +0 -16
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@messenger-box/platform-mobile/./src/index.ts","webpack://@messenger-box/platform-mobile/./src/module.ts","webpack://@messenger-box/platform-mobile/./src/navigation/InboxNavigation.tsx","webpack://@messenger-box/platform-mobile/./src/navigation/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/Inbox.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/CommonMessage.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/DialogsListItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/FilesList.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/MessageInput.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/MessageItem.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/PlainMessage.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/index.ts","webpack://@messenger-box/platform-mobile/external commonjs \"@admin-layout/client\"","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 \"@react-navigation/stack\"","webpack://@messenger-box/platform-mobile/external commonjs \"axios\"","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-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-keyboard-aware-scroll-view\"","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 { createStackNavigator } from '@react-navigation/stack';\nimport { DialogMessages } from '../screens/inbox/DialogMessages';\n\nconst InboxStack = createStackNavigator();\n\nexport function InboxNavigation({ route }) {\n return (\n <InboxStack.Navigator initialRouteName=\"DialogMessages\">\n <InboxStack.Screen name=\"DialogMessages\" options={{ header: () => null }}>\n {(props) => <DialogMessages channelId={route?.params?.channelId} />}\n </InboxStack.Screen>\n </InboxStack.Navigator>\n );\n}\n","export * from './InboxNavigation';\n","import * as React from 'react';\nimport { Box } from 'native-base';\nimport { ConversationView } from './containers/ConversationView';\n\nexport function DialogMessages({ channelId }) {\n return (\n <Box bg={'white'} flex={1}>\n <ConversationView channelId={channelId} />\n </Box>\n );\n}\n","import * as React from 'react';\nimport { Box } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\n\nexport const Inbox = (props) => {\n const { channelFilters, channelRole } = props;\n return (\n <Box bg={'white'} flex={1}>\n <Dialogs channelFilters={channelFilters} channelRole={channelRole} />\n </Box>\n );\n};\n","import * as React from 'react';\nimport { Avatar, Box, Flex, Icon, Text, HStack } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { formatDistance } from 'date-fns';\nimport { FilesList } from './FilesList';\nimport { IPost } from '@messenger-box/core';\nimport { IAuthUser } from '@pubngo-stack/core';\nimport { startCase } from 'lodash';\n\ninterface ICommonMessageProps {\n message: IPost;\n currentUser: IAuthUser;\n}\n\nexport const CommonMessage = (props: ICommonMessageProps) => {\n const { message, currentUser } = props;\n return (\n <Box mb=\"7\">\n <HStack space={2}>\n <Avatar backgroundColor=\"grey\" source={{ uri: message?.author?.picture || undefined }}>\n {startCase(message?.author?.username?.charAt(0))}\n </Avatar>\n <Box>\n <HStack width={'80%'} justifyContent={'space-between'} alignItems={'center'}>\n <HStack space={2}>\n <Text fontSize=\"14px\" color=\"gray.600\" fontWeight={'bold'}>\n {message?.author?.familyName && message?.author?.givenName\n ? message?.author?.givenName + ' ' + message?.author?.familyName\n : message?.author?.username}\n </Text>\n <Text fontSize=\"14px\" color=\"gray.500\" ml=\"10px\">\n {formatDistance(new Date(message?.createdAt), new Date(), {\n includeSeconds: true,\n addSuffix: true,\n })}\n </Text>\n </HStack>\n {currentUser?.id !== message?.author?.id && (\n <Box ml=\"8px\">\n <Icon as={Ionicons} name={'flag'} color=\"gray.600\" size=\"sm\" />\n </Box>\n )}\n </HStack>\n <Text fontSize=\"14px\" mt=\"5px\">\n {message?.message}\n </Text>\n {message.files?.totalCount ? <FilesList uploaded files={message?.files?.data} /> : null}\n </Box>\n </HStack>\n </Box>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, HStack, Box, Avatar } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\n\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) => 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 DialogsListItem: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const { data: messagesQuery, loading: messageLoading } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const chatUser = useMemo(\n () =>\n users?.find(({ id }) => {\n const isNotCurrentUser = id !== currentUser?.id;\n if (isNotCurrentUser) {\n return channel?.members?.find(({ user }: any) => user.id === id);\n }\n return isNotCurrentUser;\n }),\n [users, currentUser, channel],\n );\n\n const { data: userQuery } = useUserAccountQuery({\n variables: {\n userId: chatUser?.id,\n },\n skip: !chatUser?.id,\n });\n\n const lastMessage = useMemo(() => {\n if (!messagesQuery?.messages?.data?.length) {\n return null;\n }\n const { data } = messagesQuery.messages;\n return data[data.length - 1];\n }, [messagesQuery]);\n\n const channelType = useMemo(() => {\n return channel?.type;\n }, [channel]);\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\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 m={3} space={2}>\n <Avatar\n size={'lg'}\n source={{\n uri: userQuery?.getUserAccount.picture,\n }}\n >\n {startCase(userQuery?.getUserAccount.username.charAt(0))}\n </Avatar>\n <Box width={'80%'}>\n <HStack alignItems=\"center\" justifyContent=\"space-between\">\n <Text fontSize=\"xs\" color=\"red.500\">\n {channelType}\n </Text>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </HStack>\n <Text color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">\n {chatUser?.givenName + ' ' + chatUser?.familyName}\n </Text>\n <Text color=\"gray.600\">{lastMessage?.message}</Text>\n </Box>\n </HStack>\n </Pressable>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Image as ReactNativeImage } from 'react-native';\nimport { Box, HStack, Image } from 'native-base';\n\ninterface FilesListProps {\n files: any;\n uploaded?: boolean;\n}\n\nexport function FilesList({ files, uploaded = false }: FilesListProps) {\n return (\n <HStack space={2} mt={2}>\n <FilesList.FilesView files={files} uploaded={uploaded}/>\n </HStack>\n );\n}\n\nFilesList.FilesView = function MessageItemFiles({ files = [], uploaded }: { files: any[]; uploaded?: boolean }) {\n if (!files.length) {\n return null;\n }\n return (\n <Box>\n {files.map((file) => {\n const url = useMemo(() => (uploaded ? file.url : ReactNativeImage.resolveAssetSource(file).uri), [file, uploaded]);\n return (\n <Image\n alt={'image'}\n mr={2}\n height=\"16\"\n width=\"16\"\n source={{\n uri: url,\n scale: 0.2,\n }}\n />\n );\n })}\n </Box>\n );\n};\n","import { TextField, View, Image, Pressable, HStack, VStack, Toast } from 'native-base';\nimport { FontAwesome } from '@expo/vector-icons';\nimport * as ImagePicker from 'expo-image-picker';\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';\nimport React, { forwardRef, useImperativeHandle, useState, useCallback } from 'react';\nimport { FilesList } from './FilesList';\nimport axios from 'axios';\n\ntype MessageInputProps = {\n channelId?: string;\n handleSend: (message: string, files: any) => Promise<void>;\n};\n\nexport const MessageInput = forwardRef(function MessageInput({ handleSend: handleSendProp }: MessageInputProps) {\n const [message, setMessage] = useState('');\n const [sending, setSending] = useState(false);\n const [files, setFiles] = useState<File[]>([]);\n const [showKeyboard, setShowKeyboard] = useState(false);\n\n const handleSend = useCallback(() => {\n setSending(true);\n handleSendProp(message, files)\n .then(() => {\n setMessage('');\n setFiles([]);\n })\n .finally(() => setSending(false));\n }, [files, handleSendProp, message]);\n\n const onSelectImages = async () => {\n // No permissions request is necessary for launching the image library\n await ImagePicker.requestMediaLibraryPermissionsAsync();\n let result = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1,\n });\n\n if (!result.cancelled) {\n axios\n .get((result as any).uri, {\n responseType: 'blob',\n })\n .then((res: any) => {\n let file = res.data._data;\n file.uri = (result as any).uri;\n setFiles(files.concat(file));\n });\n }\n };\n\n return (\n <KeyboardAwareScrollView\n keyboardDismissMode=\"on-drag\"\n keyboardShouldPersistTaps={'always'}\n onKeyboardWillShow={(frames) => {\n setShowKeyboard(true);\n }}\n onKeyboardWillHide={(frames) => {\n setShowKeyboard(false);\n }}\n scrollEnabled={!showKeyboard}\n style={{ position: 'absolute', left: 0, right: 0, bottom: showKeyboard ? 300 : 0 }}\n >\n <VStack bg={'white'} alignContent=\"center\" p={5}>\n <View>\n <TextField\n placeholder=\"Message...\"\n borderColor=\"gray.400\"\n value={sending ? '' : message}\n onChange={(e) => setMessage(e.nativeEvent.text)}\n fontSize={14}\n />\n </View>\n {files.length ? (\n <View mb={4} flexDirection=\"row\">\n <FilesList files={files} />\n </View>\n ) : null}\n <HStack alignContent=\"center\" justifyContent=\"space-between\">\n <FontAwesome onPress={onSelectImages} size={20} style={{ marginRight: 5 }} name=\"file-image-o\" />\n <FontAwesome onPress={handleSend} size={20} name=\"send\" />\n </HStack>\n </VStack>\n </KeyboardAwareScrollView>\n );\n});\n","import React from 'react';\nimport { Box, Button, HStack, Icon, Text, useColorModeValue } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { IPost, IPostTypeEnum } from '@messenger-box/core';\nimport { PlainMessage } from './PlainMessage';\nimport { CommonMessage } from './CommonMessage';\n\nexport interface AlertMessageAttachmentsInterface {\n title: string;\n isTitleHtml: boolean;\n icon: string;\n callToAction: {\n title: string;\n link: string;\n };\n}\n\nexport function MessageItem({\n message,\n channelId,\n currentUser,\n totalCount,\n onOpen,\n}: {\n message: IPost;\n channelId: number;\n currentUser: any;\n totalCount: number;\n onOpen: () => void;\n}) {\n if (typeof message === 'string') {\n return <PlainMessage message={message} />;\n }\n\n const { type } = message;\n\n if (!type || type === IPostTypeEnum.Simple) {\n return <CommonMessage message={message} currentUser={currentUser} />;\n }\n\n if (type === IPostTypeEnum.ALERT) {\n const { attachment } = message?.propsConfiguration?.contents as {\n attachment: AlertMessageAttachmentsInterface;\n };\n let action: string = '';\n let actionId: any = '';\n const icon = 'information-circle';\n if (attachment.callToAction.link.includes('my-reservation-details')) {\n action = 'm-reservation-detail';\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n const color = useColorModeValue('white', 'gray.800');\n const bgColor = useColorModeValue('gray.800', 'white');\n const navigation = useNavigation<any>();\n\n return (\n <Box borderWidth={1} borderRadius={20} backgroundColor={bgColor} my={2} p={3} opacity={0.7}>\n <HStack space={2} alignItems={'center'}>\n <Icon as={Ionicons} name={icon} color={'white'} />\n <Text color={color} width={'45%'} numberOfLines={3}>\n {attachment?.title}\n </Text>\n {attachment.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={color}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={color}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n </HStack>\n </Box>\n );\n }\n\n return null;\n}\n","import React from 'react';\nimport { Flex, Text } from 'native-base';\n\ninterface IPlainMessageProps {\n message: string;\n}\n\nexport const PlainMessage = ({ message }: IPlainMessageProps) => {\n return (\n <Flex w=\"full\" justifyContent={'center'} mb=\"7\">\n <Text fontSize=\"14px\" fontWeight={'bold'}>\n {message}\n </Text>\n </Flex>\n );\n};\n","import { cleanEnv, num } from 'envalid';\n\nexport const config = cleanEnv(process.env, {\n MESSAGES_PER_PAGE: num({ devDefault: 20, default: 50 }),\n FILES_PER_MESSAGE: num({ default: 10 }),\n});\n","export { config } from './config';\n","import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { ScrollView, useDisclose, Box } from 'native-base';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy } from 'lodash';\nimport {\n useCheckForNewMessagesQuery,\n useGetAllUsersQuery,\n useMessagesQuery,\n useSendMessagesMutation,\n useUploadFiles,\n} from '@messenger-box/platform-client';\nimport { MessageItem } from '../components/MessageItem';\nimport { MessageInput } from '../components/MessageInput';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\n\nconst { MESSAGES_PER_PAGE } = config;\n\nexport function ConversationView({ channelId }: any) {\n const { onOpen } = useDisclose();\n const messageListRef = useRef(null);\n const [channelToTop, setChannelToTop] = useState(0);\n const [channelMessages, setChannelMessages] = useState<any>([]);\n const auth = useSelector(userSelector);\n const [totalCount, setTotalCount] = useState<any>(0);\n const [loadingOldMessages, setLoadingOldMessages] = useState(false);\n\n const { startUpload } = useUploadFiles();\n\n const [sendMsg] = useSendMessagesMutation();\n\n const {\n data,\n loading: messageLoading,\n refetch,\n } = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n const { data: users } = useGetAllUsersQuery();\n\n const currentUser = useMemo(\n () => users?.getUsers?.find(({ alias }: any) => alias.includes(auth?.auth0UserId)),\n [users, auth],\n );\n\n const { data: checkForMessages } = useCheckForNewMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n },\n skip: !channelId,\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n useEffect(() => {\n if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n const { data: messages, totalCount } = data.messages;\n setChannelMessages((oldMessages) => uniqBy([...[...messages].reverse(), ...oldMessages], ({ id }) => id));\n setTotalCount(totalCount);\n }\n }, [data, loadingOldMessages, channelMessages]);\n\n useLayoutEffect(() => {\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 } = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n }\n }, [checkForMessages, totalCount, refetch]);\n\n const onFetchOld = useCallback(() => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadingOldMessages(true);\n refetch({ skip: channelMessages.length });\n }\n }, [data, channelMessages]);\n\n const onMessagesScroll = useCallback(\n () => {\n if (messageListRef.current) {\n const { scrollTop, scrollHeight, clientHeight } = messageListRef.current;\n if (clientHeight - scrollTop > scrollHeight - 50 && !messageLoading) {\n onFetchOld();\n }\n }\n },\n [onFetchOld],\n );\n\n const handleSend = useCallback(\n async (message: string, files: []) => {\n if (!(message && channelId)) {\n return;\n }\n const { data } = await sendMsg({\n variables: {\n channelId,\n content: message,\n },\n update: (cache, { data, errors }) => {\n if (!data || errors) {\n return;\n }\n setChannelMessages((messages) => [...messages, data?.sendMessage]);\n setTotalCount((t) => t + 1);\n setChannelToTop(channelToTop + 1);\n },\n });\n if (files && data?.sendMessage?.id) {\n const { id: postId } = data.sendMessage;\n const uploadResponse = await startUpload({\n file: files,\n saveUploadedFile: {\n variables: {\n postId,\n },\n },\n createUploadLink: {\n variables: {\n postId,\n },\n },\n });\n const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\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],\n );\n\n const messageList = useMemo(() => {\n let currentDate = '';\n let res: any = [];\n orderBy(channelMessages, ['createdAt'], ['asc']).map((msg) => {\n const date = new Date(msg.createdAt);\n let msgDate;\n if (isToday(date)) msgDate = 'Today';\n else if (isYesterday(date)) msgDate = 'Yesterday';\n else msgDate = format(new Date(msg.createdAt), 'eee, do MMMM');\n\n if (msgDate !== currentDate) {\n res.push(msgDate);\n currentDate = msgDate;\n }\n res.push(msg);\n });\n return res;\n }, [channelMessages]);\n\n return (\n <Box flex={1} position={'relative'}>\n <ScrollView ref={messageListRef} mb={'32'} contentContainerStyle={{ flexGrow: 1 }} p={5}>\n {messageList.map((message, index) => (\n <Box key={index}>\n <MessageItem\n channelId={channelId}\n currentUser={currentUser}\n message={message}\n totalCount={totalCount}\n onOpen={onOpen}\n />\n </Box>\n ))}\n </ScrollView>\n <MessageInput channelId={channelId} handleSend={handleSend} />\n </Box>\n );\n}\n","import React, { useCallback, useMemo, useEffect } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetAllUsersQuery, useGetChannelsByUserQuery } from '@messenger-box/platform-client';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nexport function Dialogs(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\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n },\n });\n\n const { data: users } = useGetAllUsersQuery();\n\n const currentUser = useMemo(\n () => users?.getUsers?.find(({ alias }: any) => alias.includes(auth?.auth0UserId)),\n [users, auth],\n );\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 const handleSelectChannel = useCallback((id: any) => {\n if (params?.channelId) {\n navigation.navigate('Inbox.DialogMessages' as any, { channelId: params?.channelId, hideTabBar: true });\n } else {\n navigation.navigate('Inbox.DialogMessages' as any, { channelId: id, hideTabBar: true });\n }\n }, []);\n\n return (\n <Box p={2}>\n {!userChannels?.channelsByUser?.length ? (\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 <FlatList\n data={userChannels?.channelsByUser}\n onRefresh={getChannelsRefetch}\n refreshing={userChannelsLoading}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <DialogsListItem\n users={users?.getUsers}\n onOpen={handleSelectChannel}\n currentUser={currentUser}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n />\n </>\n )}\n </Box>\n );\n}\n","export * from './inbox/Inbox';\n","module.exports = require(\"@admin-layout/client\");","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(\"@react-navigation/stack\");","module.exports = require(\"axios\");","module.exports = require(\"date-fns\");","module.exports = require(\"envalid\");","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-keyboard-aware-scroll-view\");","module.exports = require(\"react-redux\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@messenger-box/platform-mobile/./src/index.ts","webpack://@messenger-box/platform-mobile/./src/module.ts","webpack://@messenger-box/platform-mobile/./src/navigation/InboxNavigation.tsx","webpack://@messenger-box/platform-mobile/./src/navigation/index.ts","webpack://@messenger-box/platform-mobile/./src/screens/inbox/DialogMessages.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/Inbox.tsx","webpack://@messenger-box/platform-mobile/./src/screens/inbox/components/DialogsListItem.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/index.ts","webpack://@messenger-box/platform-mobile/external commonjs \"@admin-layout/client\"","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 \"@react-navigation/stack\"","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-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-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 { createStackNavigator } from '@react-navigation/stack';\nimport { DialogMessages } from '../screens/inbox/DialogMessages';\n\nconst InboxStack = createStackNavigator();\n\nexport function InboxNavigation({ route }) {\n return (\n <InboxStack.Navigator initialRouteName=\"DialogMessages\">\n <InboxStack.Screen name=\"DialogMessages\" options={{ header: () => null }}>\n {(props) => <DialogMessages channelId={route?.params?.channelId} />}\n </InboxStack.Screen>\n </InboxStack.Navigator>\n );\n}\n","export * from './InboxNavigation';\n","import * as React from 'react';\nimport { Box } from 'native-base';\nimport { ConversationView } from './containers/ConversationView';\n\nexport function DialogMessages({ channelId }) {\n return (\n <Box bg={'white'} flex={1}>\n <ConversationView channelId={channelId} />\n </Box>\n );\n}\n","import * as React from 'react';\nimport { Box } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\n\nexport const Inbox = (props) => {\n const { channelFilters, channelRole } = props;\n return (\n <Box bg={'white'} flex={1}>\n <Dialogs channelFilters={channelFilters} channelRole={channelRole} />\n </Box>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Text, Image, Pressable, HStack, Box, Avatar } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\n\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) => 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 DialogsListItem: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const { data: messagesQuery, loading: messageLoading } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n limit: 1,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const chatUser = useMemo(\n () =>\n users?.find(({ id }) => {\n const isNotCurrentUser = id !== currentUser?.id;\n if (isNotCurrentUser) {\n return channel?.members?.find(({ user }: any) => user.id === id);\n }\n return isNotCurrentUser;\n }),\n [users, currentUser, channel],\n );\n\n const { data: userQuery } = useUserAccountQuery({\n variables: {\n userId: chatUser?.id,\n },\n skip: !chatUser?.id,\n });\n\n const lastMessage = useMemo(() => {\n if (!messagesQuery?.messages?.data?.length) {\n return null;\n }\n const { data } = messagesQuery.messages;\n return data[data.length - 1];\n }, [messagesQuery]);\n\n const channelType = useMemo(() => {\n return channel?.type;\n }, [channel]);\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id)}\n borderWidth={'1'}\n borderRadius={10}\n borderColor={'gray.200'}\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 m={3} space={2}>\n <Avatar\n size={'lg'}\n source={{\n uri: userQuery?.getUserAccount.picture,\n }}\n >\n {startCase(userQuery?.getUserAccount.username.charAt(0))}\n </Avatar>\n <Box width={'80%'}>\n <HStack alignItems=\"center\" justifyContent=\"space-between\">\n <Text fontSize=\"xs\" color=\"red.500\">\n {channelType}\n </Text>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </HStack>\n <Text color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">\n {chatUser?.givenName + ' ' + chatUser?.familyName}\n </Text>\n <Text color=\"gray.600\">{lastMessage?.message}</Text>\n </Box>\n </HStack>\n </Pressable>\n );\n};\n","import { cleanEnv, num } from 'envalid';\n\nexport const config = cleanEnv(process.env, {\n MESSAGES_PER_PAGE: num({ devDefault: 20, default: 50 }),\n FILES_PER_MESSAGE: num({ default: 10 }),\n});\n","export { config } from './config';\n","import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { useColorModeValue, Box, Button, Text, Icon, Image, Spinner } from 'native-base';\nimport { useNavigation } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy } from 'lodash';\nimport * as ImagePicker from 'expo-image-picker';\nimport { encode as atob } from 'base-64';\nimport { MaterialCommunityIcons, Ionicons } from '@expo/vector-icons';\nimport { Actions, GiftedChat, Send, IMessage, MessageText } from 'react-native-gifted-chat';\nimport {\n useCheckForNewMessagesQuery,\n useGetAllUsersQuery,\n useMessagesQuery,\n useSendMessagesMutation,\n useUploadFiles,\n} from '@messenger-box/platform-client';\nimport { IFileInfo } from '@messenger-box/core';\nimport { config } from '../config';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\n\nconst { MESSAGES_PER_PAGE } = config;\n\ninterface IMessageProps extends IMessage {\n type: string;\n propsConfiguration?: any;\n}\n\nexport interface AlertMessageAttachmentsInterface {\n title: string;\n isTitleHtml: boolean;\n icon: string;\n callToAction: {\n title: string;\n link: string;\n };\n}\n\nexport function ConversationView({ channelId }: any) {\n const messageListRef = useRef(null);\n const [channelToTop, setChannelToTop] = useState(0);\n const [channelMessages, setChannelMessages] = useState<any>([]);\n const auth = useSelector(userSelector);\n const [totalCount, setTotalCount] = useState<any>(0);\n const [selectedImage, setImage] = useState<string>('');\n const [loadingOldMessages, setLoadingOldMessages] = useState(false);\n const color = useColorModeValue('white', 'black');\n const navigation = useNavigation<any>();\n const [files, setFiles] = useState<File[]>([]);\n\n const { startUpload } = useUploadFiles();\n\n const [sendMsg] = useSendMessagesMutation();\n\n const {\n data,\n loading: messageLoading,\n refetch,\n } = useMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n limit: MESSAGES_PER_PAGE,\n },\n skip: !channelId,\n fetchPolicy: 'cache-and-network',\n });\n\n const { data: users } = useGetAllUsersQuery();\n\n const currentUser = useMemo(\n () => users?.getUsers?.find(({ alias }: any) => alias.includes(auth?.auth0UserId)),\n [users, auth],\n );\n\n const { data: checkForMessages } = useCheckForNewMessagesQuery({\n variables: {\n channelId: channelId?.toString(),\n },\n skip: !channelId,\n fetchPolicy: 'network-only',\n pollInterval: 5000,\n });\n\n useEffect(() => {\n if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {\n const { data: messages, totalCount } = data.messages;\n setChannelMessages((oldMessages) => uniqBy([...messages, ...oldMessages], ({ id }) => id));\n setTotalCount(totalCount);\n }\n }, [data, loadingOldMessages, channelMessages]);\n\n useLayoutEffect(() => {\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 } = data.messages;\n setTotalCount(totalCount);\n setChannelMessages((oldMessages) => uniqBy([...oldMessages, ...messages], ({ id }) => id));\n });\n }\n }, [checkForMessages, totalCount, refetch]);\n\n const onFetchOld = useCallback(() => {\n if (data?.messages?.totalCount > channelMessages.length) {\n setLoadingOldMessages(true);\n refetch({ skip: channelMessages.length });\n }\n }, [data, channelMessages]);\n\n const onMessagesScroll = useCallback(() => {\n if (messageListRef.current) {\n const { scrollTop, scrollHeight, clientHeight } = messageListRef.current;\n if (clientHeight - scrollTop > scrollHeight - 50 && !messageLoading) {\n onFetchOld();\n }\n }\n }, [onFetchOld]);\n\n const dataURLtoFile = (dataurl, filename) => {\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 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.concat(file));\n }\n };\n\n const handleSend = useCallback(\n async (message: string, files: File[]) => {\n if (!(message && channelId)) {\n return;\n }\n const { data } = await sendMsg({\n variables: {\n channelId,\n content: message,\n },\n update: (cache, { data, errors }) => {\n if (!data || errors) {\n return;\n }\n setChannelMessages((messages) => [...messages, data?.sendMessage]);\n setTotalCount((t) => t + 1);\n setChannelToTop(channelToTop + 1);\n },\n });\n if (files && data?.sendMessage?.id) {\n const { id: postId } = data.sendMessage;\n const uploadResponse = await startUpload({\n file: files,\n saveUploadedFile: {\n variables: {\n postId,\n },\n },\n createUploadLink: {\n variables: {\n postId,\n },\n },\n });\n const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];\n if (uploadResponse.data) {\n setFiles([]);\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],\n );\n\n const messageList = useMemo(() => {\n let currentDate = '';\n let res: any = [];\n if (channelMessages.length) {\n orderBy(channelMessages, ['createdAt'], ['desc']).map((msg) => {\n let message: IMessageProps = {\n _id: '',\n text: '',\n createdAt: 0,\n user: {\n _id: '',\n name: '',\n avatar: '',\n },\n type: '',\n };\n const date = new Date(msg.createdAt);\n message._id = msg.id;\n message.text = msg.message;\n message.createdAt = date;\n (message.user = {\n _id: msg.author.id,\n name: msg.author.givenName + msg.author.familyName,\n avatar: msg.author?.picture,\n }),\n (message.image = msg.files?.data[0]?.url),\n (message.sent = msg?.isDelivered),\n (message.received = msg?.isRead);\n message.type = msg?.type;\n message.propsConfiguration = msg?.propsConfiguration;\n res.push(message);\n debugger;\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) => {\n const { currentMessage } = props;\n if (currentMessage.type !== 'ALERT') {\n return <MessageText {...props} />;\n } else {\n const { attachment } = currentMessage?.propsConfiguration?.contents as {\n attachment: AlertMessageAttachmentsInterface;\n };\n let action: string = '';\n let actionId: any = '';\n if (attachment.callToAction.link.includes('my-reservation-details')) {\n action = 'm-reservation-detail';\n actionId = attachment?.callToAction?.link.split('/').pop();\n }\n return (\n <Box>\n {attachment.callToAction ? (\n <Button\n variant={'outline'}\n size={'sm'}\n borderColor={color}\n onPress={() => navigation.navigate(action, { reservationId: actionId })}\n >\n <Text color={color}>{attachment.callToAction.title}</Text>\n </Button>\n ) : null}\n <MessageText {...props} />\n </Box>\n );\n }\n };\n\n const renderActions = (props) => {\n return (\n <Actions\n {...props}\n icon={() => <Icon as={Ionicons} name={'image'} size={'sm'} onPress={onSelectImages} />}\n />\n );\n };\n\n const renderAccessory = (props) => {\n return (\n <Box>\n {selectedImage !== '' ? (\n <Image ml={3} key={selectedImage} alt={'image'} source={{ uri: selectedImage }} size={'xs'} />\n ) : null}\n </Box>\n );\n };\n\n return (\n <GiftedChat\n wrapInSafeArea={false}\n renderLoading={() => <Spinner />}\n messages={messageList}\n onSend={(messages) => {\n handleSend(messages[0].text, files);\n }}\n scrollToBottom\n user={{\n _id: currentUser?.id || '',\n }}\n isLoadingEarlier={true}\n isTyping\n alwaysShowSend\n infiniteScroll={true}\n renderSend={renderSend}\n loadEarlier={true}\n renderMessageText={renderMessageText}\n minInputToolbarHeight={50}\n renderActions={renderActions}\n renderAccessory={renderAccessory}\n />\n );\n}\n","import React, { useCallback, useMemo, useEffect } from 'react';\nimport { FlatList, Box, Heading, Input, Text, Icon, Center } from 'native-base';\nimport { Ionicons } from '@expo/vector-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\nimport { useGetAllUsersQuery, useGetChannelsByUserQuery } from '@messenger-box/platform-client';\nimport { userSelector } from '@adminide-stack/user-auth0-client';\nimport { CHANGE_SETTINGS_ACTION } from '@admin-layout/client';\n\nexport interface InboxProps {\n channelFilters?: Record<string, unknown>;\n channelRole?: string;\n}\n\nexport function Dialogs(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\n const {\n data: userChannels,\n loading: userChannelsLoading,\n refetch: getChannelsRefetch,\n } = useGetChannelsByUserQuery({\n variables: {\n role: channelRole,\n criteria: channelFilters,\n },\n });\n\n const { data: users } = useGetAllUsersQuery();\n\n const currentUser = useMemo(\n () => users?.getUsers?.find(({ alias }: any) => alias.includes(auth?.auth0UserId)),\n [users, auth],\n );\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 const handleSelectChannel = useCallback((id: any) => {\n if (params?.channelId) {\n navigation.navigate('Inbox.DialogMessages' as any, { channelId: params?.channelId, hideTabBar: true });\n } else {\n navigation.navigate('Inbox.DialogMessages' as any, { channelId: id, hideTabBar: true });\n }\n }, []);\n\n return (\n <Box p={2}>\n {!userChannels?.channelsByUser?.length ? (\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 <FlatList\n data={userChannels?.channelsByUser}\n onRefresh={getChannelsRefetch}\n refreshing={userChannelsLoading}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <DialogsListItem\n users={users?.getUsers}\n onOpen={handleSelectChannel}\n currentUser={currentUser}\n channel={channel}\n selectedChannelId={params?.channelId}\n />\n )}\n />\n </>\n )}\n </Box>\n );\n}\n","export * from './inbox/Inbox';\n","module.exports = require(\"@admin-layout/client\");","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(\"@react-navigation/stack\");","module.exports = require(\"base-64\");","module.exports = require(\"date-fns\");","module.exports = require(\"envalid\");","module.exports = require(\"expo-image-picker\");","module.exports = require(\"lodash\");","module.exports = require(\"native-base\");","module.exports = require(\"react\");","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,2 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
export interface AlertMessageAttachmentsInterface {
|
|
3
|
+
title: string;
|
|
4
|
+
isTitleHtml: boolean;
|
|
5
|
+
icon: string;
|
|
6
|
+
callToAction: {
|
|
7
|
+
title: string;
|
|
8
|
+
link: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
2
11
|
export declare function ConversationView({ channelId }: any): JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@messenger-box/platform-mobile",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.221",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@messenger-box/core": "0.0.1-alpha.208",
|
|
23
|
-
"@messenger-box/platform-client": "0.0.1-alpha.208"
|
|
23
|
+
"@messenger-box/platform-client": "0.0.1-alpha.208",
|
|
24
|
+
"base-64": "1.0.0",
|
|
25
|
+
"react-native-gifted-chat": "1.0.4"
|
|
24
26
|
},
|
|
25
27
|
"devDependencies": {
|
|
26
28
|
"@types/bootstrap": "4.5.0",
|
|
@@ -38,5 +40,5 @@
|
|
|
38
40
|
"typescript": {
|
|
39
41
|
"definition": "lib/index.d.ts"
|
|
40
42
|
},
|
|
41
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "b57dc7f51ff6c526821102e0c5df44281ebf091f"
|
|
42
44
|
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useColorModeValue, Box, Button, Text, Icon, Image, Spinner } from 'native-base';
|
|
3
|
+
import { useNavigation } from '@react-navigation/native';
|
|
4
4
|
import { useSelector } from 'react-redux';
|
|
5
5
|
import { orderBy, uniqBy } from 'lodash';
|
|
6
|
+
import * as ImagePicker from 'expo-image-picker';
|
|
7
|
+
import { encode as atob } from 'base-64';
|
|
8
|
+
import { MaterialCommunityIcons, Ionicons } from '@expo/vector-icons';
|
|
9
|
+
import { Actions, GiftedChat, Send, IMessage, MessageText } from 'react-native-gifted-chat';
|
|
6
10
|
import {
|
|
7
11
|
useCheckForNewMessagesQuery,
|
|
8
12
|
useGetAllUsersQuery,
|
|
@@ -10,22 +14,38 @@ import {
|
|
|
10
14
|
useSendMessagesMutation,
|
|
11
15
|
useUploadFiles,
|
|
12
16
|
} from '@messenger-box/platform-client';
|
|
13
|
-
import { MessageItem } from '../components/MessageItem';
|
|
14
|
-
import { MessageInput } from '../components/MessageInput';
|
|
15
17
|
import { IFileInfo } from '@messenger-box/core';
|
|
16
18
|
import { config } from '../config';
|
|
17
19
|
import { userSelector } from '@adminide-stack/user-auth0-client';
|
|
18
20
|
|
|
19
21
|
const { MESSAGES_PER_PAGE } = config;
|
|
20
22
|
|
|
23
|
+
interface IMessageProps extends IMessage {
|
|
24
|
+
type: string;
|
|
25
|
+
propsConfiguration?: any;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface AlertMessageAttachmentsInterface {
|
|
29
|
+
title: string;
|
|
30
|
+
isTitleHtml: boolean;
|
|
31
|
+
icon: string;
|
|
32
|
+
callToAction: {
|
|
33
|
+
title: string;
|
|
34
|
+
link: string;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
21
38
|
export function ConversationView({ channelId }: any) {
|
|
22
|
-
const { onOpen } = useDisclose();
|
|
23
39
|
const messageListRef = useRef(null);
|
|
24
40
|
const [channelToTop, setChannelToTop] = useState(0);
|
|
25
41
|
const [channelMessages, setChannelMessages] = useState<any>([]);
|
|
26
42
|
const auth = useSelector(userSelector);
|
|
27
43
|
const [totalCount, setTotalCount] = useState<any>(0);
|
|
44
|
+
const [selectedImage, setImage] = useState<string>('');
|
|
28
45
|
const [loadingOldMessages, setLoadingOldMessages] = useState(false);
|
|
46
|
+
const color = useColorModeValue('white', 'black');
|
|
47
|
+
const navigation = useNavigation<any>();
|
|
48
|
+
const [files, setFiles] = useState<File[]>([]);
|
|
29
49
|
|
|
30
50
|
const { startUpload } = useUploadFiles();
|
|
31
51
|
|
|
@@ -63,7 +83,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
63
83
|
useEffect(() => {
|
|
64
84
|
if (data?.messages?.data && (loadingOldMessages || channelMessages.length === 0)) {
|
|
65
85
|
const { data: messages, totalCount } = data.messages;
|
|
66
|
-
setChannelMessages((oldMessages) => uniqBy([...
|
|
86
|
+
setChannelMessages((oldMessages) => uniqBy([...messages, ...oldMessages], ({ id }) => id));
|
|
67
87
|
setTotalCount(totalCount);
|
|
68
88
|
}
|
|
69
89
|
}, [data, loadingOldMessages, channelMessages]);
|
|
@@ -91,20 +111,45 @@ export function ConversationView({ channelId }: any) {
|
|
|
91
111
|
}
|
|
92
112
|
}, [data, channelMessages]);
|
|
93
113
|
|
|
94
|
-
const onMessagesScroll = useCallback(
|
|
95
|
-
()
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
onFetchOld();
|
|
100
|
-
}
|
|
114
|
+
const onMessagesScroll = useCallback(() => {
|
|
115
|
+
if (messageListRef.current) {
|
|
116
|
+
const { scrollTop, scrollHeight, clientHeight } = messageListRef.current;
|
|
117
|
+
if (clientHeight - scrollTop > scrollHeight - 50 && !messageLoading) {
|
|
118
|
+
onFetchOld();
|
|
101
119
|
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
120
|
+
}
|
|
121
|
+
}, [onFetchOld]);
|
|
122
|
+
|
|
123
|
+
const dataURLtoFile = (dataurl, filename) => {
|
|
124
|
+
var arr = dataurl.split(','),
|
|
125
|
+
mime = arr[0].match(/:(.*?);/)[1],
|
|
126
|
+
bstr = atob(arr[1]),
|
|
127
|
+
n = bstr.length,
|
|
128
|
+
u8arr = new Uint8Array(n);
|
|
129
|
+
while (n--) {
|
|
130
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
131
|
+
}
|
|
132
|
+
return new File([u8arr], filename, { type: mime });
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
const onSelectImages = async () => {
|
|
136
|
+
let imageSource: any = await ImagePicker.launchImageLibraryAsync({
|
|
137
|
+
mediaTypes: ImagePicker.MediaTypeOptions.Images,
|
|
138
|
+
allowsEditing: true,
|
|
139
|
+
aspect: [4, 3],
|
|
140
|
+
quality: 1,
|
|
141
|
+
base64: true,
|
|
142
|
+
});
|
|
143
|
+
if (!imageSource.cancelled) {
|
|
144
|
+
const image = 'data:image/jpeg;base64,' + imageSource?.base64;
|
|
145
|
+
setImage(image);
|
|
146
|
+
const file = dataURLtoFile(image, 'inputImage.jpg');
|
|
147
|
+
setFiles(files.concat(file));
|
|
148
|
+
}
|
|
149
|
+
};
|
|
105
150
|
|
|
106
151
|
const handleSend = useCallback(
|
|
107
|
-
async (message: string, files: []) => {
|
|
152
|
+
async (message: string, files: File[]) => {
|
|
108
153
|
if (!(message && channelId)) {
|
|
109
154
|
return;
|
|
110
155
|
}
|
|
@@ -138,6 +183,9 @@ export function ConversationView({ channelId }: any) {
|
|
|
138
183
|
},
|
|
139
184
|
});
|
|
140
185
|
const uploadedFiles = uploadResponse.data as unknown as IFileInfo[];
|
|
186
|
+
if (uploadResponse.data) {
|
|
187
|
+
setFiles([]);
|
|
188
|
+
}
|
|
141
189
|
setChannelMessages((messages) =>
|
|
142
190
|
messages.map((message) => {
|
|
143
191
|
if (message.id === postId) {
|
|
@@ -160,38 +208,128 @@ export function ConversationView({ channelId }: any) {
|
|
|
160
208
|
const messageList = useMemo(() => {
|
|
161
209
|
let currentDate = '';
|
|
162
210
|
let res: any = [];
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
211
|
+
if (channelMessages.length) {
|
|
212
|
+
orderBy(channelMessages, ['createdAt'], ['desc']).map((msg) => {
|
|
213
|
+
let message: IMessageProps = {
|
|
214
|
+
_id: '',
|
|
215
|
+
text: '',
|
|
216
|
+
createdAt: 0,
|
|
217
|
+
user: {
|
|
218
|
+
_id: '',
|
|
219
|
+
name: '',
|
|
220
|
+
avatar: '',
|
|
221
|
+
},
|
|
222
|
+
type: '',
|
|
223
|
+
};
|
|
224
|
+
const date = new Date(msg.createdAt);
|
|
225
|
+
message._id = msg.id;
|
|
226
|
+
message.text = msg.message;
|
|
227
|
+
message.createdAt = date;
|
|
228
|
+
(message.user = {
|
|
229
|
+
_id: msg.author.id,
|
|
230
|
+
name: msg.author.givenName + msg.author.familyName,
|
|
231
|
+
avatar: msg.author?.picture,
|
|
232
|
+
}),
|
|
233
|
+
(message.image = msg.files?.data[0]?.url),
|
|
234
|
+
(message.sent = msg?.isDelivered),
|
|
235
|
+
(message.received = msg?.isRead);
|
|
236
|
+
message.type = msg?.type;
|
|
237
|
+
message.propsConfiguration = msg?.propsConfiguration;
|
|
238
|
+
res.push(message);
|
|
239
|
+
debugger;
|
|
240
|
+
});
|
|
241
|
+
}
|
|
176
242
|
return res;
|
|
177
243
|
}, [channelMessages]);
|
|
178
244
|
|
|
245
|
+
const renderSend = (props) => {
|
|
246
|
+
return (
|
|
247
|
+
<Send {...props}>
|
|
248
|
+
<Box>
|
|
249
|
+
<MaterialCommunityIcons
|
|
250
|
+
name="send-circle"
|
|
251
|
+
style={{ marginBottom: 5, marginRight: 5 }}
|
|
252
|
+
size={32}
|
|
253
|
+
color="#2e64e5"
|
|
254
|
+
/>
|
|
255
|
+
</Box>
|
|
256
|
+
</Send>
|
|
257
|
+
);
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
const renderMessageText = (props) => {
|
|
261
|
+
const { currentMessage } = props;
|
|
262
|
+
if (currentMessage.type !== 'ALERT') {
|
|
263
|
+
return <MessageText {...props} />;
|
|
264
|
+
} else {
|
|
265
|
+
const { attachment } = currentMessage?.propsConfiguration?.contents as {
|
|
266
|
+
attachment: AlertMessageAttachmentsInterface;
|
|
267
|
+
};
|
|
268
|
+
let action: string = '';
|
|
269
|
+
let actionId: any = '';
|
|
270
|
+
if (attachment.callToAction.link.includes('my-reservation-details')) {
|
|
271
|
+
action = 'm-reservation-detail';
|
|
272
|
+
actionId = attachment?.callToAction?.link.split('/').pop();
|
|
273
|
+
}
|
|
274
|
+
return (
|
|
275
|
+
<Box>
|
|
276
|
+
{attachment.callToAction ? (
|
|
277
|
+
<Button
|
|
278
|
+
variant={'outline'}
|
|
279
|
+
size={'sm'}
|
|
280
|
+
borderColor={color}
|
|
281
|
+
onPress={() => navigation.navigate(action, { reservationId: actionId })}
|
|
282
|
+
>
|
|
283
|
+
<Text color={color}>{attachment.callToAction.title}</Text>
|
|
284
|
+
</Button>
|
|
285
|
+
) : null}
|
|
286
|
+
<MessageText {...props} />
|
|
287
|
+
</Box>
|
|
288
|
+
);
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
const renderActions = (props) => {
|
|
293
|
+
return (
|
|
294
|
+
<Actions
|
|
295
|
+
{...props}
|
|
296
|
+
icon={() => <Icon as={Ionicons} name={'image'} size={'sm'} onPress={onSelectImages} />}
|
|
297
|
+
/>
|
|
298
|
+
);
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
const renderAccessory = (props) => {
|
|
302
|
+
return (
|
|
303
|
+
<Box>
|
|
304
|
+
{selectedImage !== '' ? (
|
|
305
|
+
<Image ml={3} key={selectedImage} alt={'image'} source={{ uri: selectedImage }} size={'xs'} />
|
|
306
|
+
) : null}
|
|
307
|
+
</Box>
|
|
308
|
+
);
|
|
309
|
+
};
|
|
310
|
+
|
|
179
311
|
return (
|
|
180
|
-
<
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
312
|
+
<GiftedChat
|
|
313
|
+
wrapInSafeArea={false}
|
|
314
|
+
renderLoading={() => <Spinner />}
|
|
315
|
+
messages={messageList}
|
|
316
|
+
onSend={(messages) => {
|
|
317
|
+
handleSend(messages[0].text, files);
|
|
318
|
+
}}
|
|
319
|
+
scrollToBottom
|
|
320
|
+
user={{
|
|
321
|
+
_id: currentUser?.id || '',
|
|
322
|
+
}}
|
|
323
|
+
isLoadingEarlier={true}
|
|
324
|
+
isTyping
|
|
325
|
+
alwaysShowSend
|
|
326
|
+
infiniteScroll={true}
|
|
327
|
+
renderSend={renderSend}
|
|
328
|
+
loadEarlier={true}
|
|
329
|
+
renderMessageText={renderMessageText}
|
|
330
|
+
minInputToolbarHeight={50}
|
|
331
|
+
renderActions={renderActions}
|
|
332
|
+
renderAccessory={renderAccessory}
|
|
333
|
+
/>
|
|
196
334
|
);
|
|
197
335
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IPost } from '@messenger-box/core';
|
|
2
|
-
import { IAuthUser } from '@pubngo-stack/core';
|
|
3
|
-
interface ICommonMessageProps {
|
|
4
|
-
message: IPost;
|
|
5
|
-
currentUser: IAuthUser;
|
|
6
|
-
}
|
|
7
|
-
export declare const CommonMessage: (props: ICommonMessageProps) => JSX.Element;
|
|
8
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
interface FilesListProps {
|
|
3
|
-
files: any;
|
|
4
|
-
uploaded?: boolean;
|
|
5
|
-
}
|
|
6
|
-
export declare function FilesList({ files, uploaded }: FilesListProps): JSX.Element;
|
|
7
|
-
export declare namespace FilesList {
|
|
8
|
-
var FilesView: ({ files, uploaded }: {
|
|
9
|
-
files: any[];
|
|
10
|
-
uploaded?: boolean;
|
|
11
|
-
}) => JSX.Element;
|
|
12
|
-
}
|
|
13
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
declare type MessageInputProps = {
|
|
3
|
-
channelId?: string;
|
|
4
|
-
handleSend: (message: string, files: any) => Promise<void>;
|
|
5
|
-
};
|
|
6
|
-
export declare const MessageInput: React.ForwardRefExoticComponent<MessageInputProps & React.RefAttributes<unknown>>;
|
|
7
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { IPost } from '@messenger-box/core';
|
|
3
|
-
export interface AlertMessageAttachmentsInterface {
|
|
4
|
-
title: string;
|
|
5
|
-
isTitleHtml: boolean;
|
|
6
|
-
icon: string;
|
|
7
|
-
callToAction: {
|
|
8
|
-
title: string;
|
|
9
|
-
link: string;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export declare function MessageItem({ message, channelId, currentUser, totalCount, onOpen, }: {
|
|
13
|
-
message: IPost;
|
|
14
|
-
channelId: number;
|
|
15
|
-
currentUser: any;
|
|
16
|
-
totalCount: number;
|
|
17
|
-
onOpen: () => void;
|
|
18
|
-
}): JSX.Element;
|