@messenger-box/platform-mobile 0.0.1-alpha.190 → 0.0.1-alpha.197

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/index.d.ts +1 -0
  3. package/lib/index.js +508 -203
  4. package/lib/index.js.map +1 -1
  5. package/lib/navigation/InboxNavigation.d.ts +3 -1
  6. package/lib/screens/inbox/DialogMessages.d.ts +3 -1
  7. package/lib/screens/inbox/Inbox.d.ts +2 -0
  8. package/lib/screens/inbox/components/CommonMessage.d.ts +9 -0
  9. package/lib/screens/inbox/components/DialogsListItem.d.ts +5 -4
  10. package/lib/screens/inbox/components/FilesList.d.ts +13 -0
  11. package/lib/screens/inbox/components/MessageInput.d.ts +6 -1
  12. package/lib/screens/inbox/components/MessageItem.d.ts +5 -8
  13. package/lib/screens/inbox/components/PlainMessage.d.ts +6 -0
  14. package/lib/screens/inbox/config/config.d.ts +4 -0
  15. package/lib/screens/inbox/config/index.d.ts +1 -0
  16. package/lib/screens/inbox/containers/Dialogs.d.ts +5 -1
  17. package/lib/screens/index.d.ts +1 -0
  18. package/package.json +4 -4
  19. package/src/index.ts +1 -0
  20. package/src/navigation/InboxNavigation.tsx +9 -20
  21. package/src/screens/inbox/DialogMessages.tsx +2 -7
  22. package/src/screens/inbox/{DialogsList.tsx → Inbox.tsx} +4 -4
  23. package/src/screens/inbox/components/CommonMessage.tsx +52 -0
  24. package/src/screens/inbox/components/DialogsListItem.tsx +63 -44
  25. package/src/screens/inbox/components/FilesList.tsx +41 -0
  26. package/src/screens/inbox/components/MessageInput.tsx +24 -22
  27. package/src/screens/inbox/components/MessageItem.tsx +34 -55
  28. package/src/screens/inbox/components/PlainMessage.tsx +16 -0
  29. package/src/screens/inbox/config/config.ts +6 -0
  30. package/src/screens/inbox/config/index.ts +1 -0
  31. package/src/screens/inbox/containers/ConversationView.tsx +158 -83
  32. package/src/screens/inbox/containers/Dialogs.tsx +93 -48
  33. package/src/screens/index.ts +1 -0
  34. package/lib/screens/inbox/DialogsList.d.ts +0 -2
  35. package/lib/screens/inbox/components/DialogsHeader.d.ts +0 -8
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/index.ts","webpack:///./src/module.ts","webpack:///./src/navigation/InboxNavigation.tsx","webpack:///./src/navigation/index.ts","webpack:///./src/screens/inbox/DialogMessages.tsx","webpack:///./src/screens/inbox/DialogsList.tsx","webpack:///./src/screens/inbox/components/DialogsListItem.tsx","webpack:///./src/screens/inbox/components/MessageInput.tsx","webpack:///./src/screens/inbox/components/MessageItem.tsx","webpack:///./src/screens/inbox/containers/ConversationView.tsx","webpack:///./src/screens/inbox/containers/Dialogs.tsx","webpack:///external \"@common-stack/client-react\"","webpack:///external \"@expo/vector-icons\"","webpack:///external \"@messenger-box/platform-client\"","webpack:///external \"@react-navigation/native\"","webpack:///external \"@react-navigation/native-stack\"","webpack:///external \"date-fns\"","webpack:///external \"expo-image-picker\"","webpack:///external \"lodash\"","webpack:///external \"native-base\"","webpack:///external \"react\"","webpack:///external \"react-redux\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import PlatformModule from './module';\n\nimport { Feature } from '@common-stack/client-react';\n\nexport default new Feature(PlatformModule);\nexport * from './navigation';\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 { createNativeStackNavigator } from \"@react-navigation/native-stack\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { DialogMessages } from \"../screens/inbox/DialogMessages\";\nimport { DialogsList } from \"../screens/inbox/DialogsList\";\n\nconst InboxStack = createNativeStackNavigator();\n\nexport function InboxNavigation() {\n return (\n <InboxStack.Navigator \n initialRouteName=\"Inbox.DialogsList\"\n >\n <InboxStack.Screen \n component={DialogsList}\n name=\"Inbox.DialogsList\"\n options={{ header: () => null }}\n />\n <InboxStack.Screen \n name=\"Inbox.DialogMessages\"\n component={DialogMessages}\n options={{ header: () => null }}\n />\n </InboxStack.Navigator>\n );\n}","export * from './InboxNavigation';\n","import * as React from 'react';\nimport { useNavigation, useRoute } from '@react-navigation/native';\nimport { Box } from 'native-base';\nimport { DialogsHeader } from './components/DialogsHeader';\nimport { ConversationView } from './containers/ConversationView';\n\nexport function DialogMessages() {\n const { params } = useRoute<any>();\n const navigation = useNavigation();\n\n return (\n <Box bg={'white'} flex={1} p={6}>\n <ConversationView channelId={params?.channel.id} />\n </Box>\n );\n}\n","import * as React from 'react';\nimport { Box } from 'native-base';\n\nimport { Dialogs } from './containers/Dialogs';\n\nexport function DialogsList() {\n\n return (\n <Box bg={'white'} flex={1}>\n <Dialogs />\n </Box>\n );\n}\n","import { first } from 'lodash';\nimport React, { useEffect, useMemo } from 'react';\nimport { Text, Box, Image, Pressable, HStack, VStack } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { IChannel, IUserAccount, useGetMessagesQuery } from '@messenger-box/platform-client';\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 refreshKey?: number;\n currentUserId: string;\n channel: IDialogListChannel;\n onOpen: (channel: IChannel, options?: 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 refreshKey,\n channel,\n currentUserId,\n onOpen,\n}) {\n const message$ = useGetMessagesQuery({\n fetchPolicy: 'network-only',\n variables: { limit: 1, channelId: channel.id },\n });\n\n // Workaround for messages refresh: update latest messages view after list refresh\n useEffect(() => {\n message$.refetch();\n }, [refreshKey]);\n\n const users = useMemo(() => channel.users.filter(({ alias }) => !alias?.includes(currentUserId)), [currentUserId]);\n\n const message = useMemo(() => first(message$.data?.messages.data), [message$.data?.messages]);\n const title = useMemo(\n () => users.map(({ givenName, familyName }) => `${givenName} ${familyName}`).join(','),\n [users],\n );\n\n const text = message?.message;\n const date = createdAtText(message?.createdAt);\n\n const onOpenChannel = () => onOpen(channel, { title, users });\n\n return (\n <Pressable onPress={onOpenChannel} borderWidth={'1'} borderRadius=\"md\" borderColor={'gray.200'} shadow={'6'}>\n <HStack m={3} space={2} alignItems=\"center\">\n <Image\n alt={'image'}\n width={16}\n borderRadius=\"full\"\n height={16}\n source={{ uri: 'https://picsum.photos/220' }}\n />\n <VStack space={1}>\n <HStack alignItems=\"center\" justifyContent=\"space-between\">\n {/* TODO: change to valid status */}\n <Text fontSize=\"xs\" color=\"red.500\">\n Request withdrawal\n </Text>\n <Text color=\"gray.500\">{date}</Text>\n </HStack>\n {title !== '' ? (\n <Text color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">\n {title}\n </Text>\n ) : null}\n <Text color=\"gray.600\">{text}</Text>\n {/* TODO: change to valid reservation date */}\n <Text>Sep 12-16, 2019. Private room fully furnis...</Text>\n </VStack>\n </HStack>\n </Pressable>\n );\n};\n","import { TextField, View, Image, Pressable, HStack, VStack } from 'native-base';\nimport { FontAwesome } from '@expo/vector-icons';\nimport * as ImagePicker from 'expo-image-picker';\nimport React, { forwardRef, useImperativeHandle, useState } from 'react';\n\nexport const MessageInput = forwardRef(function MessageInput({ onSend }: any, ref) {\n const [text, setText] = useState('');\n const [files, setFiles] = useState<string[]>([]);\n\n const reset = () => {\n setText('');\n setFiles([]);\n };\n\n useImperativeHandle(ref, () => ({ reset, text, files }));\n\n const onSendMessage = () => {\n onSend(text, files);\n };\n const onRemoveImage = (url: string) => setFiles((files) => files.filter((file) => file !== url));\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 // base64: true,\n // aspect: [4, 3],\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n });\n\n if (!result.cancelled) {\n setFiles(files.concat((result as any).uri)); // @igor need ot check this\n }\n };\n\n return (\n <VStack marginTop={3} alignContent=\"center\">\n <View>\n <TextField\n placeholder=\"Message...\"\n borderColor=\"gray.400\"\n value={text}\n onChange={(e) => setText(e.nativeEvent.text)}\n fontSize={14}\n />\n </View>\n {files.length ? (\n <View mb={4} flexDirection=\"row\">\n {files.map((file, index) => (\n <Pressable onPress={() => onRemoveImage(file)} key={index}>\n <Image alt={'image'} mr={2} height={10} width={10} source={{ uri: file }} />\n </Pressable>\n ))}\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={onSendMessage} size={20} name=\"send\" />\n </HStack>\n </VStack>\n );\n});\n","import React, { useMemo } from 'react';\nimport { Text, Box, Image, HStack } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { IFileInfo, IPost } from '@messenger-box/platform-client';\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 function MessageItem({ message, userId }: { message: IPost; userId: string }) {\n const isOwnMessage = useMemo(() => message.editedBy?.alias?.includes(userId) || false, [message.author, userId]);\n const author = useMemo(\n () => (message.author ? `${message.author?.givenName} ${message.author?.familyName}` : null),\n [message.author],\n );\n\n return (\n <HStack mb={4} alignItems=\"center\">\n {isOwnMessage ? <Box flexGrow={1} /> : null}\n <Box borderRadius=\"md\" backgroundColor=\"gray.200\" paddingX={3} paddingY=\"1.5\" flexGrow={3}>\n <Box flexDirection=\"row\" alignContent=\"flex-start\" mb={1}>\n <Text flexGrow={1} fontWeight=\"semibold\">\n {author}\n </Text>\n <Text fontSize=\"xs\" color=\"gray.500\">\n {createdAtText(message.createdAt)}\n </Text>\n </Box>\n <Text flexGrow={1}>{message.message}</Text>\n <MessageItem.FilesView files={message.files?.data as IFileInfo[]} />\n </Box>\n {!isOwnMessage ? <Box flexGrow={1} /> : null}\n </HStack>\n );\n}\n\nMessageItem.FilesView = function MessageItemFiles({ files = [] }: { files: IFileInfo[] }) {\n if (!files.length) {\n return null;\n }\n\n return (\n <HStack space={2} mt={2}>\n {files.map((file) => (\n <Image\n alt={'image'}\n mr={2}\n height=\"16\"\n width=\"16\"\n source={{\n uri: 'https://preview.keenthemes.com/metronic-v4/theme/assets/pages/media/profile/profile_user.jpg',\n scale: 0.2,\n }}\n />\n ))}\n </HStack>\n );\n};\n","import {\n IPost,\n useEditMessageMutation,\n useGetMessagesQuery,\n useSendMessagesMutation,\n useUploadFiles,\n onChatMessageAddedDocument,\n} from '@messenger-box/platform-client';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { FlatList } from 'native-base';\nimport { useSelector } from 'react-redux';\nimport { MessageItem } from '../components/MessageItem';\nimport { MessageInput } from '../components/MessageInput';\nimport { IFileInfo } from '@messenger-box/core';\n\nconst MESSAGES_LIMIT = 5;\n\nexport function ConversationView({ channelId }: any) {\n const input$ = useRef<any>();\n const [offset, setOffset] = useState(0);\n const [messages, setMessages] = useState<IPost[]>([]);\n const userId = useSelector((state: any) => state.user.auth0UserId);\n\n const [send, send$] = useSendMessagesMutation({\n context: {},\n });\n\n const [edit, edit$] = useEditMessageMutation({\n context: {},\n });\n\n const { startUpload } = useUploadFiles();\n\n const messages$ = useGetMessagesQuery({\n variables: {\n // skip: count,\n channelId,\n limit: MESSAGES_LIMIT,\n },\n skip: !channelId,\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n messages$.refetch({ skip: offset });\n }, [offset]);\n\n // useEffect(() => {\n // messages$.subscribeToMore({\n // variables: { channelId },\n // document: onChatMessageAddedDocument,\n // updateQuery: (prev, { subscriptionData }) => {\n // const list = (subscriptionData.data.messages.data || []) as IPost[];\n // const added = list.filter((data) => !data.author.alias.includes(userId));\n\n // messages.concat(...added);\n // return prev;\n // },\n // });\n // }, [channelId, userId]);\n\n useEffect(() => {\n if (messages$.data?.messages.data?.length) {\n setMessages((messages) => [...messages, ...(messages$.data?.messages.data || ([] as any))]);\n }\n }, [messages$.data]);\n\n const onLoadMore = () => setOffset(offset + MESSAGES_LIMIT);\n const onSendMessage = async (text: string, files: File[]) => {\n input$.current?.reset();\n const { data } = await send({\n variables: {\n channelId,\n content: text,\n // files: [], // files: uploadedFiles.map(i => i.data.id)\n },\n update: (cache, { data, errors }) => {\n if (!data || errors) {\n return;\n }\n\n if (data.sendMessage) {\n setMessages([data.sendMessage as IPost, ...messages]);\n }\n },\n });\n\n if (files.length) {\n const { data: uploadedFiles } = await startUpload({\n file: files,\n saveUploadedFile: {\n variables: {\n postId: data!.sendMessage!.id,\n },\n },\n createUploadLink: {\n variables: {\n postId: data!.sendMessage!.id,\n },\n },\n });\n\n await edit({\n variables: {\n channelId,\n content: text,\n messageId: data!.sendMessage!.id,\n files: (uploadedFiles as unknown as IFileInfo[]).map((i) => i.id),\n },\n });\n }\n };\n\n return (\n <>\n <FlatList\n inverted\n data={messages}\n onEndReached={onLoadMore}\n flex={1}\n renderItem={({ item }) => <MessageItem userId={userId} message={item} />}\n />\n\n <MessageInput onSend={onSendMessage} ref={input$} />\n </>\n );\n}\n","import { FlatList, ScrollView, Text, Box } from 'native-base';\nimport { IChannel, useGetAllChannelQuery, useGetAllUsersQuery } from '@messenger-box/platform-client';\nimport { useSelector } from 'react-redux';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { keyBy } from 'lodash';\nimport { useNavigation } from '@react-navigation/native';\n\nimport { DialogsListItem } from '../components/DialogsListItem';\n\nexport function Dialogs() {\n const users$ = useGetAllUsersQuery();\n const navigation: any = useNavigation();\n const channels$ = useGetAllChannelQuery();\n const [rk, setRk] = useState(Math.random());\n const userId = useSelector((state: any) => state.user.auth0UserId);\n\n /**\n * TODO: add ability to check channel members\n * HostChannels: channel.members[0].user !== userId\n * GuestChannels: channel.members[0].user == userId\n */\n const filter = useCallback(\n (channel) =>\n channel.type === 'DIRECT' && channel?.displayName !== 'surveybot' && channel?.displayName !== 'admin (you)',\n [userId],\n );\n\n const users = useMemo(() => keyBy(users$.data?.getUsers, 'id'), [users$.data?.getUsers]);\n\n // Filter all channles\n const list = useMemo(() => channels$.data?.channels?.filter(filter) || [], [filter, channels$.data?.channels]);\n\n // Assign users to channel item\n const channels = useMemo(\n () => list.map((channel) => ({ ...channel, users: channel?.members?.map((record) => users[record?.user.id!]) })),\n [list, users$.data?.getUsers, userId],\n );\n\n const onRefresh = async () => {\n await users$.refetch();\n await channels$.refetch();\n return setRk(Math.random());\n };\n\n const isRefreshing = channels$.loading || users$.loading;\n\n const onOpen = (channel: IChannel, options: { title: string }) =>\n navigation.navigate('Inbox.DialogMessages' as any, { ...options, channel, hideTabBar: true });\n\n return (\n <Box p={2}>\n <FlatList\n data={channels}\n onRefresh={onRefresh}\n refreshing={isRefreshing}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <Box height=\"0.5\" backgroundColor=\"gray.200\" />}\n renderItem={({ item: channel }) => (\n <DialogsListItem refreshKey={rk} onOpen={onOpen} currentUserId={userId} channel={channel} />\n )}\n />\n </Box>\n );\n}\n","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/native-stack\");","module.exports = require(\"date-fns\");","module.exports = require(\"expo-image-picker\");","module.exports = require(\"lodash\");","module.exports = require(\"native-base\");","module.exports = require(\"react\");","module.exports = require(\"react-redux\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/index.ts","webpack:///./src/module.ts","webpack:///./src/navigation/InboxNavigation.tsx","webpack:///./src/navigation/index.ts","webpack:///./src/screens/inbox/DialogMessages.tsx","webpack:///./src/screens/inbox/Inbox.tsx","webpack:///./src/screens/inbox/components/CommonMessage.tsx","webpack:///./src/screens/inbox/components/DialogsListItem.tsx","webpack:///./src/screens/inbox/components/FilesList.tsx","webpack:///./src/screens/inbox/components/MessageInput.tsx","webpack:///./src/screens/inbox/components/MessageItem.tsx","webpack:///./src/screens/inbox/components/PlainMessage.tsx","webpack:///./src/screens/inbox/config/config.ts","webpack:///./src/screens/inbox/config/index.ts","webpack:///./src/screens/inbox/containers/ConversationView.tsx","webpack:///./src/screens/inbox/containers/Dialogs.tsx","webpack:///./src/screens/index.ts","webpack:///external \"@admin-layout/client\"","webpack:///external \"@adminide-stack/user-auth0-client\"","webpack:///external \"@common-stack/client-react\"","webpack:///external \"@common-stack/components-pro\"","webpack:///external \"@expo/vector-icons\"","webpack:///external \"@messenger-box/platform-client\"","webpack:///external \"@react-navigation/native\"","webpack:///external \"@react-navigation/stack\"","webpack:///external \"date-fns\"","webpack:///external \"envalid\"","webpack:///external \"expo-image-picker\"","webpack:///external \"lodash\"","webpack:///external \"native-base\"","webpack:///external \"react\"","webpack:///external \"react-redux\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","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} p={6}>\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 } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\n\nimport { IChannel, IUserAccount, useMessagesQuery, useUserAccountQuery } from '@messenger-box/platform-client';\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 shadow={'6'}\n >\n <HStack m={3} space={2}>\n <Image\n alt={'image'}\n width={16}\n borderRadius={10}\n height={16}\n source={{ uri: userQuery?.getUserAccount?.picture || 'https://picsum.photos/220' }}\n />\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, HStack, Box } 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\n return (\n <Box>\n {files.map((file) => {\n const url = useMemo(() => (uploaded ? file.url : URL.createObjectURL(file)), [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 React, { forwardRef, useImperativeHandle, useState, useCallback } from 'react';\nimport { FilesList } from './FilesList';\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\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 // base64: true,\n // aspect: [4, 3],\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n });\n\n if (!result.cancelled) {\n setFiles(files.concat((result as any).uri)); // @igor need ot check this\n }\n };\n\n return (\n <VStack marginTop={3} alignContent=\"center\">\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 );\n});\n","import React from 'react';\nimport { Box } from 'native-base';\nimport { IPost, IPostTypeEnum } from '@messenger-box/platform-client';\nimport { PlainMessage } from './PlainMessage';\nimport { CommonMessage } from './CommonMessage';\nimport { Slot } from '@common-stack/components-pro';\n\nexport function MessageItem({\n message,\n channelId,\n currentUser,\n totalCount,\n}: {\n message: IPost;\n channelId: number;\n currentUser: any;\n totalCount: number;\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 return (\n <Slot\n name={(type as string)?.toLowerCase()}\n fillProps={{\n active: true,\n message,\n currentUser,\n }}\n >\n {(item) => <Box>{item}</Box>}\n </Slot>\n );\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, { useEffect, useRef, useState, useLayoutEffect, useCallback, useMemo } from 'react';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { FlatList } from 'native-base';\nimport { useSelector } from 'react-redux';\nimport { orderBy, uniqBy } from 'lodash';\n\nimport {\n IPost,\n useSendMessagesMutation,\n useUploadFiles,\n useMessagesQuery,\n useCheckForNewMessagesQuery,\n useGetAllUsersQuery,\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 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 debugger;\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 (e) => {\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 <>\n <FlatList\n inverted\n ref={messageListRef}\n data={messageList}\n onEndReached={onMessagesScroll}\n flex={1}\n renderItem={({ item }) => (\n <MessageItem\n channelId={channelId}\n currentUser={currentUser}\n message={item}\n totalCount={totalCount}\n />\n )}\n />\n\n <MessageInput channelId={channelId} handleSend={handleSend} />\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(\"@common-stack/components-pro\");","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(\"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-redux\");"],"sourceRoot":""}
@@ -1,2 +1,4 @@
1
1
  /// <reference types="react" />
