@viewberapp/chat 0.0.105 → 0.0.107

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.
Files changed (70) hide show
  1. package/LICENSE +20 -20
  2. package/dist/API.d.ts +83 -83
  3. package/dist/API.js +216 -223
  4. package/dist/API.js.map +1 -1
  5. package/dist/CachedChat.d.ts +59 -59
  6. package/dist/CachedChat.js +220 -220
  7. package/dist/Chat.d.ts +64 -64
  8. package/dist/Chat.js +267 -271
  9. package/dist/Chat.js.map +1 -1
  10. package/dist/ChatError.d.ts +4 -5
  11. package/dist/ChatError.js +2 -2
  12. package/dist/ChatSubscription.d.ts +79 -79
  13. package/dist/ChatSubscription.js +119 -120
  14. package/dist/ChatSubscription.js.map +1 -1
  15. package/dist/Message.d.ts +25 -25
  16. package/dist/Message.js +35 -35
  17. package/dist/OnlineUser.d.ts +8 -8
  18. package/dist/OnlineUser.js +9 -9
  19. package/dist/PendingMessage.d.ts +23 -23
  20. package/dist/PendingMessage.js +23 -23
  21. package/dist/index.d.ts +8 -8
  22. package/dist/index.js +27 -27
  23. package/dist/logger/ConsoleLogger.d.ts +8 -8
  24. package/dist/logger/ConsoleLogger.js +20 -20
  25. package/dist/logger/NullLogger.d.ts +8 -8
  26. package/dist/logger/NullLogger.js +10 -10
  27. package/dist/logger/RollbarLogger.d.ts +11 -11
  28. package/dist/logger/RollbarLogger.js +23 -23
  29. package/dist/logger/index.d.ts +12 -12
  30. package/dist/logger/index.js +12 -12
  31. package/dist/react/components/AdminMessage.d.ts +6 -6
  32. package/dist/react/components/AdminMessage.js +59 -59
  33. package/dist/react/components/ConnectionAndChannelStatusLabel.d.ts +7 -7
  34. package/dist/react/components/ConnectionAndChannelStatusLabel.js +59 -59
  35. package/dist/react/components/Message.d.ts +23 -23
  36. package/dist/react/components/Message.js +87 -87
  37. package/dist/react/components/MessageDateTime.d.ts +8 -8
  38. package/dist/react/components/MessageDateTime.js +31 -31
  39. package/dist/react/components/MessageList.d.ts +46 -46
  40. package/dist/react/components/MessageList.js +107 -107
  41. package/dist/react/components/MessageRow.d.ts +5 -5
  42. package/dist/react/components/MessageRow.js +34 -34
  43. package/dist/react/components/index.d.ts +6 -6
  44. package/dist/react/components/index.js +13 -13
  45. package/dist/react/index.d.ts +3 -3
  46. package/dist/react/index.js +16 -16
  47. package/dist/react/useAppointmentChat.d.ts +3 -3
  48. package/dist/react/useAppointmentChat.js +10 -10
  49. package/dist/react/useChat.d.ts +36 -31
  50. package/dist/react/useChat.js +123 -115
  51. package/dist/react/useChat.js.map +1 -1
  52. package/dist/react/useRealtimeTotalUserUnreadChatMessages.d.ts +12 -12
  53. package/dist/react/useRealtimeTotalUserUnreadChatMessages.js +137 -139
  54. package/dist/react/useRealtimeTotalUserUnreadChatMessages.js.map +1 -1
  55. package/dist/util/getLatestMessage.d.ts +3 -3
  56. package/dist/util/getLatestMessage.js +17 -17
  57. package/dist/util/groupMessages.d.ts +8 -8
  58. package/dist/util/groupMessages.js +30 -30
  59. package/dist/util/index.d.ts +4 -4
  60. package/dist/util/index.js +9 -9
  61. package/dist/util/isNil.d.ts +1 -1
  62. package/dist/util/isNil.js +7 -7
  63. package/dist/util/jwtTokenChanged.d.ts +1 -1
  64. package/dist/util/jwtTokenChanged.js +10 -10
  65. package/dist/util/useIsMounted.d.ts +1 -1
  66. package/dist/util/useIsMounted.js +13 -13
  67. package/package.json +2 -2
  68. package/dist/util/getLatestMessageId.d.ts +0 -3
  69. package/dist/util/getLatestMessageId.js +0 -18
  70. package/dist/util/getLatestMessageId.js.map +0 -1
