@viewberapp/chat 0.0.106 → 0.0.110-alpha.0

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 (87) hide show
  1. package/LICENSE +20 -20
  2. package/dist/API.d.ts +83 -83
  3. package/dist/API.js +215 -216
  4. package/dist/API.js.map +1 -1
  5. package/dist/CachedChat.d.ts +59 -59
  6. package/dist/CachedChat.js +216 -220
  7. package/dist/CachedChat.js.map +1 -1
  8. package/dist/Chat.d.ts +64 -64
  9. package/dist/Chat.js +263 -267
  10. package/dist/Chat.js.map +1 -1
  11. package/dist/ChatError.d.ts +4 -4
  12. package/dist/ChatError.js +2 -2
  13. package/dist/ChatSubscription.d.ts +79 -79
  14. package/dist/ChatSubscription.js +119 -119
  15. package/dist/ChatSubscription.js.map +1 -1
  16. package/dist/Message.d.ts +25 -25
  17. package/dist/Message.js +32 -35
  18. package/dist/Message.js.map +1 -1
  19. package/dist/OnlineUser.d.ts +8 -8
  20. package/dist/OnlineUser.js +9 -9
  21. package/dist/PendingMessage.d.ts +23 -23
  22. package/dist/PendingMessage.js +22 -23
  23. package/dist/PendingMessage.js.map +1 -1
  24. package/dist/index.d.ts +8 -8
  25. package/dist/index.js +27 -27
  26. package/dist/logger/ConsoleLogger.d.ts +8 -8
  27. package/dist/logger/ConsoleLogger.js +20 -20
  28. package/dist/logger/NullLogger.d.ts +8 -8
  29. package/dist/logger/NullLogger.js +10 -10
  30. package/dist/logger/RollbarLogger.d.ts +11 -11
  31. package/dist/logger/RollbarLogger.js +23 -23
  32. package/dist/logger/index.d.ts +12 -12
  33. package/dist/logger/index.js +12 -12
  34. package/dist/react/components/AdminMessage.d.ts +6 -6
  35. package/dist/react/components/AdminMessage.js +54 -59
  36. package/dist/react/components/AdminMessage.js.map +1 -1
  37. package/dist/react/components/ConnectionAndChannelStatusLabel.d.ts +7 -7
  38. package/dist/react/components/ConnectionAndChannelStatusLabel.js +54 -59
  39. package/dist/react/components/ConnectionAndChannelStatusLabel.js.map +1 -1
  40. package/dist/react/components/Message.d.ts +23 -23
  41. package/dist/react/components/Message.js +82 -87
  42. package/dist/react/components/Message.js.map +1 -1
  43. package/dist/react/components/MessageDateTime.d.ts +8 -8
  44. package/dist/react/components/MessageDateTime.js +26 -31
  45. package/dist/react/components/MessageDateTime.js.map +1 -1
  46. package/dist/react/components/MessageList.d.ts +46 -46
  47. package/dist/react/components/MessageList.js +102 -107
  48. package/dist/react/components/MessageList.js.map +1 -1
  49. package/dist/react/components/MessageRow.d.ts +5 -5
  50. package/dist/react/components/MessageRow.js +29 -34
  51. package/dist/react/components/MessageRow.js.map +1 -1
  52. package/dist/react/components/index.d.ts +6 -6
  53. package/dist/react/components/index.js +13 -13
  54. package/dist/react/index.d.ts +3 -3
  55. package/dist/react/index.js +12 -16
  56. package/dist/react/index.js.map +1 -1
  57. package/dist/react/useAppointmentChat.d.ts +3 -3
  58. package/dist/react/useAppointmentChat.js +10 -10
  59. package/dist/react/useAppointmentChat.js.map +1 -1
  60. package/dist/react/useChat.d.ts +36 -36
  61. package/dist/react/useChat.js +123 -123
  62. package/dist/react/useChat.js.map +1 -1
  63. package/dist/react/useRealtimeTotalUserUnreadChatMessages.d.ts +12 -12
  64. package/dist/react/useRealtimeTotalUserUnreadChatMessages.js +132 -139
  65. package/dist/react/useRealtimeTotalUserUnreadChatMessages.js.map +1 -1
  66. package/dist/util/getLatestMessage.d.ts +3 -3
  67. package/dist/util/getLatestMessage.js +16 -17
  68. package/dist/util/getLatestMessage.js.map +1 -1
  69. package/dist/util/groupMessages.d.ts +8 -8
  70. package/dist/util/groupMessages.js +29 -30
  71. package/dist/util/groupMessages.js.map +1 -1
  72. package/dist/util/index.d.ts +4 -4
  73. package/dist/util/index.js +9 -9
  74. package/dist/util/isNil.d.ts +1 -1
  75. package/dist/util/isNil.js +6 -7
  76. package/dist/util/isNil.js.map +1 -1
  77. package/dist/util/jwtTokenChanged.d.ts +1 -1
  78. package/dist/util/jwtTokenChanged.js +9 -10
  79. package/dist/util/jwtTokenChanged.js.map +1 -1
  80. package/dist/util/useIsMounted.d.ts +1 -1
  81. package/dist/util/useIsMounted.js +12 -13
  82. package/dist/util/useIsMounted.js.map +1 -1
  83. package/dist/viewberapp-chat.cjs.d.ts +11 -0
  84. package/package.json +4 -3
  85. package/dist/util/getLatestMessageId.d.ts +0 -3
  86. package/dist/util/getLatestMessageId.js +0 -18
  87. package/dist/util/getLatestMessageId.js.map +0 -1
