@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.
- package/CHANGELOG.md +24 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +508 -203
- package/lib/index.js.map +1 -1
- package/lib/navigation/InboxNavigation.d.ts +3 -1
- package/lib/screens/inbox/DialogMessages.d.ts +3 -1
- package/lib/screens/inbox/Inbox.d.ts +2 -0
- package/lib/screens/inbox/components/CommonMessage.d.ts +9 -0
- package/lib/screens/inbox/components/DialogsListItem.d.ts +5 -4
- package/lib/screens/inbox/components/FilesList.d.ts +13 -0
- package/lib/screens/inbox/components/MessageInput.d.ts +6 -1
- package/lib/screens/inbox/components/MessageItem.d.ts +5 -8
- package/lib/screens/inbox/components/PlainMessage.d.ts +6 -0
- package/lib/screens/inbox/config/config.d.ts +4 -0
- package/lib/screens/inbox/config/index.d.ts +1 -0
- package/lib/screens/inbox/containers/Dialogs.d.ts +5 -1
- package/lib/screens/index.d.ts +1 -0
- package/package.json +4 -4
- package/src/index.ts +1 -0
- package/src/navigation/InboxNavigation.tsx +9 -20
- package/src/screens/inbox/DialogMessages.tsx +2 -7
- package/src/screens/inbox/{DialogsList.tsx → Inbox.tsx} +4 -4
- package/src/screens/inbox/components/CommonMessage.tsx +52 -0
- package/src/screens/inbox/components/DialogsListItem.tsx +63 -44
- package/src/screens/inbox/components/FilesList.tsx +41 -0
- package/src/screens/inbox/components/MessageInput.tsx +24 -22
- package/src/screens/inbox/components/MessageItem.tsx +34 -55
- package/src/screens/inbox/components/PlainMessage.tsx +16 -0
- package/src/screens/inbox/config/config.ts +6 -0
- package/src/screens/inbox/config/index.ts +1 -0
- package/src/screens/inbox/containers/ConversationView.tsx +158 -83
- package/src/screens/inbox/containers/Dialogs.tsx +93 -48
- package/src/screens/index.ts +1 -0
- package/lib/screens/inbox/DialogsList.d.ts +0 -2
- 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":""}
|
|
@@ -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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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 {
|
|
3
|
-
export declare function MessageItem({ message,
|
|
2
|
+
import { IPost } from '@messenger-box/platform-client';
|
|
3
|
+
export declare function MessageItem({ message, channelId, currentUser, totalCount, }: {
|
|
4
4
|
message: IPost;
|
|
5
|
-
|
|
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 @@
|
|
|
1
|
+
export { config } from './config';
|
|
@@ -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.
|
|
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.
|
|
23
|
-
"@messenger-box/platform-client": "0.0.1-alpha.
|
|
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": "
|
|
41
|
+
"gitHead": "dc94d63ff7b887aaa24bb6bc6a2683965d643c4f"
|
|
42
42
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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 =
|
|
5
|
+
const InboxStack = createStackNavigator();
|
|
8
6
|
|
|
9
|
-
export function InboxNavigation() {
|
|
7
|
+
export function InboxNavigation({ route }) {
|
|
10
8
|
return (
|
|
11
|
-
<InboxStack.Navigator
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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={
|
|
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
|
|
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
|
+
};
|