2
- export declare function InboxNavigation(): JSX.Element;
2
+ export declare function InboxNavigation({ route }: {
3
+ route: any;
4
+ }): JSX.Element;
@@ -1,2 +1,4 @@
1
1
  /// <reference types="react" />
2
- export declare function DialogMessages(): JSX.Element;
2
+ export declare function DialogMessages({ channelId }: {
3
+ channelId: any;
4
+ }): JSX.Element;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Inbox: (props: any) => JSX.Element;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { IPost } from '@messenger-box/core';
3
+ import { IAuthUser } from '@pubngo-stack/core';
4
+ interface ICommonMessageProps {
5
+ message: IPost;
6
+ currentUser: IAuthUser;
7
+ }
8
+ export declare const CommonMessage: (props: ICommonMessageProps) => JSX.Element;
9
+ export {};
@@ -4,10 +4,11 @@ export interface IDialogListChannel extends IChannel {
4
4
  users: IUserAccount[];
5
5
  }
6
6
  export interface IDialogListItemProps {
7
- refreshKey?: number;
8
- currentUserId: string;
9
- channel: IDialogListChannel;
10
- onOpen: (channel: IChannel, options?: any) => void;
7
+ currentUser?: any;
8
+ users?: any;
9
+ selectedChannelId?: any;
10
+ channel?: any;
11
+ onOpen: (id: any) => void;
11
12
  }
