@tellescope/chat 0.0.30 → 0.0.34
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/lib/cjs/chat.d.ts +15 -6
- package/lib/cjs/chat.d.ts.map +1 -1
- package/lib/cjs/chat.js +27 -5
- package/lib/cjs/chat.js.map +1 -1
- package/lib/esm/chat.d.ts +15 -6
- package/lib/esm/chat.d.ts.map +1 -1
- package/lib/esm/chat.js +28 -7
- package/lib/esm/chat.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/chat.tsx +72 -19
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tellescope/chat",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/cjs/index.js",
|
|
6
6
|
"module": "./lib/esm/index.js",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
"@fontsource/roboto": "^4.5.1",
|
|
34
34
|
"@mui/icons-material": "^5.0.1",
|
|
35
35
|
"@mui/material": "^5.0.2",
|
|
36
|
-
"@tellescope/constants": "^0.0.
|
|
37
|
-
"@tellescope/react-components": "^0.0.
|
|
38
|
-
"@tellescope/sdk": "^0.0.
|
|
39
|
-
"@tellescope/types-client": "^0.0.
|
|
40
|
-
"@tellescope/types-models": "^0.0.
|
|
41
|
-
"@tellescope/types-utilities": "^0.0.
|
|
42
|
-
"@tellescope/utilities": "^0.0.
|
|
36
|
+
"@tellescope/constants": "^0.0.34",
|
|
37
|
+
"@tellescope/react-components": "^0.0.34",
|
|
38
|
+
"@tellescope/sdk": "^0.0.34",
|
|
39
|
+
"@tellescope/types-client": "^0.0.34",
|
|
40
|
+
"@tellescope/types-models": "^0.0.34",
|
|
41
|
+
"@tellescope/types-utilities": "^0.0.34",
|
|
42
|
+
"@tellescope/utilities": "^0.0.34",
|
|
43
43
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
44
44
|
"@typescript-eslint/parser": "^4.33.0",
|
|
45
45
|
"eslint": "^7.32.0",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"react": "^17.0.2",
|
|
51
51
|
"react-dom": "^17.0.2"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "67704e64744cd701cf02f92b64c6fb9f8d210b2d",
|
|
54
54
|
"publishConfig": {
|
|
55
55
|
"access": "public"
|
|
56
56
|
}
|
package/src/chat.tsx
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React, { useCallback, useState, CSSProperties } from "react"
|
|
2
2
|
|
|
3
|
+
import {
|
|
4
|
+
DisplayPicture,
|
|
5
|
+
} from "@tellescope/react-components"
|
|
3
6
|
import {
|
|
4
7
|
List,
|
|
5
8
|
Flex,
|
|
@@ -17,14 +20,18 @@ import {
|
|
|
17
20
|
import {
|
|
18
21
|
LoadingLinear,
|
|
19
22
|
Resolver,
|
|
23
|
+
value_is_loaded,
|
|
20
24
|
} from "@tellescope/react-components/lib/esm/loading"
|
|
21
25
|
import {
|
|
22
26
|
useSession,
|
|
23
27
|
useEnduserSession,
|
|
28
|
+
useResolvedSession,
|
|
24
29
|
} from "@tellescope/react-components/lib/esm/authentication"
|
|
25
30
|
import {
|
|
26
31
|
useChatRooms,
|
|
27
32
|
useChats,
|
|
33
|
+
useChatRoomDisplayInfo,
|
|
34
|
+
ChatRoomDisplayInfo,
|
|
28
35
|
} from "@tellescope/react-components/lib/esm/state"
|
|
29
36
|
import {
|
|
30
37
|
useEndusers,
|
|
@@ -71,6 +78,18 @@ export {
|
|
|
71
78
|
const defaultMessagesStyle: CSSProperties = {
|
|
72
79
|
borderRadius: 5,
|
|
73
80
|
}
|
|
81
|
+
|
|
82
|
+
const defaultSentContainerStyle: CSSProperties = {
|
|
83
|
+
justifyContent: 'flex-end',
|
|
84
|
+
margin: 5,
|
|
85
|
+
marginLeft: 'auto',
|
|
86
|
+
}
|
|
87
|
+
const defaultReceivedContainerStyle: CSSProperties = {
|
|
88
|
+
justifyContent: 'flex-start',
|
|
89
|
+
margin: 5,
|
|
90
|
+
marginRight: 'auto',
|
|
91
|
+
}
|
|
92
|
+
|
|
74
93
|
const baseMessageStyle = {
|
|
75
94
|
borderRadius: 25,
|
|
76
95
|
paddingRight: 10,
|
|
@@ -80,14 +99,10 @@ const baseMessageStyle = {
|
|
|
80
99
|
}
|
|
81
100
|
const defaultSentStyle: CSSProperties = {
|
|
82
101
|
...baseMessageStyle,
|
|
83
|
-
justifyContent: 'flex-end',
|
|
84
|
-
marginLeft: 'auto',
|
|
85
102
|
backgroundColor: PRIMARY_HEX,
|
|
86
103
|
}
|
|
87
104
|
const defaultReceivedStyle: CSSProperties = {
|
|
88
105
|
...baseMessageStyle,
|
|
89
|
-
justifyContent: 'flex-start',
|
|
90
|
-
marginRight: 'auto',
|
|
91
106
|
backgroundColor: "#444444",
|
|
92
107
|
}
|
|
93
108
|
const baseTextStyle = {
|
|
@@ -117,16 +132,61 @@ const MessagesHeader = ({ room, resolveSenderName, ...p}: MessagesHeaderProps) =
|
|
|
117
132
|
</Flex>
|
|
118
133
|
)
|
|
119
134
|
|
|
120
|
-
interface
|
|
135
|
+
interface MessageStyles {
|
|
136
|
+
receivedMessageContainerStyle?: CSSProperties,
|
|
137
|
+
sentMessageContainerStyle?: CSSProperties,
|
|
138
|
+
receivedMessageStyle?: CSSProperties,
|
|
139
|
+
receivedMessageTextStyle?: CSSProperties,
|
|
140
|
+
sentMessageStyle?: CSSProperties,
|
|
141
|
+
sentMessageTextStyle?: CSSProperties,
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
interface MessageProps extends MessageStyles {
|
|
145
|
+
message: ChatMessage,
|
|
146
|
+
iconSize?: number,
|
|
147
|
+
}
|
|
148
|
+
export const Message = ({
|
|
149
|
+
message,
|
|
150
|
+
iconSize=30,
|
|
151
|
+
sentMessageContainerStyle=defaultSentContainerStyle,
|
|
152
|
+
receivedMessageContainerStyle=defaultReceivedContainerStyle,
|
|
153
|
+
receivedMessageStyle=defaultReceivedStyle,
|
|
154
|
+
receivedMessageTextStyle=defaultTextReceivedStyle,
|
|
155
|
+
sentMessageStyle=defaultSentStyle,
|
|
156
|
+
sentMessageTextStyle=defaultTextSentStyle,
|
|
157
|
+
}: MessageProps) => {
|
|
158
|
+
const session = useResolvedSession()
|
|
159
|
+
const chatUserId = session.userInfo.id
|
|
160
|
+
|
|
161
|
+
const [displayInfo] = useChatRoomDisplayInfo(message.roomId, session.type)
|
|
162
|
+
const displayInfoLookup = value_is_loaded(displayInfo) ? displayInfo.value : {} as ChatRoomDisplayInfo
|
|
163
|
+
|
|
164
|
+
const displayPicture = (
|
|
165
|
+
<DisplayPicture
|
|
166
|
+
user={displayInfoLookup[message.senderId ?? ''] ?? { id: message.senderId, avatar: '' }}
|
|
167
|
+
size={iconSize}
|
|
168
|
+
/>
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
return (
|
|
172
|
+
<Flex alignItems="center" style={message.senderId === chatUserId ? sentMessageContainerStyle : receivedMessageContainerStyle}>
|
|
173
|
+
{message.senderId !== chatUserId && displayPicture}
|
|
174
|
+
<Flex style={message.senderId === chatUserId ? sentMessageStyle : receivedMessageStyle}>
|
|
175
|
+
<Typography style={message.senderId === chatUserId ? sentMessageTextStyle : receivedMessageTextStyle}>
|
|
176
|
+
{message.message}
|
|
177
|
+
</Typography>
|
|
178
|
+
</Flex>
|
|
179
|
+
{message.senderId === chatUserId && displayPicture}
|
|
180
|
+
</Flex>
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
interface Messages_T extends MessageStyles {
|
|
121
185
|
resolveSenderName?: (room: ChatRoom) => React.ReactNode;
|
|
122
186
|
messages: LoadedData<ChatMessage[]>,
|
|
123
187
|
chatUserId: string,
|
|
124
188
|
Header?: React.JSXElementConstructor<MessagesHeaderProps>,
|
|
125
189
|
headerProps?: MessagesHeaderProps,
|
|
126
|
-
receivedMessageStyle?: CSSProperties,
|
|
127
|
-
receivedMessageTextStyle?: CSSProperties,
|
|
128
|
-
sentMessageStyle?: CSSProperties,
|
|
129
|
-
sentMessageTextStyle?: CSSProperties,
|
|
130
190
|
}
|
|
131
191
|
export const Messages = ({
|
|
132
192
|
resolveSenderName,
|
|
@@ -135,20 +195,13 @@ export const Messages = ({
|
|
|
135
195
|
Header=MessagesHeader,
|
|
136
196
|
headerProps,
|
|
137
197
|
style=defaultMessagesStyle,
|
|
138
|
-
|
|
139
|
-
receivedMessageTextStyle=defaultTextReceivedStyle,
|
|
140
|
-
sentMessageStyle=defaultSentStyle,
|
|
141
|
-
sentMessageTextStyle=defaultTextSentStyle,
|
|
198
|
+
...messageStyles
|
|
142
199
|
}: Messages_T & Styled) => (
|
|
143
200
|
<LoadingLinear data={messages} render={messages => (
|
|
144
201
|
<Flex column flex={1}>
|
|
145
202
|
{Header && <Header {...headerProps}/>}
|
|
146
|
-
<List reverse style={style} items={messages} render={
|
|
147
|
-
<
|
|
148
|
-
<Typography style={message.senderId === chatUserId ? sentMessageTextStyle : receivedMessageTextStyle}>
|
|
149
|
-
{message.message}
|
|
150
|
-
</Typography>
|
|
151
|
-
</Flex>
|
|
203
|
+
<List reverse style={style} items={messages} render={message => (
|
|
204
|
+
<Message key={message.id} message={message} {...messageStyles}/>
|
|
152
205
|
)}/>
|
|
153
206
|
</Flex>
|
|
154
207
|
)}/>
|