@@ -1,140 +1,138 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.useRealtimeTotalUserUnreadChatMessages = void 0;
30
- const react_1 = __importStar(require("react"));
31
- const util_1 = require("../util");
32
- const Chat_1 = __importDefault(require("../Chat"));
33
- const useRealtimeTotalUserUnreadChatMessages = (userId, options) => {
34
- const [chatIsInitialized, setChatIsInitialized] = (0, react_1.useState)(Chat_1.default.isInitialized());
35
- const [channelStatus, setChannelStatus] = (0, react_1.useState)();
36
- const [totalUnreadMessages, setTotalUnreadMessages] = (0, react_1.useState)();
37
- const loadUserChatUnreadMessageCount = (0, react_1.useCallback)(() => {
38
- Chat_1.default.api().getUserChatUnreadMessageCount({
39
- appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
40
- appointmentIsConfirmedForViewing: options === null || options === void 0 ? void 0 : options.appointmentIsConfirmedForViewing
41
- }).then(res => {
42
- if (!(0, util_1.isNil)(res.count)) {
43
- setTotalUnreadMessages(res.count);
44
- }
45
- if (options === null || options === void 0 ? void 0 : options.__debug__) {
46
- console.log(res);
47
- }
48
- }).catch(err => {
49
- if (options === null || options === void 0 ? void 0 : options.__debug__) {
50
- console.error(err);
51
- }
52
- });
53
- }, [
54
- userId,
55
- options,
56
- options === null || options === void 0 ? void 0 : options.appointmentId,
57
- options === null || options === void 0 ? void 0 : options.requireAppointmentId,
58
- options === null || options === void 0 ? void 0 : options.appointmentIsConfirmedForViewing
59
- ]);
60
- react_1.default.useEffect(() => {
61
- let listener = (isInitialized) => {
62
- setChatIsInitialized(isInitialized);
63
- if (options === null || options === void 0 ? void 0 : options.__debug__) {
64
- console.log("useRealtimeTotalUserUnreadChatMessages chat isInitialized change", isInitialized);
65
- }
66
- };
67
- Chat_1.default.addEventListener('initialized', listener);
68
- return () => {
69
- Chat_1.default.removeEventListener('initialized', listener);
70
- };
71
- }, []);
72
- react_1.default.useEffect(() => {
73
- if (!chatIsInitialized
74
- || (0, util_1.isNil)(userId)
75
- || ((options === null || options === void 0 ? void 0 : options.requireAppointmentId) && (0, util_1.isNil)(options === null || options === void 0 ? void 0 : options.appointmentId))) {
76
- if (options === null || options === void 0 ? void 0 : options.__debug__) {
77
- console.log("useRealtimeTotalUserUnreadChatMessages initialize realtime listener early return", {
78
- chatIsInitialized,
79
- userId,
80
- appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
81
- requireAppointmentId: options === null || options === void 0 ? void 0 : options.requireAppointmentId
82
- });
83
- }
84
- return;
85
- }
86
- loadUserChatUnreadMessageCount();
87
- Chat_1.default.connect();
88
- const channel = Chat_1.default.channel(`viewber:users:${userId}`);
89
- const chatMessageCreatedListener = (message) => {
90
- var _a;
91
- if (!(0, util_1.isNil)(options === null || options === void 0 ? void 0 : options.appointmentId)
92
- && ((_a = message.data.chat) === null || _a === void 0 ? void 0 : _a.request_accept_id) !== (options === null || options === void 0 ? void 0 : options.appointmentId)) {
93
- if (options === null || options === void 0 ? void 0 : options.__debug__) {
94
- console.log("useRealtimeTotalUserUnreadChatMessages chat.message.created early return", {
95
- userId,
96
- appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
97
- requireAppointmentId: options === null || options === void 0 ? void 0 : options.requireAppointmentId,
98
- message
99
- });
100
- }
101
- return;
102
- }
103
- else if (options === null || options === void 0 ? void 0 : options.__debug__) {
104
- console.log("useRealtimeTotalUserUnreadChatMessages chat.message.created", {
105
- userId,
106
- appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
107
- requireAppointmentId: options === null || options === void 0 ? void 0 : options.requireAppointmentId,
108
- message
109
- });
110
- }
111
- loadUserChatUnreadMessageCount();
112
- };
113
- const channelStatusListener = (stateChange) => {
114
- setChannelStatus(stateChange.current);
115
- };
116
- channel.subscribe('chat.message.created', chatMessageCreatedListener, err => {
117
- if (options === null || options === void 0 ? void 0 : options.__debug__) {
118
- console.error("useRealtimeTotalUserUnreadChatMessages chat.message.created subscribe error", err);
119
- }
120
- });
121
- channel.on(channelStatusListener);
122
- return () => {
123
- channel.unsubscribe('chat.message.created', chatMessageCreatedListener);
124
- channel.off(channelStatusListener);
125
- };
126
- }, [
127
- chatIsInitialized,
128
- userId,
129
- options,
130
- options === null || options === void 0 ? void 0 : options.appointmentId,
131
- options === null || options === void 0 ? void 0 : options.requireAppointmentId,
132
- options === null || options === void 0 ? void 0 : options.appointmentIsConfirmedForViewing
133
- ]);
134
- return {
135
- channelStatus,
136
- totalUnreadMessages
137
- };
138
- };
139
- exports.useRealtimeTotalUserUnreadChatMessages = useRealtimeTotalUserUnreadChatMessages;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.useRealtimeTotalUserUnreadChatMessages = void 0;
30
+ const react_1 = __importStar(require("react"));
31
+ const util_1 = require("../util");
32
+ const Chat_1 = __importDefault(require("../Chat"));
33
+ const useRealtimeTotalUserUnreadChatMessages = (userId, options) => {
34
+ const [chatIsInitialized, setChatIsInitialized] = (0, react_1.useState)(Chat_1.default.isInitialized());
35
+ const [channelStatus, setChannelStatus] = (0, react_1.useState)();
36
+ const [totalUnreadMessages, setTotalUnreadMessages] = (0, react_1.useState)();
37
+ const loadUserChatUnreadMessageCount = (0, react_1.useCallback)(() => {
38
+ Chat_1.default.api().getUserChatUnreadMessageCount({
39
+ appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
40
+ appointmentIsConfirmedForViewing: options === null || options === void 0 ? void 0 : options.appointmentIsConfirmedForViewing
41
+ }).then(res => {
42
+ if (!(0, util_1.isNil)(res.count)) {
43
+ setTotalUnreadMessages(res.count);
44
+ }
45
+ if (options === null || options === void 0 ? void 0 : options.__debug__) {
46
+ console.log(res);
47
+ }
48
+ }).catch(err => {
49
+ if (options === null || options === void 0 ? void 0 : options.__debug__) {
50
+ console.error(err);
51
+ }
52
+ });
53
+ }, [
54
+ userId,
55
+ options === null || options === void 0 ? void 0 : options.appointmentId,
56
+ options === null || options === void 0 ? void 0 : options.requireAppointmentId,
57
+ options === null || options === void 0 ? void 0 : options.appointmentIsConfirmedForViewing
58
+ ]);
59
+ react_1.default.useEffect(() => {
60
+ let listener = (isInitialized) => {
61
+ setChatIsInitialized(isInitialized);
62
+ if (options === null || options === void 0 ? void 0 : options.__debug__) {
63
+ console.log("useRealtimeTotalUserUnreadChatMessages chat isInitialized change", isInitialized);
64
+ }
65
+ };
66
+ Chat_1.default.addEventListener('initialized', listener);
67
+ return () => {
68
+ Chat_1.default.removeEventListener('initialized', listener);
69
+ };
70
+ }, []);
71
+ react_1.default.useEffect(() => {
72
+ if (!chatIsInitialized
73
+ || (0, util_1.isNil)(userId)
74
+ || ((options === null || options === void 0 ? void 0 : options.requireAppointmentId) && (0, util_1.isNil)(options === null || options === void 0 ? void 0 : options.appointmentId))) {
75
+ if (options === null || options === void 0 ? void 0 : options.__debug__) {
76
+ console.log("useRealtimeTotalUserUnreadChatMessages initialize realtime listener early return", {
77
+ chatIsInitialized,
78
+ userId,
79
+ appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
80
+ requireAppointmentId: options === null || options === void 0 ? void 0 : options.requireAppointmentId
81
+ });
82
+ }
83
+ return;
84
+ }
85
+ loadUserChatUnreadMessageCount();
86
+ Chat_1.default.connect();
87
+ const channel = Chat_1.default.channel(`viewber:users:${userId}`);
88
+ const chatMessageCreatedListener = (message) => {
89
+ var _a;
90
+ if (!(0, util_1.isNil)(options === null || options === void 0 ? void 0 : options.appointmentId)
91
+ && ((_a = message.data.chat) === null || _a === void 0 ? void 0 : _a.request_accept_id) !== (options === null || options === void 0 ? void 0 : options.appointmentId)) {
92
+ if (options === null || options === void 0 ? void 0 : options.__debug__) {
93
+ console.log("useRealtimeTotalUserUnreadChatMessages chat.message.created early return", {
94
+ userId,
95
+ appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
96
+ requireAppointmentId: options === null || options === void 0 ? void 0 : options.requireAppointmentId,
97
+ message
98
+ });
99
+ }
100
+ return;
101
+ }
102
+ else if (options === null || options === void 0 ? void 0 : options.__debug__) {
103
+ console.log("useRealtimeTotalUserUnreadChatMessages chat.message.created", {
104
+ userId,
105
+ appointmentId: options === null || options === void 0 ? void 0 : options.appointmentId,
106
+ requireAppointmentId: options === null || options === void 0 ? void 0 : options.requireAppointmentId,
107
+ message
108
+ });
109
+ }
110
+ loadUserChatUnreadMessageCount();
111
+ };
112
+ const channelStatusListener = (stateChange) => {
113
+ setChannelStatus(stateChange.current);
114
+ };
115
+ channel.subscribe('chat.message.created', chatMessageCreatedListener, err => {
116
+ if (options === null || options === void 0 ? void 0 : options.__debug__) {
117
+ console.error("useRealtimeTotalUserUnreadChatMessages chat.message.created subscribe error", err);
118
+ }
119
+ });
120
+ channel.on(channelStatusListener);
121
+ return () => {
122
+ channel.unsubscribe('chat.message.created', chatMessageCreatedListener);
123
+ channel.off(channelStatusListener);
124
+ };
125
+ }, [
126
+ chatIsInitialized,
127
+ userId,
128
+ options === null || options === void 0 ? void 0 : options.appointmentId,
129
+ options === null || options === void 0 ? void 0 : options.requireAppointmentId,
130
+ options === null || options === void 0 ? void 0 : options.appointmentIsConfirmedForViewing
131
+ ]);
132
+ return {
133
+ channelStatus,
134
+ totalUnreadMessages
135
+ };
136
+ };
137
+ exports.useRealtimeTotalUserUnreadChatMessages = useRealtimeTotalUserUnreadChatMessages;
140
138
  //# sourceMappingURL=useRealtimeTotalUserUnreadChatMessages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRealtimeTotalUserUnreadChatMessages.js","sourceRoot":"","sources":["../../src/react/useRealtimeTotalUserUnreadChatMessages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRealtimeTotalUserUnreadChatMessages.js","sourceRoot":"","sources":["../../src/react/useRealtimeTotalUserUnreadChatMessages.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import Message from "../Message";
