@messenger-box/platform-mobile 0.0.1-alpha.182 → 0.0.1-alpha.186
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/screens/inbox/containers/Dialogs.tsx +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.0.1-alpha.186](https://github.com/cdmbase/messenger-box/compare/v0.0.1-alpha.185...v0.0.1-alpha.186) (2022-06-24)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @messenger-box/platform-mobile
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [0.0.1-alpha.182](https://github.com/cdmbase/messenger-box/compare/v0.0.1-alpha.181...v0.0.1-alpha.182) (2022-06-14)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @messenger-box/platform-mobile
|
package/lib/index.js
CHANGED
|
@@ -705,7 +705,7 @@ function Dialogs() {
|
|
|
705
705
|
// Filter all channles
|
|
706
706
|
const list = react_1.useMemo(() => { var _a, _b; return ((_b = (_a = channels$.data) === null || _a === void 0 ? void 0 : _a.channels) === null || _b === void 0 ? void 0 : _b.filter(filter)) || []; }, [filter, (_b = channels$.data) === null || _b === void 0 ? void 0 : _b.channels]);
|
|
707
707
|
// Assign users to channel item
|
|
708
|
-
const channels = react_1.useMemo(() => list.map((channel) => { var _a; return (Object.assign(Object.assign({}, channel), { users: (_a = channel === null || channel === void 0 ? void 0 : channel.members) === null || _a === void 0 ? void 0 : _a.map((record) => users[record === null || record === void 0 ? void 0 : record.user]) })); }), [list, (_c = users$.data) === null || _c === void 0 ? void 0 : _c.getUsers, userId]);
|
|
708
|
+
const channels = react_1.useMemo(() => list.map((channel) => { var _a; return (Object.assign(Object.assign({}, channel), { users: (_a = channel === null || channel === void 0 ? void 0 : channel.members) === null || _a === void 0 ? void 0 : _a.map((record) => users[record === null || record === void 0 ? void 0 : record.user.id]) })); }), [list, (_c = users$.data) === null || _c === void 0 ? void 0 : _c.getUsers, userId]);
|
|
709
709
|
const onRefresh = async () => {
|
|
710
710
|
await users$.refetch();
|
|
711
711
|
await channels$.refetch();
|
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!]) })),\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/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":""}
|
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.186",
|
|
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.186",
|
|
23
|
+
"@messenger-box/platform-client": "0.0.1-alpha.186"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/bootstrap": "4.5.0",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"typescript": {
|
|
40
40
|
"definition": "lib/index.d.ts"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "366212fda562b935708f9d4f38614a4848c98160"
|
|
43
43
|
}
|
|
@@ -32,7 +32,7 @@ export function Dialogs() {
|
|
|
32
32
|
|
|
33
33
|
// Assign users to channel item
|
|
34
34
|
const channels = useMemo(
|
|
35
|
-
() => list.map((channel) => ({ ...channel, users: channel?.members?.map((record) => users[record?.user!]) })),
|
|
35
|
+
() => list.map((channel) => ({ ...channel, users: channel?.members?.map((record) => users[record?.user.id!]) })),
|
|
36
36
|
[list, users$.data?.getUsers, userId],
|
|
37
37
|
);
|
|
38
38
|
|