@@ -1,60 +1,55 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ConnectionAndChannelStatusLabel = void 0;
27
- const React = __importStar(require("react"));
28
- const ConnectionAndChannelStatusLabel = ({ connectionStatus, channelStatus }) => {
29
- const derivedConnectionStatus = deriveConnectionStatus(connectionStatus, channelStatus);
30
- const derivedConnectionStatusColors = {
31
- connected: 'rgb(5, 150, 105)',
32
- connecting: 'rgb(251, 146, 60)',
33
- not_connected: 'rgb(239, 68, 68)'
34
- };
35
- const connectionDotStyles = {
36
- display: 'inline-block',
37
- width: '10px',
38
- height: '10px',
39
- borderRadius: '9999px',
40
- marginLeft: '5px',
41
- backgroundColor: derivedConnectionStatusColors[derivedConnectionStatus]
42
- };
43
- return (React.createElement("span", { title: `Connection: ${connectionStatus}, Channel: ${channelStatus}` },
44
- "Connection",
45
- React.createElement("span", { style: connectionDotStyles })));
46
- };
47
- exports.ConnectionAndChannelStatusLabel = ConnectionAndChannelStatusLabel;
48
- const deriveConnectionStatus = (connectionStatus, channelStatus) => {
49
- if (connectionStatus === 'connected' && channelStatus === 'attached') {
50
- return 'connected';
51
- }
52
- else if (connectionStatus
53
- && channelStatus
54
- && ['connecting', 'suspended', 'closing'].includes(connectionStatus)
55
- && ['attaching', 'detaching'].includes(channelStatus)) {
56
- return 'connecting';
57
- }
58
- return 'not_connected';
59
- };
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ConnectionAndChannelStatusLabel = void 0;
23
+ const React = __importStar(require("react"));
24
+ exports.ConnectionAndChannelStatusLabel = ({ connectionStatus, channelStatus }) => {
25
+ const derivedConnectionStatus = deriveConnectionStatus(connectionStatus, channelStatus);
26
+ const derivedConnectionStatusColors = {
27
+ connected: 'rgb(5, 150, 105)',
28
+ connecting: 'rgb(251, 146, 60)',
29
+ not_connected: 'rgb(239, 68, 68)'
30
+ };
31
+ const connectionDotStyles = {
32
+ display: 'inline-block',
33
+ width: '10px',
34
+ height: '10px',
35
+ borderRadius: '9999px',
36
+ marginLeft: '5px',
37
+ backgroundColor: derivedConnectionStatusColors[derivedConnectionStatus]
38
+ };
39
+ return (React.createElement("span", { title: `Connection: ${connectionStatus}, Channel: ${channelStatus}` },
40
+ "Connection",
41
+ React.createElement("span", { style: connectionDotStyles })));
42
+ };
43
+ const deriveConnectionStatus = (connectionStatus, channelStatus) => {
44
+ if (connectionStatus === 'connected' && channelStatus === 'attached') {
45
+ return 'connected';
46
+ }
47
+ else if (connectionStatus
48
+ && channelStatus
49
+ && ['connecting', 'suspended', 'closing'].includes(connectionStatus)
50
+ && ['attaching', 'detaching'].includes(channelStatus)) {
51
+ return 'connecting';
52
+ }
53
+ return 'not_connected';
54
+ };
60
55
  //# sourceMappingURL=ConnectionAndChannelStatusLabel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionAndChannelStatusLabel.js","sourceRoot":"","sources":["../../../src/react/components/ConnectionAndChannelStatusLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAQxB,MAAM,+BAA+B,GAAG,CAAC,EAAC,gBAAgB,EAAE,aAAa,EAAuC,EAAE,EAAE;IACvH,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAExF,MAAM,6BAA6B,GAAG;QAClC,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,kBAAkB;KACpC,CAAA;IAED,MAAM,mBAAmB,GAAwB;QAC7C,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,6BAA6B,CAAC,uBAAuB,CAAC;KAC1E,CAAA;IAED,OAAO,CACH,8BAAM,KAAK,EAAE,eAAe,gBAAgB,cAAc,aAAa,EAAE;;QAErE,8BAAM,KAAK,EAAE,mBAAmB,GAAI,CACjC,CACV,CAAA;AACL,CAAC,CAAA;AAxBY,QAAA,+BAA+B,mCAwB3C;AAED,MAAM,sBAAsB,GAAG,CAC3B,gBAA4C,EAC5C,aAAsC,EACI,EAAE;IAC5C,IAAI,gBAAgB,KAAK,WAAW,IAAI,aAAa,KAAK,UAAU,EAAE;QAClE,OAAO,WAAW,CAAC;KACtB;SAEI,IACD,gBAAgB;WACb,aAAa;WACb,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;WACjE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EACvD;QACE,OAAO,YAAY,CAAC;KACvB;IAED,OAAO,eAAe,CAAC;AAE3B,CAAC,CAAA"}