2
- import PendingMessage from "../PendingMessage";
3
- export declare const getLatestMessage: (messages: (Message | PendingMessage)[]) => Message | undefined;
1
+ import Message from "../Message";
2
+ import PendingMessage from "../PendingMessage";
3
+ export declare const getLatestMessage: (messages: (Message | PendingMessage)[]) => Message | undefined;
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLatestMessage = void 0;
4
- const Message_1 = require("../Message");
5
- const isNil_1 = require("./isNil");
6
- const getLatestMessage = (messages) => {
7
- let latestMessage;
8
- for (let i = 0, il = messages.length; i < il; i++) {
9
- (0, Message_1.isMessageThen)(messages[i], message => {
10
- if ((0, isNil_1.isNil)(latestMessage) || latestMessage.id < message.id) {
11
- latestMessage = message;
12
- }
13
- });
14
- }
15
- return latestMessage;
16
- };
17
- exports.getLatestMessage = getLatestMessage;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLatestMessage = void 0;
4
+ const Message_1 = require("../Message");
5
+ const isNil_1 = require("./isNil");
6
+ const getLatestMessage = (messages) => {
7
+ let latestMessage;
8
+ for (let i = 0, il = messages.length; i < il; i++) {
9
+ (0, Message_1.isMessageThen)(messages[i], message => {
10
+ if ((0, isNil_1.isNil)(latestMessage) || latestMessage.id < message.id) {
11
+ latestMessage = message;
12
+ }
13
+ });
14
+ }
15
+ return latestMessage;
16
+ };
17
+ exports.getLatestMessage = getLatestMessage;
18
18
  //# sourceMappingURL=getLatestMessage.js.map
