@messenger-box/platform-mobile 0.0.1-alpha.177 → 0.0.1-alpha.178
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 +14 -6
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/screens/inbox/containers/ConversationView.tsx +18 -9
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.178](https://github.com/cdmbase/messenger-box/compare/v0.0.1-alpha.177...v0.0.1-alpha.178) (2022-06-09)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @messenger-box/platform-mobile
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [0.0.1-alpha.177](https://github.com/cdmbase/messenger-box/compare/v0.0.1-alpha.176...v0.0.1-alpha.177) (2022-06-08)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @messenger-box/platform-mobile
|
package/lib/index.js
CHANGED
|
@@ -621,7 +621,7 @@ function ConversationView({ channelId }) {
|
|
|
621
621
|
const [edit, edit$] = platform_client_1.useEditMessageMutation({
|
|
622
622
|
context: {},
|
|
623
623
|
});
|
|
624
|
-
const {
|
|
624
|
+
const { startUpload } = platform_client_1.useUploadFiles();
|
|
625
625
|
const messages$ = platform_client_1.useGetMessagesQuery({
|
|
626
626
|
variables: {
|
|
627
627
|
// skip: count,
|
|
@@ -672,17 +672,25 @@ function ConversationView({ channelId }) {
|
|
|
672
672
|
},
|
|
673
673
|
});
|
|
674
674
|
if (files.length) {
|
|
675
|
-
const uploadedFiles = await
|
|
676
|
-
files,
|
|
677
|
-
|
|
678
|
-
|
|
675
|
+
const { data: uploadedFiles } = await startUpload({
|
|
676
|
+
file: files,
|
|
677
|
+
saveUploadedFile: {
|
|
678
|
+
variables: {
|
|
679
|
+
postId: data.sendMessage.id
|
|
680
|
+
},
|
|
681
|
+
},
|
|
682
|
+
createUploadLink: {
|
|
683
|
+
variables: {
|
|
684
|
+
postId: data.sendMessage.id
|
|
685
|
+
}
|
|
686
|
+
},
|
|
679
687
|
});
|
|
680
688
|
await edit({
|
|
681
689
|
variables: {
|
|
682
690
|
channelId,
|
|
683
691
|
content: text,
|
|
684
692
|
messageId: data.sendMessage.id,
|
|
685
|
-
files: uploadedFiles.map(i => i.
|
|
693
|
+
files: uploadedFiles.map(i => i.id),
|
|
686
694
|
}
|
|
687
695
|
});
|
|
688
696
|
}
|
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/DialogsHeader.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-native-gesture-handler\"","webpack:///external \"react-native-safe-area-context\"","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 { SafeAreaView } from 'react-native-safe-area-context';\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 <SafeAreaView style={{ flex: 1, flexGrow: 1 }}>\n <DialogsHeader \n title={params.title}\n onBack={navigation.goBack}\n />\n <ConversationView channelId={params?.channel.id} />\n </SafeAreaView>\n );\n}","import * as React from 'react';\nimport { AntDesign } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\nimport { DialogsHeader } from './components/DialogsHeader';\nimport { Dialogs } from './containers/Dialogs';\n\nexport function DialogsList() {\n const { goBack } = useNavigation();\n\n const onShowFilters = () => console.log('Show filters...');\n\n return (\n <SafeAreaView>\n <DialogsHeader \n onBack={goBack}\n title=\"All messages\"\n extra={<AntDesign onPress={onShowFilters} name=\"filter\" size={18} />}\n />\n\n <Dialogs />\n </SafeAreaView>\n );\n}","import * as React from 'react';\nimport { Row, Text, View } from 'native-base';\nimport { AntDesign } from '@expo/vector-icons';\nimport { StyleProp, ViewStyle } from 'react-native';\n\nexport function DialogsHeader({ onBack, extra, style, title }: { onBack?: () => void, extra?: any, style?: StyleProp<ViewStyle>, title: string }) {\n return (\n <Row paddingX={4} paddingY={2} style={style} alignItems=\"center\" justifyContent=\"space-between\">\n <View flex={1}>\n {onBack ? <AntDesign onPress={onBack} name=\"left\" size={18} /> : null}\n </View>\n <View style={{ flexDirection: 'row', flex: 1, flexGrow: 1 }} flex={1}>\n <Text noOfLines={1} flexShrink={1} textAlign=\"center\" flexGrow={1} fontSize={20} fontWeight=\"semibold\">{title || \" \"}</Text>\n </View>\n <View flex={1} alignItems=\"flex-end\" justifyContent=\"center\" textAlign=\"right\">\n {extra}\n </View>\n </Row>\n );\n}\n\n","import { first } from 'lodash';\nimport React, { useEffect, useMemo } from 'react'\nimport { Text, View, Image } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\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({ refreshKey, channel, currentUserId, onOpen }) {\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(() => users.map(({ givenName, familyName }) => `${givenName} ${familyName}`).join(','), [users]);\n \n const text = message?.message;\n const date = createdAtText(message?.createdAt);\n \n const onOpenChannel = () => onOpen(channel, { title, users });\n\n return (\n <TouchableOpacity onPress={onOpenChannel}>\n <View paddingX={5} paddingY={2} flexDirection=\"row\" alignItems=\"center\">\n <View>\n <Image width={16} borderRadius=\"full\" height={16} marginRight={3} source={{ uri: \"https://picsum.photos/220\" }} />\n </View>\n <View flexGrow={1}>\n <View flexDirection=\"row\" alignItems=\"center\" justifyContent=\"space-between\">\n {/* TODO: change to valid status */}\n <Text fontSize=\"xs\" color=\"red.500\">Request withdrawal</Text>\n <Text color=\"gray.500\">{date}</Text>\n </View>\n <Text marginBottom={1} color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">{title}</Text>\n <Text marginBottom={1} color=\"gray.600\">{text}</Text>\n {/* TODO: change to valid reservation date */}\n <Text>Sep 12-16, 2019. Private room fully furnis...</Text>\n </View>\n </View>\n </TouchableOpacity>\n );\n}","import { TextField, View, Image } from 'native-base';\nimport { FontAwesome } from '@expo/vector-icons';\nimport * as ImagePicker from 'expo-image-picker';\nimport React, { forwardRef, useImperativeHandle, useState } from 'react';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\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 <View paddingX={3} marginTop={3} flexDirection=\"column\" alignContent=\"center\">\n <View>\n <TextField placeholder='Message...' borderColor=\"gray.400\" value={text} onChange={(e) => setText(e.nativeEvent.text)} fontSize={14} />\n </View>\n {files.length ? <View mb={4} flexDirection=\"row\">\n {files.map((file, index) => (\n <TouchableOpacity onPress={() => onRemoveImage(file)} key={index}>\n <Image mr={2} height={10} width={10} source={{ uri: file }} />\n </TouchableOpacity>\n ))}\n </View> : null}\n <View flexDirection=\"row\" paddingX=\"3\" 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 </View>\n </View>\n );\n});\n","import React, { useMemo } from 'react';\nimport { Text, View, Image } 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(() => message.author ? `${message.author?.givenName} ${message.author?.familyName}` : null, [message.author]);\n\n return (\n <View mb={4} flexDirection=\"row\" alignItems=\"center\" paddingX={3}>\n {isOwnMessage ? <View flexGrow={1} /> : null}\n <View borderRadius=\"md\" backgroundColor=\"gray.200\" paddingX={3} paddingY=\"1.5\" flexGrow={3}>\n <View flexDirection=\"row\" alignContent=\"flex-start\" mb={1}>\n <Text flexGrow={1} fontWeight=\"semibold\">{author}</Text>\n <Text fontSize=\"xs\" color=\"gray.500\">{createdAtText(message.createdAt)}</Text>\n </View>\n <Text flexGrow={1}>{message.message}</Text>\n <MessageItem.FilesView files={message.files?.data as IFileInfo[]} />\n </View>\n {!isOwnMessage ? <View flexGrow={1} /> : null}\n </View>\n );\n}\n\nMessageItem.FilesView = function MessageItemFiles({ files = [] }: { files: IFileInfo[] }) {\n if(!files.length) {\n return null;\n }\n\n return (\n <View mt={2} flexDirection=\"row\">\n {files.map(file => <Image mr={2} height=\"16\" width=\"16\" source={{ uri: \"https://preview.keenthemes.com/metronic-v4/theme/assets/pages/media/profile/profile_user.jpg\", scale: 0.2 }} />)}\n </View>\n );\n}\n","import { FlatList } from 'react-native-gesture-handler';\n\nimport { IPost, useEditMessageMutation, useGetMessagesQuery, useSendMessagesMutation, useUploadFiles, onChatMessageAddedDocument } from '@messenger-box/platform-client';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { MessageItem } from '../components/MessageItem';\nimport { MessageInput } from '../components/MessageInput';\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 { startUploads } = 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 uploadedFiles = await startUploads({\n files,\n refName: 'postId',\n ref: data!.sendMessage!.id,\n });\n\n await edit({\n variables: {\n channelId,\n content: text,\n messageId: data!.sendMessage!.id,\n files: uploadedFiles.map(i => i!.data!.id),\n }\n })\n }\n };\n\n return (\n <>\n <FlatList\n inverted\n data={messages}\n onEndReached={onLoadMore}\n style={{ flex: 1, flexGrow: 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, View } 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' \n && channel?.displayName !== 'surveybot'\n && 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(() => \n 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 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 <FlatList\n data={channels}\n onRefresh={onRefresh}\n refreshing={isRefreshing}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <View height=\"0.5\" backgroundColor=\"gray.200\" marginY=\"0.5\" />}\n renderItem={({ item: channel }) => <DialogsListItem refreshKey={rk} onOpen={onOpen} currentUserId={userId} channel={channel} />} \n />\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-native-gesture-handler\");","module.exports = require(\"react-native-safe-area-context\");","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/DialogsHeader.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-native-gesture-handler\"","webpack:///external \"react-native-safe-area-context\"","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 { SafeAreaView } from 'react-native-safe-area-context';\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 <SafeAreaView style={{ flex: 1, flexGrow: 1 }}>\n <DialogsHeader \n title={params.title}\n onBack={navigation.goBack}\n />\n <ConversationView channelId={params?.channel.id} />\n </SafeAreaView>\n );\n}","import * as React from 'react';\nimport { AntDesign } from '@expo/vector-icons';\nimport { useNavigation } from '@react-navigation/native';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\nimport { DialogsHeader } from './components/DialogsHeader';\nimport { Dialogs } from './containers/Dialogs';\n\nexport function DialogsList() {\n const { goBack } = useNavigation();\n\n const onShowFilters = () => console.log('Show filters...');\n\n return (\n <SafeAreaView>\n <DialogsHeader \n onBack={goBack}\n title=\"All messages\"\n extra={<AntDesign onPress={onShowFilters} name=\"filter\" size={18} />}\n />\n\n <Dialogs />\n </SafeAreaView>\n );\n}","import * as React from 'react';\nimport { Row, Text, View } from 'native-base';\nimport { AntDesign } from '@expo/vector-icons';\nimport { StyleProp, ViewStyle } from 'react-native';\n\nexport function DialogsHeader({ onBack, extra, style, title }: { onBack?: () => void, extra?: any, style?: StyleProp<ViewStyle>, title: string }) {\n return (\n <Row paddingX={4} paddingY={2} style={style} alignItems=\"center\" justifyContent=\"space-between\">\n <View flex={1}>\n {onBack ? <AntDesign onPress={onBack} name=\"left\" size={18} /> : null}\n </View>\n <View style={{ flexDirection: 'row', flex: 1, flexGrow: 1 }} flex={1}>\n <Text noOfLines={1} flexShrink={1} textAlign=\"center\" flexGrow={1} fontSize={20} fontWeight=\"semibold\">{title || \" \"}</Text>\n </View>\n <View flex={1} alignItems=\"flex-end\" justifyContent=\"center\" textAlign=\"right\">\n {extra}\n </View>\n </Row>\n );\n}\n\n","import { first } from 'lodash';\nimport React, { useEffect, useMemo } from 'react'\nimport { Text, View, Image } from 'native-base';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\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({ refreshKey, channel, currentUserId, onOpen }) {\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(() => users.map(({ givenName, familyName }) => `${givenName} ${familyName}`).join(','), [users]);\n \n const text = message?.message;\n const date = createdAtText(message?.createdAt);\n \n const onOpenChannel = () => onOpen(channel, { title, users });\n\n return (\n <TouchableOpacity onPress={onOpenChannel}>\n <View paddingX={5} paddingY={2} flexDirection=\"row\" alignItems=\"center\">\n <View>\n <Image width={16} borderRadius=\"full\" height={16} marginRight={3} source={{ uri: \"https://picsum.photos/220\" }} />\n </View>\n <View flexGrow={1}>\n <View flexDirection=\"row\" alignItems=\"center\" justifyContent=\"space-between\">\n {/* TODO: change to valid status */}\n <Text fontSize=\"xs\" color=\"red.500\">Request withdrawal</Text>\n <Text color=\"gray.500\">{date}</Text>\n </View>\n <Text marginBottom={1} color=\"gray.600\" fontSize=\"lg\" fontWeight=\"semibold\">{title}</Text>\n <Text marginBottom={1} color=\"gray.600\">{text}</Text>\n {/* TODO: change to valid reservation date */}\n <Text>Sep 12-16, 2019. Private room fully furnis...</Text>\n </View>\n </View>\n </TouchableOpacity>\n );\n}","import { TextField, View, Image } from 'native-base';\nimport { FontAwesome } from '@expo/vector-icons';\nimport * as ImagePicker from 'expo-image-picker';\nimport React, { forwardRef, useImperativeHandle, useState } from 'react';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\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 <View paddingX={3} marginTop={3} flexDirection=\"column\" alignContent=\"center\">\n <View>\n <TextField placeholder='Message...' borderColor=\"gray.400\" value={text} onChange={(e) => setText(e.nativeEvent.text)} fontSize={14} />\n </View>\n {files.length ? <View mb={4} flexDirection=\"row\">\n {files.map((file, index) => (\n <TouchableOpacity onPress={() => onRemoveImage(file)} key={index}>\n <Image mr={2} height={10} width={10} source={{ uri: file }} />\n </TouchableOpacity>\n ))}\n </View> : null}\n <View flexDirection=\"row\" paddingX=\"3\" 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 </View>\n </View>\n );\n});\n","import React, { useMemo } from 'react';\nimport { Text, View, Image } 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(() => message.author ? `${message.author?.givenName} ${message.author?.familyName}` : null, [message.author]);\n\n return (\n <View mb={4} flexDirection=\"row\" alignItems=\"center\" paddingX={3}>\n {isOwnMessage ? <View flexGrow={1} /> : null}\n <View borderRadius=\"md\" backgroundColor=\"gray.200\" paddingX={3} paddingY=\"1.5\" flexGrow={3}>\n <View flexDirection=\"row\" alignContent=\"flex-start\" mb={1}>\n <Text flexGrow={1} fontWeight=\"semibold\">{author}</Text>\n <Text fontSize=\"xs\" color=\"gray.500\">{createdAtText(message.createdAt)}</Text>\n </View>\n <Text flexGrow={1}>{message.message}</Text>\n <MessageItem.FilesView files={message.files?.data as IFileInfo[]} />\n </View>\n {!isOwnMessage ? <View flexGrow={1} /> : null}\n </View>\n );\n}\n\nMessageItem.FilesView = function MessageItemFiles({ files = [] }: { files: IFileInfo[] }) {\n if(!files.length) {\n return null;\n }\n\n return (\n <View mt={2} flexDirection=\"row\">\n {files.map(file => <Image mr={2} height=\"16\" width=\"16\" source={{ uri: \"https://preview.keenthemes.com/metronic-v4/theme/assets/pages/media/profile/profile_user.jpg\", scale: 0.2 }} />)}\n </View>\n );\n}\n","import { FlatList } from 'react-native-gesture-handler';\n\nimport { IPost, useEditMessageMutation, useGetMessagesQuery, useSendMessagesMutation, useUploadFiles, onChatMessageAddedDocument } from '@messenger-box/platform-client';\nimport React, { useEffect, useRef, useState } from 'react';\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 style={{ flex: 1, flexGrow: 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, View } 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' \n && channel?.displayName !== 'surveybot'\n && 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(() => \n 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 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 <FlatList\n data={channels}\n onRefresh={onRefresh}\n refreshing={isRefreshing}\n contentContainerStyle={{ minHeight: '100%' }}\n ItemSeparatorComponent={() => <View height=\"0.5\" backgroundColor=\"gray.200\" marginY=\"0.5\" />}\n renderItem={({ item: channel }) => <DialogsListItem refreshKey={rk} onOpen={onOpen} currentUserId={userId} channel={channel} />} \n />\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-native-gesture-handler\");","module.exports = require(\"react-native-safe-area-context\");","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.178",
|
|
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.178",
|
|
23
|
+
"@messenger-box/platform-client": "0.0.1-alpha.178"
|
|
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": "5f2bbd9c3a88ddbb9969b0c69b4e9dc31c128f36"
|
|
43
43
|
}
|
|
@@ -5,6 +5,7 @@ import React, { useEffect, useRef, useState } from 'react';
|
|
|
5
5
|
import { useSelector } from 'react-redux';
|
|
6
6
|
import { MessageItem } from '../components/MessageItem';
|
|
7
7
|
import { MessageInput } from '../components/MessageInput';
|
|
8
|
+
import { IFileInfo } from '@messenger-box/core';
|
|
8
9
|
|
|
9
10
|
const MESSAGES_LIMIT = 5;
|
|
10
11
|
|
|
@@ -17,12 +18,12 @@ export function ConversationView({ channelId }: any) {
|
|
|
17
18
|
const [send, send$] = useSendMessagesMutation({
|
|
18
19
|
context: {},
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
+
|
|
21
22
|
const [edit, edit$] = useEditMessageMutation({
|
|
22
23
|
context: {},
|
|
23
24
|
});
|
|
24
25
|
|
|
25
|
-
const {
|
|
26
|
+
const { startUpload } = useUploadFiles();
|
|
26
27
|
|
|
27
28
|
const messages$ = useGetMessagesQuery({
|
|
28
29
|
variables: {
|
|
@@ -39,7 +40,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
39
40
|
}, [offset]);
|
|
40
41
|
|
|
41
42
|
useEffect(() => {
|
|
42
|
-
messages$.subscribeToMore({
|
|
43
|
+
messages$.subscribeToMore({
|
|
43
44
|
variables: { channelId },
|
|
44
45
|
document: onChatMessageAddedDocument,
|
|
45
46
|
updateQuery: (prev, { subscriptionData }) => {
|
|
@@ -57,7 +58,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
57
58
|
setMessages(messages => [...messages, ...(messages$.data?.messages.data || [] as any)]);
|
|
58
59
|
}
|
|
59
60
|
}, [messages$.data]);
|
|
60
|
-
|
|
61
|
+
|
|
61
62
|
const onLoadMore = () => setOffset(offset + MESSAGES_LIMIT);
|
|
62
63
|
const onSendMessage = async (text: string, files: File[]) => {
|
|
63
64
|
input$.current?.reset();
|
|
@@ -79,10 +80,18 @@ export function ConversationView({ channelId }: any) {
|
|
|
79
80
|
});
|
|
80
81
|
|
|
81
82
|
if(files.length) {
|
|
82
|
-
const uploadedFiles = await
|
|
83
|
-
files,
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
const {data: uploadedFiles} = await startUpload({
|
|
84
|
+
file:files,
|
|
85
|
+
saveUploadedFile:{
|
|
86
|
+
variables:{
|
|
87
|
+
postId:data!.sendMessage!.id
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
createUploadLink:{
|
|
91
|
+
variables:{
|
|
92
|
+
postId:data!.sendMessage!.id
|
|
93
|
+
}
|
|
94
|
+
},
|
|
86
95
|
});
|
|
87
96
|
|
|
88
97
|
await edit({
|
|
@@ -90,7 +99,7 @@ export function ConversationView({ channelId }: any) {
|
|
|
90
99
|
channelId,
|
|
91
100
|
content: text,
|
|
92
101
|
messageId: data!.sendMessage!.id,
|
|
93
|
-
files: uploadedFiles.map(i => i
|
|
102
|
+
files: (uploadedFiles as unknown as IFileInfo[]).map(i => i.id),
|
|
94
103
|
}
|
|
95
104
|
})
|
|
96
105
|
}
|