1
+ {"version":3,"file":"ConnectionAndChannelStatusLabel.js","sourceRoot":"","sources":["../../../src/react/components/ConnectionAndChannelStatusLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAQlB,QAAA,+BAA+B,GAAG,CAAC,EAAC,gBAAgB,EAAE,aAAa,EAAuC,EAAE,EAAE;IACvH,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAExF,MAAM,6BAA6B,GAAG;QAClC,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,kBAAkB;KACpC,CAAA;IAED,MAAM,mBAAmB,GAAwB;QAC7C,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,6BAA6B,CAAC,uBAAuB,CAAC;KAC1E,CAAA;IAED,OAAO,CACH,8BAAM,KAAK,EAAE,eAAe,gBAAgB,cAAc,aAAa,EAAE;;QAErE,8BAAM,KAAK,EAAE,mBAAmB,GAAI,CACjC,CACV,CAAA;AACL,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAC3B,gBAA4C,EAC5C,aAAsC,EACI,EAAE;IAC5C,IAAI,gBAAgB,KAAK,WAAW,IAAI,aAAa,KAAK,UAAU,EAAE;QAClE,OAAO,WAAW,CAAC;KACtB;SAEI,IACD,gBAAgB;WACb,aAAa;WACb,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;WACjE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EACvD;QACE,OAAO,YAAY,CAAC;KACvB;IAED,OAAO,eAAe,CAAC;AAE3B,CAAC,CAAA"}
@@ -1,23 +1,23 @@
1
- import * as React from 'react';
2
- import PropTypes from 'prop-types';
3
- import MessageModel from "../../Message";
4
- import PendingMessage from '../../PendingMessage';
5
- export interface MessageProps {
6
- message: MessageModel | PendingMessage;
7
- isCurrentUser: boolean;
8
- failedPendingMessageIconClassName?: string;
9
- failedPendingMessageDescriptionStyles?: React.CSSProperties;
10
- failedPendingMessageDescriptionClassName?: string;
11
- onFailedPendingMessageClick?: (pendingMessage: PendingMessage) => void;
12
- }
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
- };
1
+ import * as React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import MessageModel from "../../Message";
4
+ import PendingMessage from '../../PendingMessage';
5
+ export interface MessageProps {
6
+ message: MessageModel | PendingMessage;
7
+ isCurrentUser: boolean;
8
+ failedPendingMessageIconClassName?: string;
9
+ failedPendingMessageDescriptionStyles?: React.CSSProperties;
10
+ failedPendingMessageDescriptionClassName?: string;
11
+ onFailedPendingMessageClick?: (pendingMessage: PendingMessage) => void;
12
+ }
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
+ };
@@ -1,88 +1,83 @@
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.Message = void 0;
30
- const React = __importStar(require("react"));
31
- const prop_types_1 = __importDefault(require("prop-types"));
32
- const PendingMessage_1 = require("../../PendingMessage");
33
- const MessageDateTime_1 = require("./MessageDateTime");
34
- const util_1 = require("../../util");
35
- const Message = ({ message, isCurrentUser, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick }) => {
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
- };
48
- const containerStyles = {
49
- display: 'inline-block',
50
- maxWidth: '300px',
51
- margin: '0.125rem 0.5rem'
52
- };
53
- const messageStyles = {
54
- display: 'inline-block',
55
- borderRadius: '0.675rem',
56
- backgroundColor: isCurrentUser
57
- ? '#218aff'
58
- : '#d8d8d8',
59
- color: isCurrentUser
60
- ? '#fff'
61
- : undefined,
62
- padding: '0.25rem 1rem',
63
- };
64
- return (React.createElement("div", { style: containerStyles },
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' } })))));
78
- };
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
- };
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.Message = void 0;
26
+ const React = __importStar(require("react"));
27
+ const prop_types_1 = __importDefault(require("prop-types"));
28
+ const PendingMessage_1 = require("../../PendingMessage");
29
+ const MessageDateTime_1 = require("./MessageDateTime");
30
+ const util_1 = require("../../util");
31
+ exports.Message = ({ message, isCurrentUser, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick }) => {
32
+ const [dateTimeIsShowing, setDateTimeIsShowing] = React.useState(false);
33
+ const isFailedPendingMessage = (PendingMessage_1.isPendingMessage(message)
34
+ && message.status === 'failed');
35
+ const handleMessageClick = () => {
36
+ if (!isFailedPendingMessage) {
37
+ setDateTimeIsShowing(!dateTimeIsShowing);
38
+ return;
39
+ }
40
+ if (onFailedPendingMessageClick) {
41
+ onFailedPendingMessageClick(message);
42
+ }
43
+ };
44
+ const containerStyles = {
45
+ display: 'inline-block',
46
+ maxWidth: '300px',
47
+ margin: '0.125rem 0.5rem'
48
+ };
49
+ const messageStyles = {
50
+ display: 'inline-block',
51
+ borderRadius: '0.675rem',
52
+ backgroundColor: isCurrentUser
53
+ ? '#218aff'
54
+ : '#d8d8d8',
55
+ color: isCurrentUser
56
+ ? '#fff'
57
+ : undefined,
58
+ padding: '0.25rem 1rem',
59
+ };
60
+ return (React.createElement("div", { style: containerStyles },
61
+ React.createElement("div", null,
62
+ React.createElement("div", { style: messageStyles, onClick: handleMessageClick },
63
+ React.createElement("span", null, message.message)),
64
+ isFailedPendingMessage && !util_1.isNil(failedPendingMessageIconClassName) &&
65
+ React.createElement("div", { style: { display: 'inline-block' } },
66
+ React.createElement("i", { className: failedPendingMessageIconClassName })),
67
+ isFailedPendingMessage &&
68
+ React.createElement("div", { className: failedPendingMessageDescriptionClassName, style: failedPendingMessageDescriptionStyles }, util_1.isNil(onFailedPendingMessageClick)
69
+ ? 'This message failed to send'
70
+ : 'This message failed to send. Click to retry'),
71
+ dateTimeIsShowing &&
72
+ React.createElement("div", null,
73
+ React.createElement(MessageDateTime_1.MessageDateTime, { date: message.createdAt, style: { display: 'block' } })))));
74
+ };
75
+ exports.Message.propTypes = {
76
+ message: prop_types_1.default.object,
77
+ isCurrentUser: prop_types_1.default.bool,
78
+ failedPendingMessageIconClassName: prop_types_1.default.string,
79
+ failedPendingMessageDescriptionStyles: prop_types_1.default.object,
80
+ failedPendingMessageDescriptionClassName: prop_types_1.default.string,
81
+ onFailedPendingMessageClick: prop_types_1.default.func
82
+ };
88
83
  //# sourceMappingURL=Message.js.map