@@ -1,8 +1,8 @@
1
- import Message, { Sender } from "../Message";
2
- export declare type MessageGroup = MessageGroupItem[];
3
- export interface MessageGroupItem {
4
- senderId: number;
5
- sender: Sender;
6
- messages: Message[];
7
- }
8
- export declare const groupMessages: (messages: Message[]) => MessageGroup;
1
+ import Message, { Sender } from "../Message";
2
+ export declare type MessageGroup = MessageGroupItem[];
3
+ export interface MessageGroupItem {
4
+ senderId: number;
5
+ sender: Sender;
6
+ messages: Message[];
7
+ }
8
+ export declare const groupMessages: (messages: Message[]) => MessageGroup;
@@ -1,31 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.groupMessages = void 0;
4
- const groupMessages = (messages) => {
5
- const messageGroup = [];
6
- let currentMessageGroupItem = undefined;
7
- for (let i = 0, il = messages.length; i < il; i++) {
8
- if (!currentMessageGroupItem) {
9
- currentMessageGroupItem = {
10
- senderId: messages[i].senderId,
11
- sender: messages[i].sender,
12
- messages: [messages[i]]
13
- };
14
- messageGroup.push(currentMessageGroupItem);
15
- continue;
16
- }
17
- if (currentMessageGroupItem.senderId === messages[i].senderId) {
18
- currentMessageGroupItem.messages.push(messages[i]);
19
- continue;
20
- }
21
- currentMessageGroupItem = {
22
- senderId: messages[i].senderId,
23
- sender: messages[i].sender,
24
- messages: [messages[i]]
25
- };
26
- messageGroup.push(currentMessageGroupItem);
27
- }
28
- return messageGroup;
29
- };
30
- exports.groupMessages = groupMessages;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.groupMessages = void 0;
4
+ const groupMessages = (messages) => {
5
+ const messageGroup = [];
6
+ let currentMessageGroupItem = undefined;
7
+ for (let i = 0, il = messages.length; i < il; i++) {
8
+ if (!currentMessageGroupItem) {
9
+ currentMessageGroupItem = {
10
+ senderId: messages[i].senderId,
11
+ sender: messages[i].sender,
12
+ messages: [messages[i]]
13
+ };
14
+ messageGroup.push(currentMessageGroupItem);
15
+ continue;
16
+ }
17
+ if (currentMessageGroupItem.senderId === messages[i].senderId) {
18
+ currentMessageGroupItem.messages.push(messages[i]);
19
+ continue;
20
+ }
21
+ currentMessageGroupItem = {
22
+ senderId: messages[i].senderId,
23
+ sender: messages[i].sender,
24
+ messages: [messages[i]]
25
+ };
26
+ messageGroup.push(currentMessageGroupItem);
27
+ }
28
+ return messageGroup;
29
+ };
30
+ exports.groupMessages = groupMessages;
31
31
  //# sourceMappingURL=groupMessages.js.map
