@viewberapp/chat 0.0.86 → 0.0.88
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/dist/CachedChat.d.ts +2 -0
- package/dist/CachedChat.js +27 -6
- package/dist/CachedChat.js.map +1 -1
- package/dist/ChatSubscription.d.ts +2 -0
- package/dist/ChatSubscription.js +3 -0
- package/dist/ChatSubscription.js.map +1 -1
- package/dist/PendingMessage.d.ts +5 -2
- package/dist/PendingMessage.js +2 -1
- package/dist/PendingMessage.js.map +1 -1
- package/dist/react/components/Message.d.ts +17 -2
- package/dist/react/components/Message.js +40 -3
- package/dist/react/components/Message.js.map +1 -1
- package/dist/react/components/MessageList.d.ts +10 -1
- package/dist/react/components/MessageList.js +6 -2
- package/dist/react/components/MessageList.js.map +1 -1
- package/dist/react/useChat.d.ts +2 -0
- package/dist/react/useChat.js +1 -0
- package/dist/react/useChat.js.map +1 -1
- package/package.json +2 -2
package/dist/CachedChat.d.ts
CHANGED
|
@@ -33,12 +33,14 @@ export default class CachedChat {
|
|
|
33
33
|
private logger;
|
|
34
34
|
constructor({ id, api, channel, connectionStatus, logger }: CachedChatParams);
|
|
35
35
|
sendMessage(message: string, options?: SendMessageOptions): Promise<void>;
|
|
36
|
+
sendPendingMessage(pendingMessage: PendingMessage): Promise<void>;
|
|
36
37
|
getLatestMessages(): void;
|
|
37
38
|
markMessagesReadUpTo(message: Message): Promise<{
|
|
38
39
|
error: ChatError | undefined;
|
|
39
40
|
}>;
|
|
40
41
|
addMessage(message: Message | PendingMessage): void;
|
|
41
42
|
private replacePendingMessage;
|
|
43
|
+
private updatePendingMessageStatus;
|
|
42
44
|
addSubscription(subscription: ChatSubscription): void;
|
|
43
45
|
getConnectionStatus(): ConnectionStatus;
|
|
44
46
|
setConnectionStatus(status: ConnectionStatus): void;
|
package/dist/CachedChat.js
CHANGED
|
@@ -22,12 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
26
|
const uuid_1 = require("uuid");
|
|
30
|
-
const PendingMessage_1 =
|
|
27
|
+
const PendingMessage_1 = __importStar(require("./PendingMessage"));
|
|
31
28
|
const Message_1 = __importStar(require("./Message"));
|
|
32
29
|
class CachedChat {
|
|
33
30
|
constructor({ id, api, channel, connectionStatus, logger }) {
|
|
@@ -63,19 +60,35 @@ class CachedChat {
|
|
|
63
60
|
id: (0, uuid_1.v4)(),
|
|
64
61
|
message,
|
|
65
62
|
status: 'pending',
|
|
63
|
+
options,
|
|
66
64
|
createdAt: new Date
|
|
67
65
|
});
|
|
68
66
|
this.addMessage(pendingMessage);
|
|
69
67
|
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
70
|
-
this.
|
|
68
|
+
this.sendPendingMessage(pendingMessage)
|
|
69
|
+
.then(() => resolve())
|
|
70
|
+
.catch(err => reject(err));
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
sendPendingMessage(pendingMessage) {
|
|
74
|
+
return new Promise((resolve, reject) => {
|
|
75
|
+
if (!(0, PendingMessage_1.isPendingMessage)(pendingMessage) || pendingMessage.status === 'pending') {
|
|
76
|
+
return resolve();
|
|
77
|
+
}
|
|
78
|
+
this.updatePendingMessageStatus(pendingMessage, 'pending');
|
|
79
|
+
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
80
|
+
this.api.storeMessage(this.id, pendingMessage.message, pendingMessage.options).then(({ message, error }) => {
|
|
71
81
|
if (error) {
|
|
82
|
+
this.updatePendingMessageStatus(pendingMessage, 'failed');
|
|
83
|
+
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
72
84
|
return;
|
|
73
85
|
}
|
|
74
86
|
this.replacePendingMessage(pendingMessage, message);
|
|
75
87
|
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
76
88
|
resolve();
|
|
77
89
|
}).catch(err => {
|
|
78
|
-
this.
|
|
90
|
+
this.updatePendingMessageStatus(pendingMessage, 'failed');
|
|
91
|
+
this.fireMessagesEventOnEachNonCancelledSubscription();
|
|
79
92
|
reject(err);
|
|
80
93
|
});
|
|
81
94
|
});
|
|
@@ -126,6 +139,14 @@ class CachedChat {
|
|
|
126
139
|
});
|
|
127
140
|
this.addMessage(message);
|
|
128
141
|
}
|
|
142
|
+
updatePendingMessageStatus(pendingMessage, status) {
|
|
143
|
+
this.messages = this.messages.map((m) => {
|
|
144
|
+
if (m === pendingMessage) {
|
|
145
|
+
m.status = status;
|
|
146
|
+
}
|
|
147
|
+
return m;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
129
150
|
addSubscription(subscription) {
|
|
130
151
|
this.subscriptions.push(subscription);
|
|
131
152
|
}
|
package/dist/CachedChat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import ChatError from "./ChatError";
|
|
|
3
3
|
import OnlineUser from "./OnlineUser";
|
|
4
4
|
import { ConnectionStatus } from "./Chat";
|
|
5
5
|
import CachedChat, { ChannelStatus, GetLatestMessagesStatus, Messages, SendMessageOptions } from "./CachedChat";
|
|
6
|
+
import PendingMessage from "./PendingMessage";
|
|
6
7
|
export declare type ChatSubscriptionStatus = 'active' | 'cancelled';
|
|
7
8
|
export interface ChatSubscriptionOptions {
|
|
8
9
|
status: ChatSubscriptionStatus;
|
|
@@ -63,6 +64,7 @@ export default class ChatSubscription {
|
|
|
63
64
|
getGetLatestMessagesStatus(): GetLatestMessagesStatus;
|
|
64
65
|
setGetLatestMessagesStatus(status: GetLatestMessagesStatus): void;
|
|
65
66
|
sendMessage(message: string, options?: SendMessageOptions): Promise<any>;
|
|
67
|
+
sendPendingMessage(pendingMessage: PendingMessage): Promise<any>;
|
|
66
68
|
getLatestMessages(): void;
|
|
67
69
|
markMessagesReadUpTo(message: Message): Promise<{
|
|
68
70
|
error?: ChatError | undefined;
|
package/dist/ChatSubscription.js
CHANGED
|
@@ -54,6 +54,9 @@ class ChatSubscription {
|
|
|
54
54
|
sendMessage(message, options) {
|
|
55
55
|
return this.chat.sendMessage(message, options);
|
|
56
56
|
}
|
|
57
|
+
sendPendingMessage(pendingMessage) {
|
|
58
|
+
return this.chat.sendPendingMessage(pendingMessage);
|
|
59
|
+
}
|
|
57
60
|
getLatestMessages() {
|
|
58
61
|
return this.chat.getLatestMessages();
|
|
59
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":";;AAIA,iCAAiD;
|
|
1
|
+
{"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":"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"}
|
package/dist/PendingMessage.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import { SendMessageOptions } from "./CachedChat";
|
|
1
2
|
import Message from "./Message";
|
|
2
3
|
export declare type PendingMessageStatus = 'pending' | 'failed';
|
|
3
4
|
export default class PendingMessage {
|
|
4
5
|
readonly id: string;
|
|
5
6
|
readonly message: string;
|
|
6
|
-
status:
|
|
7
|
+
status: PendingMessageStatus;
|
|
8
|
+
readonly options: SendMessageOptions | undefined;
|
|
7
9
|
readonly createdAt: Date;
|
|
8
|
-
constructor({ id, message, status, createdAt }: {
|
|
10
|
+
constructor({ id, message, status, options, createdAt }: {
|
|
9
11
|
id: string;
|
|
10
12
|
message: string;
|
|
11
13
|
status: PendingMessageStatus;
|
|
14
|
+
options?: SendMessageOptions;
|
|
12
15
|
createdAt: Date;
|
|
13
16
|
});
|
|
14
17
|
get isPendingMessage(): boolean;
|
package/dist/PendingMessage.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isPendingMessage = void 0;
|
|
4
4
|
class PendingMessage {
|
|
5
|
-
constructor({ id, message, status, createdAt }) {
|
|
5
|
+
constructor({ id, message, status, options, createdAt }) {
|
|
6
6
|
this.id = id;
|
|
7
7
|
this.message = message;
|
|
8
8
|
this.status = status;
|
|
9
|
+
this.options = options;
|
|
9
10
|
this.createdAt = createdAt;
|
|
10
11
|
}
|
|
11
12
|
get isPendingMessage() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingMessage.js","sourceRoot":"","sources":["../src/PendingMessage.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"PendingMessage.js","sourceRoot":"","sources":["../src/PendingMessage.ts"],"names":[],"mappings":";;;AAUA,MAAqB,cAAc;IAO/B,YAAY,EACR,EAAE,EACF,OAAO,EACP,MAAM,EACN,OAAO,EACP,SAAS,EAOZ;QACG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA9BD,iCA8BC;AAEM,MAAM,gBAAgB,GAAG,CAAC,OAA+B,EAA6B,EAAE;IAC3F,OAAO,OAAO,CAAC,gBAAgB,CAAC;AACpC,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
|
|
@@ -1,8 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
2
3
|
import MessageModel from "../../Message";
|
|
3
4
|
import PendingMessage from '../../PendingMessage';
|
|
4
5
|
export interface MessageProps {
|
|
5
6
|
message: MessageModel | PendingMessage;
|
|
6
7
|
isCurrentUser: boolean;
|
|
8
|
+
failedPendingMessageIconClassName?: string;
|
|
9
|
+
failedPendingMessageDescriptionStyles?: React.CSSProperties;
|
|
10
|
+
failedPendingMessageDescriptionClassName?: string;
|
|
11
|
+
onFailedPendingMessageClick?: (pendingMessage: PendingMessage) => void;
|
|
7
12
|
}
|
|
8
|
-
export declare const Message:
|
|
13
|
+
export declare const Message: {
|
|
14
|
+
({ message, isCurrentUser, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick }: MessageProps): JSX.Element;
|
|
15
|
+
propTypes: {
|
|
16
|
+
message: PropTypes.Requireable<object>;
|
|
17
|
+
isCurrentUser: PropTypes.Requireable<boolean>;
|
|
18
|
+
failedPendingMessageIconClassName: PropTypes.Requireable<string>;
|
|
19
|
+
failedPendingMessageDescriptionStyles: PropTypes.Requireable<object>;
|
|
20
|
+
failedPendingMessageDescriptionClassName: PropTypes.Requireable<string>;
|
|
21
|
+
onFailedPendingMessageClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -22,18 +22,36 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.Message = void 0;
|
|
27
30
|
const React = __importStar(require("react"));
|
|
31
|
+
const prop_types_1 = __importDefault(require("prop-types"));
|
|
32
|
+
const PendingMessage_1 = require("../../PendingMessage");
|
|
28
33
|
const MessageDateTime_1 = require("./MessageDateTime");
|
|
29
|
-
const
|
|
34
|
+
const util_1 = require("../../util");
|
|
35
|
+
const Message = ({ message, isCurrentUser, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick }) => {
|
|
30
36
|
const [dateTimeIsShowing, setDateTimeIsShowing] = React.useState(false);
|
|
37
|
+
const isFailedPendingMessage = ((0, PendingMessage_1.isPendingMessage)(message)
|
|
38
|
+
&& message.status === 'failed');
|
|
39
|
+
const handleMessageClick = () => {
|
|
40
|
+
if (!isFailedPendingMessage) {
|
|
41
|
+
setDateTimeIsShowing(!dateTimeIsShowing);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (onFailedPendingMessageClick) {
|
|
45
|
+
onFailedPendingMessageClick(message);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
31
48
|
const containerStyles = {
|
|
32
49
|
display: 'inline-block',
|
|
33
50
|
maxWidth: '80%',
|
|
34
51
|
margin: '0.125rem 0.5rem'
|
|
35
52
|
};
|
|
36
53
|
const messageStyles = {
|
|
54
|
+
display: 'inline-block',
|
|
37
55
|
borderRadius: '0.675rem',
|
|
38
56
|
backgroundColor: isCurrentUser
|
|
39
57
|
? '#218aff'
|
|
@@ -44,8 +62,27 @@ const Message = ({ message, isCurrentUser }) => {
|
|
|
44
62
|
padding: '0.25rem 1rem',
|
|
45
63
|
};
|
|
46
64
|
return (React.createElement("div", { style: containerStyles },
|
|
47
|
-
React.createElement("div",
|
|
48
|
-
|
|
65
|
+
React.createElement("div", null,
|
|
66
|
+
React.createElement("div", { style: messageStyles, onClick: handleMessageClick },
|
|
67
|
+
React.createElement("span", null, message.message)),
|
|
68
|
+
isFailedPendingMessage && !(0, util_1.isNil)(failedPendingMessageIconClassName) &&
|
|
69
|
+
React.createElement("div", { style: { display: 'inline-block' } },
|
|
70
|
+
React.createElement("i", { className: failedPendingMessageIconClassName })),
|
|
71
|
+
isFailedPendingMessage &&
|
|
72
|
+
React.createElement("div", { className: failedPendingMessageDescriptionClassName, style: failedPendingMessageDescriptionStyles }, (0, util_1.isNil)(onFailedPendingMessageClick)
|
|
73
|
+
? 'This message failed to send'
|
|
74
|
+
: 'This message failed to send. Click to retry'),
|
|
75
|
+
dateTimeIsShowing &&
|
|
76
|
+
React.createElement("div", null,
|
|
77
|
+
React.createElement(MessageDateTime_1.MessageDateTime, { date: message.createdAt, style: { display: 'block' } })))));
|
|
49
78
|
};
|
|
50
79
|
exports.Message = Message;
|
|
80
|
+
exports.Message.propTypes = {
|
|
81
|
+
message: prop_types_1.default.object,
|
|
82
|
+
isCurrentUser: prop_types_1.default.bool,
|
|
83
|
+
failedPendingMessageIconClassName: prop_types_1.default.string,
|
|
84
|
+
failedPendingMessageDescriptionStyles: prop_types_1.default.object,
|
|
85
|
+
failedPendingMessageDescriptionClassName: prop_types_1.default.string,
|
|
86
|
+
onFailedPendingMessageClick: prop_types_1.default.func
|
|
87
|
+
};
|
|
51
88
|
//# sourceMappingURL=Message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/react/components/Message.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/react/components/Message.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,4DAAmC;AAEnC,yDAAwE;AACxE,uDAAoD;AACpD,qCAAmC;AAW5B,MAAM,OAAO,GAAG,CAAC,EACpB,OAAO,EACP,aAAa,EACb,iCAAiC,EACjC,qCAAqC,EACrC,wCAAwC,EACxC,2BAA2B,EAChB,EAAE,EAAE;IACf,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAEjF,MAAM,sBAAsB,GAAG,CAC3B,IAAA,iCAAgB,EAAC,OAAO,CAAC;WACtB,OAAO,CAAC,MAAM,KAAK,QAAQ,CACjC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,IAAI,CAAC,sBAAsB,EAAE;YACzB,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACzC,OAAO;SACV;QACD,IAAI,2BAA2B,EAAE;YAC7B,2BAA2B,CAAC,OAAO,CAAC,CAAC;SACxC;IACL,CAAC,CAAA;IAED,MAAM,eAAe,GAAwB;QACzC,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,iBAAiB;KAC5B,CAAA;IAED,MAAM,aAAa,GAAwB;QACvC,OAAO,EAAE,cAAc;QACvB,YAAY,EAAE,UAAU;QACxB,eAAe,EAAE,aAAa;YAC1B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS;QACf,KAAK,EAAE,aAAa;YAChB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS;QACf,OAAO,EAAE,cAAc;KAC1B,CAAC;IAEF,OAAO,CACH,6BAAK,KAAK,EAAE,eAAe;QACvB;YACI,6BAAK,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB;gBAClD,kCAAO,OAAO,CAAC,OAAO,CAAQ,CAC5B;YACL,sBAAsB,IAAI,CAAC,IAAA,YAAK,EAAC,iCAAiC,CAAC;gBAChE,6BAAK,KAAK,EAAE,EAAC,OAAO,EAAE,cAAc,EAAC;oBACjC,2BAAG,SAAS,EAAE,iCAAiC,GAAI,CACjD;YAET,sBAAsB;gBACnB,6BAAK,SAAS,EAAE,wCAAwC,EAAE,KAAK,EAAE,qCAAqC,IAE9F,IAAA,YAAK,EAAC,2BAA2B,CAAC;oBAC9B,CAAC,CAAC,6BAA6B;oBAC/B,CAAC,CAAC,6CAA6C,CAErD;YAET,iBAAiB;gBACd;oBACI,oBAAC,iCAAe,IAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,GAAI,CACrE,CAER,CACJ,CACT,CAAA;AACL,CAAC,CAAA;AAvEY,QAAA,OAAO,WAuEnB;AAED,eAAO,CAAC,SAAS,GAAG;IAChB,OAAO,EAAE,oBAAS,CAAC,MAAM;IACzB,aAAa,EAAE,oBAAS,CAAC,IAAI;IAC7B,iCAAiC,EAAE,oBAAS,CAAC,MAAM;IACnD,qCAAqC,EAAE,oBAAS,CAAC,MAAM;IACvD,wCAAwC,EAAE,oBAAS,CAAC,MAAM;IAC1D,2BAA2B,EAAE,oBAAS,CAAC,IAAI;CAC9C,CAAA"}
|
|
@@ -3,11 +3,16 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import ChatError from '../../ChatError';
|
|
4
4
|
import MessageModel from '../../Message';
|
|
5
5
|
import { GetLatestMessagesStatus, Messages } from '../../CachedChat';
|
|
6
|
+
import PendingMessage from '../../PendingMessage';
|
|
6
7
|
export interface MessageListProps {
|
|
7
8
|
messages: Messages;
|
|
8
9
|
currentUserId: number;
|
|
9
10
|
messagesScrollContainerId: string;
|
|
10
11
|
messagesContainerClassName?: string;
|
|
12
|
+
failedPendingMessageIconClassName?: string;
|
|
13
|
+
failedPendingMessageDescriptionStyles?: React.CSSProperties;
|
|
14
|
+
failedPendingMessageDescriptionClassName?: string;
|
|
15
|
+
onFailedPendingMessageClick?: (pendingMessage: PendingMessage) => void;
|
|
11
16
|
getLatestMessagesStatus: GetLatestMessagesStatus;
|
|
12
17
|
markMessagesReadUpTo(message: MessageModel): Promise<{
|
|
13
18
|
error: ChatError | undefined;
|
|
@@ -20,12 +25,16 @@ export interface MessageListProps {
|
|
|
20
25
|
onRequestScrollToBottomOfMessagesScrollContainer: () => void;
|
|
21
26
|
}
|
|
22
27
|
export declare const MessageList: {
|
|
23
|
-
({ messages, currentUserId, messagesScrollContainerId, messagesContainerClassName, getLatestMessagesStatus, markMessagesReadUpTo, shouldMarkMessagesAsRead, loadingContent, retryContent, noMessagesContent, onMessagesMarkedAsRead, onRequestScrollToBottomOfMessagesScrollContainer }: MessageListProps): React.ReactNode;
|
|
28
|
+
({ messages, currentUserId, messagesScrollContainerId, messagesContainerClassName, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick, getLatestMessagesStatus, markMessagesReadUpTo, shouldMarkMessagesAsRead, loadingContent, retryContent, noMessagesContent, onMessagesMarkedAsRead, onRequestScrollToBottomOfMessagesScrollContainer }: MessageListProps): React.ReactNode;
|
|
24
29
|
propTypes: {
|
|
25
30
|
messages: PropTypes.Validator<(object | null | undefined)[]>;
|
|
26
31
|
currentUserId: PropTypes.Validator<number>;
|
|
27
32
|
messagesScrollContainerId: PropTypes.Validator<string>;
|
|
28
33
|
messagesContainerClassName: PropTypes.Requireable<string>;
|
|
34
|
+
failedPendingMessageIconClassName: PropTypes.Requireable<string>;
|
|
35
|
+
failedPendingMessageDescriptionStyles: PropTypes.Requireable<object>;
|
|
36
|
+
failedPendingMessageDescriptionClassName: PropTypes.Requireable<string>;
|
|
37
|
+
onFailedPendingMessageClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
29
38
|
getLatestMessagesStatus: PropTypes.Requireable<string>;
|
|
30
39
|
markMessagesReadUpTo: PropTypes.Validator<(...args: any[]) => any>;
|
|
31
40
|
shouldMarkMessagesAsRead: PropTypes.Validator<boolean>;
|
|
@@ -34,7 +34,7 @@ const AdminMessage_1 = require("./AdminMessage");
|
|
|
34
34
|
const Message_1 = require("./Message");
|
|
35
35
|
const PendingMessage_1 = require("../../PendingMessage");
|
|
36
36
|
const util_1 = require("../../util");
|
|
37
|
-
const MessageList = ({ messages, currentUserId, messagesScrollContainerId, messagesContainerClassName, getLatestMessagesStatus, markMessagesReadUpTo, shouldMarkMessagesAsRead, loadingContent, retryContent, noMessagesContent, onMessagesMarkedAsRead, onRequestScrollToBottomOfMessagesScrollContainer }) => {
|
|
37
|
+
const MessageList = ({ messages, currentUserId, messagesScrollContainerId, messagesContainerClassName, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick, getLatestMessagesStatus, markMessagesReadUpTo, shouldMarkMessagesAsRead, loadingContent, retryContent, noMessagesContent, onMessagesMarkedAsRead, onRequestScrollToBottomOfMessagesScrollContainer }) => {
|
|
38
38
|
const [lastMessageMarkedAsReadUpTo, setLastMessageMarkedAsReadUpTo] = React.useState();
|
|
39
39
|
React.useEffect(() => {
|
|
40
40
|
if (getLatestMessagesStatus === 'success') {
|
|
@@ -75,7 +75,7 @@ const MessageList = ({ messages, currentUserId, messagesScrollContainerId, messa
|
|
|
75
75
|
: messages.map(message => {
|
|
76
76
|
if ((0, PendingMessage_1.isPendingMessage)(message) || (!(0, PendingMessage_1.isPendingMessage)(message) && message.senderId === currentUserId)) {
|
|
77
77
|
return (React.createElement(MessageRow_1.MessageRow, { key: message.id, isCurrentUser: true },
|
|
78
|
-
React.createElement(Message_1.Message, { message: message, isCurrentUser: true })));
|
|
78
|
+
React.createElement(Message_1.Message, { message: message, isCurrentUser: true, failedPendingMessageIconClassName: failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles: failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName: failedPendingMessageDescriptionClassName, onFailedPendingMessageClick: onFailedPendingMessageClick })));
|
|
79
79
|
}
|
|
80
80
|
else if (message.isAdminMessage) {
|
|
81
81
|
return (React.createElement(MessageRow_1.MessageRow, { key: message.id, isCurrentUser: false },
|
|
@@ -93,6 +93,10 @@ exports.MessageList.propTypes = {
|
|
|
93
93
|
currentUserId: prop_types_1.default.number.isRequired,
|
|
94
94
|
messagesScrollContainerId: prop_types_1.default.string.isRequired,
|
|
95
95
|
messagesContainerClassName: prop_types_1.default.string,
|
|
96
|
+
failedPendingMessageIconClassName: prop_types_1.default.string,
|
|
97
|
+
failedPendingMessageDescriptionStyles: prop_types_1.default.object,
|
|
98
|
+
failedPendingMessageDescriptionClassName: prop_types_1.default.string,
|
|
99
|
+
onFailedPendingMessageClick: prop_types_1.default.func,
|
|
96
100
|
getLatestMessagesStatus: prop_types_1.default.oneOf(['initialized', 'fetching', 'success', 'failed']),
|
|
97
101
|
markMessagesReadUpTo: prop_types_1.default.func.isRequired,
|
|
98
102
|
shouldMarkMessagesAsRead: prop_types_1.default.bool.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../src/react/components/MessageList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,4DAAmC;AAInC,6CAA0C;AAC1C,iDAA8C;AAC9C,uCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../src/react/components/MessageList.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/useChat.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import OnlineUser from '../OnlineUser';
|
|
|
4
4
|
import { ConnectionStatus } from '../Chat';
|
|
5
5
|
import { ChannelStatus, GetLatestMessagesStatus, Messages } from '../CachedChat';
|
|
6
6
|
import { ChatSubscriptionStatus, ChatSubscriptionEventCallbackData } from '../ChatSubscription';
|
|
7
|
+
import PendingMessage from '../PendingMessage';
|
|
7
8
|
export interface UseChatOptions {
|
|
8
9
|
idType?: 'appointment';
|
|
9
10
|
onMessages?: OnMessagesCallback | undefined;
|
|
@@ -20,6 +21,7 @@ export interface UseChatReturnValue {
|
|
|
20
21
|
getLatestMessagesStatus: GetLatestMessagesStatus | undefined;
|
|
21
22
|
initialize: () => void;
|
|
22
23
|
sendMessage: (message: string) => Promise<any> | void;
|
|
24
|
+
sendPendingMessage: (pendingMessage: PendingMessage) => Promise<any> | void;
|
|
23
25
|
getLatestMessages: () => void;
|
|
24
26
|
markMessagesReadUpTo: (message: Message) => Promise<{
|
|
25
27
|
error?: ChatError | undefined;
|
package/dist/react/useChat.js
CHANGED
|
@@ -99,6 +99,7 @@ const useChat = (id, { idType, onMessages } = {}) => {
|
|
|
99
99
|
getLatestMessagesStatus,
|
|
100
100
|
initialize: initializeChatSubscription,
|
|
101
101
|
sendMessage: (message) => subscription === null || subscription === void 0 ? void 0 : subscription.sendMessage(message),
|
|
102
|
+
sendPendingMessage: (pendingMessage) => subscription === null || subscription === void 0 ? void 0 : subscription.sendPendingMessage(pendingMessage),
|
|
102
103
|
getLatestMessages: () => subscription === null || subscription === void 0 ? void 0 : subscription.getLatestMessages(),
|
|
103
104
|
markMessagesReadUpTo: (message) => {
|
|
104
105
|
if (subscription) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":";;;;;AAAA,iCAA0C;AAG1C,yCAAsC;AAEtC,mDAAiD;AACjD,uDAAoD;
|
|
1
|
+
{"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viewberapp/chat",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.88",
|
|
4
4
|
"description": "Viewber chat",
|
|
5
5
|
"author": "Jacob <jacob.chen@viewber.co.uk>",
|
|
6
6
|
"homepage": "https://bitbucket.org/ezadr/viewberjs#readme",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"react": "^16.14.0",
|
|
43
43
|
"rollbar": "^2.25.0"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "1d4d22ec61c959e7d40e21f041e18c7ce0dcdcd5"
|
|
46
46
|
}
|