@@ -1 +1 @@
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,OAAO;QACjB,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"}
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;AAWtB,QAAA,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,iCAAgB,CAAC,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,OAAO;QACjB,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,YAAK,CAAC,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,YAAK,CAAC,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;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"}
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
2
- interface MessageDateTimeProps {
3
- date?: Date | null;
4
- style?: React.CSSProperties;
5
- className?: string;
6
- }
7
- export declare const MessageDateTime: ({ date, style, className }: MessageDateTimeProps) => JSX.Element;
8
- export {};
1
+ import * as React from 'react';
2
+ interface MessageDateTimeProps {
3
+ date?: Date | null;
4
+ style?: React.CSSProperties;
5
+ className?: string;
6
+ }
7
+ export declare const MessageDateTime: ({ date, style, className }: MessageDateTimeProps) => JSX.Element;
8
+ export {};
@@ -1,32 +1,27 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.MessageDateTime = void 0;
27
- const React = __importStar(require("react"));
28
- const MessageDateTime = ({ date, style, className }) => {
29
- return (React.createElement("small", { style: style, className: className }, date === null || date === void 0 ? void 0 : date.toLocaleString()));
30
- };
31
- exports.MessageDateTime = MessageDateTime;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.MessageDateTime = void 0;
23
+ const React = __importStar(require("react"));
24
+ exports.MessageDateTime = ({ date, style, className }) => {
25
+ return (React.createElement("small", { style: style, className: className }, date === null || date === void 0 ? void 0 : date.toLocaleString()));
26
+ };
32
27
  //# sourceMappingURL=MessageDateTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageDateTime.js","sourceRoot":"","sources":["../../../src/react/components/MessageDateTime.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAQxB,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAwB,EAAE,EAAE;IAChF,OAAO,CACH,+BAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,IACpC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,EAAE,CACnB,CACX,CAAA;AACL,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B"}