@@ -1,4 +1,4 @@
1
- import { isNil } from "./isNil";
2
- import { groupMessages } from "./groupMessages";
3
- import { getLatestMessage } from "./getLatestMessage";
4
- export { isNil, groupMessages, getLatestMessage };
1
+ import { isNil } from "./isNil";
2
+ import { groupMessages } from "./groupMessages";
3
+ import { getLatestMessage } from "./getLatestMessage";
4
+ export { isNil, groupMessages, getLatestMessage };
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLatestMessage = exports.groupMessages = exports.isNil = void 0;
4
- const isNil_1 = require("./isNil");
5
- Object.defineProperty(exports, "isNil", { enumerable: true, get: function () { return isNil_1.isNil; } });
6
- const groupMessages_1 = require("./groupMessages");
7
- Object.defineProperty(exports, "groupMessages", { enumerable: true, get: function () { return groupMessages_1.groupMessages; } });
8
- const getLatestMessage_1 = require("./getLatestMessage");
9
- Object.defineProperty(exports, "getLatestMessage", { enumerable: true, get: function () { return getLatestMessage_1.getLatestMessage; } });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLatestMessage = exports.groupMessages = exports.isNil = void 0;
4
+ const isNil_1 = require("./isNil");
5
+ Object.defineProperty(exports, "isNil", { enumerable: true, get: function () { return isNil_1.isNil; } });
6
+ const groupMessages_1 = require("./groupMessages");
7
+ Object.defineProperty(exports, "groupMessages", { enumerable: true, get: function () { return groupMessages_1.groupMessages; } });
8
+ const getLatestMessage_1 = require("./getLatestMessage");
9
+ Object.defineProperty(exports, "getLatestMessage", { enumerable: true, get: function () { return getLatestMessage_1.getLatestMessage; } });
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export declare const isNil: (value: any) => value is null | undefined;
1
+ export declare const isNil: (value: any) => value is null | undefined;
@@ -1,8 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNil = void 0;
4
- const isNil = (value) => {
5
- return value == null;
6
- };
7
- exports.isNil = isNil;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNil = void 0;
4
+ const isNil = (value) => {
5
+ return value == null;
6
+ };
7
+ exports.isNil = isNil;
8
8
  //# sourceMappingURL=isNil.js.map