12
13
  /**
13
14
  * TODO:
@@ -0,0 +1,13 @@
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,2 +1,7 @@
1
1
  import React from 'react';
2
- export declare const MessageInput: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<unknown>>;
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,11 +1,8 @@
1
1
  /// <reference types="react" />
2
- import { IFileInfo, IPost } from '@messenger-box/platform-client';
3
- export declare function MessageItem({ message, userId }: {
2
+ import { IPost } from '@messenger-box/platform-client';
3
+ export declare function MessageItem({ message, channelId, currentUser, totalCount, }: {
4
4
  message: IPost;
5
- userId: string;
5
+ channelId: number;
6
+ currentUser: any;
7
+ totalCount: number;
6
8
  }): JSX.Element;
7
- export declare namespace MessageItem {
8
- var FilesView: ({ files }: {
9
- files: IFileInfo[];
10
- }) => JSX.Element;
11
- }
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface IPlainMessageProps {
3
+ message: string;
4
+ }
5
+ export declare const PlainMessage: ({ message }: IPlainMessageProps) => JSX.Element;
6
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const config: Readonly<{
2
+ MESSAGES_PER_PAGE: number;
3
+ FILES_PER_MESSAGE: number;
4
+ } & import("envalid").CleanedEnvAccessors>;
@@ -0,0 +1 @@
1
+ export { config } from './config';
@@ -1,2 +1,6 @@
1
1
  /// <reference types="react" />
2
- export declare function Dialogs(): JSX.Element;
2
+ export interface InboxProps {
3
+ channelFilters?: Record<string, unknown>;
4
+ channelRole?: string;
5
+ }
6
+ export declare function Dialogs(props: InboxProps): JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './inbox/Inbox';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messenger-box/platform-mobile",
3
- "version": "0.0.1-alpha.190",
3
+ "version": "0.0.1-alpha.197",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -19,8 +19,8 @@
19
19
  "watch": "yarn build:lib:watch"
20
20
  },
21
21
  "dependencies": {
22
- "@messenger-box/core": "0.0.1-alpha.190",
23
- "@messenger-box/platform-client": "0.0.1-alpha.190"
22
+ "@messenger-box/core": "0.0.1-alpha.192",
23
+ "@messenger-box/platform-client": "0.0.1-alpha.192"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/bootstrap": "4.5.0",
@@ -38,5 +38,5 @@
38
38
  "typescript": {
39
39
  "definition": "lib/index.d.ts"
40
40
  },
41
- "gitHead": "f25fb61c1f7d29a08355d18ca5c29321d53516c3"
41
+ "gitHead": "dc94d63ff7b887aaa24bb6bc6a2683965d643c4f"
42
42
  }
package/src/index.ts CHANGED
@@ -4,3 +4,4 @@ import { Feature } from '@common-stack/client-react';
4
4
 
5
5
  export default new Feature(PlatformModule);
6
6
  export * from './navigation';
7
+ export * from './screens';
@@ -1,26 +1,15 @@
1
1
  import * as React from 'react';
2
- import { createNativeStackNavigator } from "@react-navigation/native-stack";
3
- import { SafeAreaView } from "react-native-safe-area-context";
4
- import { DialogMessages } from "../screens/inbox/DialogMessages";
5
- import { DialogsList } from "../screens/inbox/DialogsList";
2
+ import { createStackNavigator } from '@react-navigation/stack';
3
+ import { DialogMessages } from '../screens/inbox/DialogMessages';
6
4
 
7
- const InboxStack = createNativeStackNavigator();
5
+ const InboxStack = createStackNavigator();
8
6
 
9
- export function InboxNavigation() {
7
+ export function InboxNavigation({ route }) {
10
8
  return (
11
- <InboxStack.Navigator
12
- initialRouteName="Inbox.DialogsList"
13
- >
14
- <InboxStack.Screen
15
- component={DialogsList}
16
- name="Inbox.DialogsList"
17
- options={{ header: () => null }}
18
- />
19
- <InboxStack.Screen
20
- name="Inbox.DialogMessages"
21
- component={DialogMessages}
22
- options={{ header: () => null }}
23
- />
9
+ <InboxStack.Navigator initialRouteName="DialogMessages">
10
+ <InboxStack.Screen name="DialogMessages" options={{ header: () => null }}>
11
+ {(props) => <DialogMessages channelId={route?.params?.channelId} />}
12
+ </InboxStack.Screen>
24
13
  </InboxStack.Navigator>
25
14
  );
26
- }
15
+ }
@@ -1,16 +1,11 @@
1
1
  import * as React from 'react';
2
- import { useNavigation, useRoute } from '@react-navigation/native';
3
2
  import { Box } from 'native-base';
4
- import { DialogsHeader } from './components/DialogsHeader';
5
3
  import { ConversationView } from './containers/ConversationView';
6
4
 
7
- export function DialogMessages() {
8
- const { params } = useRoute<any>();
9
- const navigation = useNavigation();
10
-
5
+ export function DialogMessages({ channelId }) {
11
6
  return (
12
7
  <Box bg={'white'} flex={1} p={6}>
13
- <ConversationView channelId={params?.channel.id} />
8
+ <ConversationView channelId={channelId} />
14
9
  </Box>
15
10
  );
16
11
  }
@@ -3,11 +3,11 @@ import { Box } from 'native-base';
3
3
 
4
4
  import { Dialogs } from './containers/Dialogs';
5
5
 
6
- export function DialogsList() {
7
-
6
+ export const Inbox = (props) => {
7
+ const { channelFilters, channelRole } = props;
8
8
  return (
9
9
  <Box bg={'white'} flex={1}>
10
- <Dialogs />
10
+ <Dialogs channelFilters={channelFilters} channelRole={channelRole} />
11
11
  </Box>
12
12
  );
13
- }
13
+ };
@@ -0,0 +1,52 @@
1
+ import * as React from 'react';
2
+ import { Avatar, Box, Flex, Icon, Text, HStack } from 'native-base';
3
+ import { Ionicons } from '@expo/vector-icons';
4
+ import { formatDistance } from 'date-fns';
5
+ import { FilesList } from './FilesList';
6
+ import { IPost } from '@messenger-box/core';
7
+ import { IAuthUser } from '@pubngo-stack/core';
8
+ import { startCase } from 'lodash';
9
+
10
+ interface ICommonMessageProps {
11
+ message: IPost;
12
+ currentUser: IAuthUser;
13
+ }
14
+
15
+ export const CommonMessage = (props: ICommonMessageProps) => {
16
+ const { message, currentUser } = props;
17
+ return (
18
+ <Box mb="7">
19
+ <HStack space={2}>
20
+ <Avatar backgroundColor="grey" source={{ uri: message?.author?.picture || undefined }}>
21
+ {startCase(message?.author?.username?.charAt(0))}
22
+ </Avatar>
23
+ <Box>
24
+ <HStack width={'80%'} justifyContent={'space-between'} alignItems={'center'}>
25
+ <HStack space={2}>
26
+ <Text fontSize="14px" color="gray.600" fontWeight={'bold'}>
27
+ {message?.author?.familyName && message?.author?.givenName
28
+ ? message?.author?.givenName + ' ' + message?.author?.familyName
29
+ : message?.author?.username}
30
+ </Text>
31
+ <Text fontSize="14px" color="gray.500" ml="10px">
32
+ {formatDistance(new Date(message?.createdAt), new Date(), {
33
+ includeSeconds: true,
34
+ addSuffix: true,
35
+ })}
36
+ </Text>
37
+ </HStack>
38
+ {currentUser?.id !== message?.author?.id && (
39
+ <Box ml="8px">
40
+ <Icon as={Ionicons} name={'flag'} color="gray.600" size="sm" />
41
+ </Box>
42
+ )}
43
+ </HStack>
44
+ <Text fontSize="14px" mt="5px">
45
+ {message?.message}
46
+ </Text>
47
+ {message.files?.totalCount ? <FilesList uploaded files={message?.files?.data} /> : null}
48
+ </Box>
49
+ </HStack>
50
+ </Box>
51
+ );
52
+ };