1
+ {"version":3,"file":"MessageDateTime.js","sourceRoot":"","sources":["../../../src/react/components/MessageDateTime.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAQlB,QAAA,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAwB,EAAE,EAAE;IAChF,OAAO,CACH,+BAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,IACpC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,GACjB,CACX,CAAA;AACL,CAAC,CAAA"}
@@ -1,46 +1,46 @@
1
- import * as React from 'react';
2
- import PropTypes from 'prop-types';
3
- import ChatError from '../../ChatError';
4
- import MessageModel from '../../Message';
5
- import { GetLatestMessagesStatus, Messages } from '../../CachedChat';
6
- import PendingMessage from '../../PendingMessage';
7
- export interface MessageListProps {
8
- messages: Messages;
9
- currentUserId: number;
10
- messagesScrollContainerId: string;
11
- messagesContainerClassName?: string;
12
- failedPendingMessageIconClassName?: string;
13
- failedPendingMessageDescriptionStyles?: React.CSSProperties;
14
- failedPendingMessageDescriptionClassName?: string;
15
- onFailedPendingMessageClick?: (pendingMessage: PendingMessage) => void;
16
- getLatestMessagesStatus: GetLatestMessagesStatus;
17
- markMessagesReadUpTo(message: MessageModel): Promise<{
18
- error: ChatError | undefined;
19
- }>;
20
- shouldMarkMessagesAsRead: boolean;
21
- loadingContent: React.ReactNode;
22
- retryContent: React.ReactNode;
23
- noMessagesContent: React.ReactNode;
24
- onMessagesMarkedAsRead?: () => void;
25
- onRequestScrollToBottomOfMessagesScrollContainer: () => void;
26
- }
27
- export declare const MessageList: {
28
- ({ messages, currentUserId, messagesScrollContainerId, messagesContainerClassName, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick, getLatestMessagesStatus, markMessagesReadUpTo, shouldMarkMessagesAsRead, loadingContent, retryContent, noMessagesContent, onMessagesMarkedAsRead, onRequestScrollToBottomOfMessagesScrollContainer }: MessageListProps): React.ReactNode;
29
- propTypes: {
30
- messages: PropTypes.Validator<(object | null | undefined)[]>;
31
- currentUserId: PropTypes.Validator<number>;
32
- messagesScrollContainerId: PropTypes.Validator<string>;
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>;
38
- getLatestMessagesStatus: PropTypes.Requireable<string>;
39
- markMessagesReadUpTo: PropTypes.Validator<(...args: any[]) => any>;
40
- shouldMarkMessagesAsRead: PropTypes.Validator<boolean>;
41
- loadingContent: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
42
- retryContent: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
43
- noMessagesContent: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
44
- onRequestScrollToBottomOfMessagesScrollContainer: PropTypes.Validator<(...args: any[]) => any>;
45
- };
46
- };
1
+ import * as React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import ChatError from '../../ChatError';
4
+ import MessageModel from '../../Message';
5
+ import { GetLatestMessagesStatus, Messages } from '../../CachedChat';
6
+ import PendingMessage from '../../PendingMessage';
7
+ export interface MessageListProps {
8
+ messages: Messages;
9
+ currentUserId: number;
10
+ messagesScrollContainerId: string;
11
+ messagesContainerClassName?: string;
12
+ failedPendingMessageIconClassName?: string;
13
+ failedPendingMessageDescriptionStyles?: React.CSSProperties;
14
+ failedPendingMessageDescriptionClassName?: string;
15
+ onFailedPendingMessageClick?: (pendingMessage: PendingMessage) => void;
16
+ getLatestMessagesStatus: GetLatestMessagesStatus;
17
+ markMessagesReadUpTo(message: MessageModel): Promise<{
18
+ error: ChatError | undefined;
19
+ }>;
20
+ shouldMarkMessagesAsRead: boolean;
21
+ loadingContent: React.ReactNode;
22
+ retryContent: React.ReactNode;
23
+ noMessagesContent: React.ReactNode;
24
+ onMessagesMarkedAsRead?: () => void;
25
+ onRequestScrollToBottomOfMessagesScrollContainer: () => void;
26
+ }
27
+ export declare const MessageList: {
28
+ ({ messages, currentUserId, messagesScrollContainerId, messagesContainerClassName, failedPendingMessageIconClassName, failedPendingMessageDescriptionStyles, failedPendingMessageDescriptionClassName, onFailedPendingMessageClick, getLatestMessagesStatus, markMessagesReadUpTo, shouldMarkMessagesAsRead, loadingContent, retryContent, noMessagesContent, onMessagesMarkedAsRead, onRequestScrollToBottomOfMessagesScrollContainer }: MessageListProps): {} | null | undefined;
29
+ propTypes: {
30
+ messages: PropTypes.Validator<(object | null | undefined)[]>;
31
+ currentUserId: PropTypes.Validator<number>;
32
+ messagesScrollContainerId: PropTypes.Validator<string>;
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>;
38
+ getLatestMessagesStatus: PropTypes.Requireable<string>;
39
+ markMessagesReadUpTo: PropTypes.Validator<(...args: any[]) => any>;
40
+ shouldMarkMessagesAsRead: PropTypes.Validator<boolean>;
41
+ loadingContent: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
42
+ retryContent: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
43
+ noMessagesContent: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
44
+ onRequestScrollToBottomOfMessagesScrollContainer: PropTypes.Validator<(...args: any[]) => any>;
45
+ };
46
+ };