@@ -1 +1 @@
1
- export declare const jwtTokenChanged: (tokenA?: string, tokenB?: string) => boolean;
1
+ export declare const jwtTokenChanged: (tokenA?: string, tokenB?: string) => boolean;
@@ -1,11 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jwtTokenChanged = void 0;
4
- const isNil_1 = require("./isNil");
5
- const jwtTokenChanged = (tokenA, tokenB) => {
6
- return (tokenA !== tokenB)
7
- || ((0, isNil_1.isNil)(tokenA) && !(0, isNil_1.isNil)(tokenB))
8
- || ((0, isNil_1.isNil)(tokenB) && !(0, isNil_1.isNil)(tokenA));
9
- };
10
- exports.jwtTokenChanged = jwtTokenChanged;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jwtTokenChanged = void 0;
4
+ const isNil_1 = require("./isNil");
5
+ const jwtTokenChanged = (tokenA, tokenB) => {
6
+ return (tokenA !== tokenB)
7
+ || ((0, isNil_1.isNil)(tokenA) && !(0, isNil_1.isNil)(tokenB))
8
+ || ((0, isNil_1.isNil)(tokenB) && !(0, isNil_1.isNil)(tokenA));
9
+ };
10
+ exports.jwtTokenChanged = jwtTokenChanged;
11
11
  //# sourceMappingURL=jwtTokenChanged.js.map
@@ -1 +1 @@
1
- export declare const useIsMounted: () => () => boolean;
1
+ export declare const useIsMounted: () => () => boolean;
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useIsMounted = void 0;
4
- const react_1 = require("react");
5
- const useIsMounted = () => {
6
- const isMountedRef = (0, react_1.useRef)(true);
7
- const isMounted = (0, react_1.useCallback)(() => isMountedRef.current, []);
8
- (0, react_1.useEffect)(() => {
9
- return () => void (isMountedRef.current = false);
10
- }, []);
11
- return isMounted;
12
- };
13
- exports.useIsMounted = useIsMounted;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useIsMounted = void 0;
4
+ const react_1 = require("react");
5
+ const useIsMounted = () => {
6
+ const isMountedRef = (0, react_1.useRef)(true);
7
+ const isMounted = (0, react_1.useCallback)(() => isMountedRef.current, []);
8
+ (0, react_1.useEffect)(() => {
9
+ return () => void (isMountedRef.current = false);
10
+ }, []);
11
+ return isMounted;
12
+ };
13
+ exports.useIsMounted = useIsMounted;
14
14
  //# sourceMappingURL=useIsMounted.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viewberapp/chat",
3
- "version": "0.0.105",
3
+ "version": "0.0.107",
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": "bc4b87c60698a80c284912bfdf538dbc475ea470"
45
+ "gitHead": "d5b395578d13e6c40e82d8855a0e347004383191"
46
46
  }
@@ -1,3 +0,0 @@
1
- import Message from "../Message";
2
- import PendingMessage from "../PendingMessage";
3
- export declare const getLatestMessageId: (messages: (Message | PendingMessage)[]) => number | undefined;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLatestMessageId = void 0;
4
- const Message_1 = require("../Message");
5
- const isNil_1 = require("./isNil");
6
- const getLatestMessageId = (messages) => {
7
- let latestId;
8
- for (let i = 0, il = messages.length; i < il; i++) {
9
- (0, Message_1.isMessageThen)(messages[i], message => {
10
- if ((0, isNil_1.isNil)(latestId) || latestId < message.id) {
11
- latestId = message.id;
12
- }
13
- });
14
- }
15
- return latestId;
16
- };
17
- exports.getLatestMessageId = getLatestMessageId;
18
- //# sourceMappingURL=getLatestMessageId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLatestMessageId.js","sourceRoot":"","sources":["../../src/util/getLatestMessageId.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAEpD,mCAAgC;AAEzB,MAAM,kBAAkB,GAAG,CAAC,QAAoC,EAAoB,EAAE;IACzF,IAAI,QAA0B,CAAC;IAE/B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,EAAE,GAAC,QAAQ,CAAC,MAAM,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE,EAAE;QACrC,IAAA,uBAAa,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;YACjC,IAAI,IAAA,aAAK,EAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,OAAO,CAAC,EAAE,EAAE;gBAC1C,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;aACzB;QACL,CAAC,CAAC,CAAC;KACN;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA;AAZY,QAAA,kBAAkB,sBAY9B"}