beem-component 1.6.9 → 1.7.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.
- package/dist/components/ChatComponents/ChatBody/chatBody.js +7 -2
- package/dist/components/ChatComponents/ChatBody/sessionTimeline.js +44 -0
- package/package.json +1 -1
- package/src/App.js +84 -4
- package/src/lib/components/ChatComponents/ChatBody/chatBody.js +5 -0
- package/src/lib/components/ChatComponents/ChatBody/sessionTimeline.js +29 -0
|
@@ -21,11 +21,13 @@ var _iconStyles = require("../../iconStyles");
|
|
|
21
21
|
|
|
22
22
|
var _sessionDetails = require("./sessionDetails");
|
|
23
23
|
|
|
24
|
+
var _sessionTimeline = require("./sessionTimeline");
|
|
25
|
+
|
|
24
26
|
var _colors = require("../../colors");
|
|
25
27
|
|
|
26
28
|
var _excluded = ["state", "file", "src", "fileName", "onDownload", "link"],
|
|
27
29
|
_excluded2 = ["state", "src", "fileName"],
|
|
28
|
-
_excluded3 = ["children", "state", "displayTime", "status", "session", "src", "file", "fileName", "sessionDetails"];
|
|
30
|
+
_excluded3 = ["children", "state", "displayTime", "status", "session", "src", "file", "fileName", "sessionDetails", "sessionTimeline"];
|
|
29
31
|
|
|
30
32
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
|
31
33
|
|
|
@@ -247,9 +249,12 @@ BmChat.Details = function (_ref14) {
|
|
|
247
249
|
file = _ref14.file,
|
|
248
250
|
fileName = _ref14.fileName,
|
|
249
251
|
sessionDetails = _ref14.sessionDetails,
|
|
252
|
+
sessionTimeline = _ref14.sessionTimeline,
|
|
250
253
|
rest = _objectWithoutProperties(_ref14, _excluded3);
|
|
251
254
|
|
|
252
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null,
|
|
255
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, sessionTimeline && /*#__PURE__*/_react.default.createElement(_sessionTimeline.SessionTimeline, _extends({
|
|
256
|
+
message: sessionTimeline.message
|
|
257
|
+
}, rest)), sessionDetails && /*#__PURE__*/_react.default.createElement(_sessionDetails.SessionDetails, _extends({
|
|
253
258
|
time: sessionDetails.time,
|
|
254
259
|
message: sessionDetails.message
|
|
255
260
|
}, rest)), /*#__PURE__*/_react.default.createElement(Details, _extends({
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SessionTimeline = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
|
|
12
|
+
var _colors = require("../../colors");
|
|
13
|
+
|
|
14
|
+
var _excluded = ["message", "time"];
|
|
15
|
+
|
|
16
|
+
var _templateObject, _templateObject2;
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
|
+
|
|
22
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
23
|
+
|
|
24
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
25
|
+
|
|
26
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
27
|
+
|
|
28
|
+
var SessionTimelineWrapper = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n text-align: center;\n"])));
|
|
29
|
+
|
|
30
|
+
var container = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n border-radius: 0.714rem 0.714rem 0.714rem 0.714rem;\n border: 0.071rem solid ", ";\n padding: 0.5rem;\n background-color: ", ";\n"])), _colors.BmBgGreyBlue, _colors.BmSecondaryBlue12);
|
|
31
|
+
|
|
32
|
+
SessionTimelineWrapper.Container = container;
|
|
33
|
+
|
|
34
|
+
var SessionTimeline = function SessionTimeline(_ref) {
|
|
35
|
+
var message = _ref.message,
|
|
36
|
+
time = _ref.time,
|
|
37
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
38
|
+
|
|
39
|
+
return /*#__PURE__*/_react.default.createElement(SessionTimelineWrapper, _extends({
|
|
40
|
+
message: message
|
|
41
|
+
}, rest), /*#__PURE__*/_react.default.createElement(SessionTimelineWrapper.Container, null, message || /*#__PURE__*/_react.default.createElement("p", null, "\xA0")));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.SessionTimeline = SessionTimeline;
|
package/package.json
CHANGED
package/src/App.js
CHANGED
|
@@ -1,11 +1,91 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import AttachFileIcon from '@mui/icons-material/AttachFile';
|
|
4
|
+
import EmojiEmotionsIcon from '@mui/icons-material/EmojiEmotions';
|
|
5
|
+
import SendIcon from '@mui/icons-material/Send';
|
|
6
|
+
import QuickreplyIcon from '@mui/icons-material/Quickreply';
|
|
7
|
+
import { BmChat, BmInput, BmIcons, GlobalStyle } from './lib/components';
|
|
3
8
|
|
|
4
9
|
const Chat = () => {
|
|
10
|
+
const image =
|
|
11
|
+
'https://bm-chatbot-images.s3.eu-west-1.amazonaws.com/1225211.jpg?AWSAccessKeyId=AKIAVCAYXA54EPKHSRGL&Expires=1734873821&Signature=ySZ23PaUxUeUVA4lCZCE1RZIrnc%3D';
|
|
5
12
|
return (
|
|
6
|
-
|
|
7
|
-
<
|
|
8
|
-
|
|
13
|
+
<>
|
|
14
|
+
<GlobalStyle />
|
|
15
|
+
<BmChat>
|
|
16
|
+
<BmChat.Body>
|
|
17
|
+
<BmChat.Details
|
|
18
|
+
state="inbound"
|
|
19
|
+
session="sms"
|
|
20
|
+
displayTime={<p>12:00pm</p>}
|
|
21
|
+
status="sent"
|
|
22
|
+
sessionTimeline={{
|
|
23
|
+
message: <p>2022-07-28</p>,
|
|
24
|
+
// time: <p>12:00pm</p>,
|
|
25
|
+
}}
|
|
26
|
+
>
|
|
27
|
+
<p>Inbound Text Message</p>
|
|
28
|
+
</BmChat.Details>
|
|
29
|
+
<BmChat.Details
|
|
30
|
+
state="inbound"
|
|
31
|
+
session="live"
|
|
32
|
+
displayTime={<p>12:00pm</p>}
|
|
33
|
+
status="sent"
|
|
34
|
+
fileName={<p>chat.png</p>}
|
|
35
|
+
src={image}
|
|
36
|
+
sessionDetails={{
|
|
37
|
+
message: <h3>Session Message</h3>,
|
|
38
|
+
time: <p>12:00pm</p>,
|
|
39
|
+
}}
|
|
40
|
+
/>
|
|
41
|
+
<BmChat.Details
|
|
42
|
+
state="inbound"
|
|
43
|
+
session="live"
|
|
44
|
+
displayTime={<p>10:00am</p>}
|
|
45
|
+
status="failed"
|
|
46
|
+
fileName={<p>file.csv</p>}
|
|
47
|
+
file={image}
|
|
48
|
+
/>
|
|
49
|
+
<BmChat.Details
|
|
50
|
+
state="outbound"
|
|
51
|
+
session="bot"
|
|
52
|
+
displayTime={<p>12:00pm</p>}
|
|
53
|
+
status="sent"
|
|
54
|
+
>
|
|
55
|
+
<p>Outbound Text Message</p>
|
|
56
|
+
</BmChat.Details>
|
|
57
|
+
<BmChat.Details
|
|
58
|
+
state="outbound"
|
|
59
|
+
session="live"
|
|
60
|
+
displayTime={<p>12:00pm</p>}
|
|
61
|
+
status="sent"
|
|
62
|
+
fileName={<p>chat.png</p>}
|
|
63
|
+
src={image}
|
|
64
|
+
/>
|
|
65
|
+
<BmChat.Details
|
|
66
|
+
state="outbound"
|
|
67
|
+
session="live"
|
|
68
|
+
displayTime={<p>10:00am</p>}
|
|
69
|
+
status="failed"
|
|
70
|
+
fileName={<p>file.csv</p>}
|
|
71
|
+
file={image}
|
|
72
|
+
link={image}
|
|
73
|
+
onDownload={() => {
|
|
74
|
+
alert('hello');
|
|
75
|
+
}}
|
|
76
|
+
/>
|
|
77
|
+
</BmChat.Body>
|
|
78
|
+
<BmChat.Footer>
|
|
79
|
+
<div className="chat-footer">
|
|
80
|
+
<BmIcons icon={<EmojiEmotionsIcon />} size="xlarge" />
|
|
81
|
+
<BmIcons icon={<AttachFileIcon />} size="xlarge" />
|
|
82
|
+
<BmIcons icon={<QuickreplyIcon />} size="xlarge" />
|
|
83
|
+
<BmInput placeholder="Enter Message" style={{ flex: '1' }} />
|
|
84
|
+
<BmIcons icon={<SendIcon />} size="xlarge" />
|
|
85
|
+
</div>
|
|
86
|
+
</BmChat.Footer>
|
|
87
|
+
</BmChat>
|
|
88
|
+
</>
|
|
9
89
|
);
|
|
10
90
|
};
|
|
11
91
|
|
|
@@ -7,6 +7,7 @@ import styled from 'styled-components';
|
|
|
7
7
|
import BmAvatar from '../../Avatars/avatars';
|
|
8
8
|
import { BmIcons } from '../../iconStyles';
|
|
9
9
|
import { SessionDetails } from './sessionDetails';
|
|
10
|
+
import { SessionTimeline } from './sessionTimeline';
|
|
10
11
|
import {
|
|
11
12
|
BmPrimaryWhite,
|
|
12
13
|
BmPrimaryBlue,
|
|
@@ -250,10 +251,14 @@ BmChat.Details = ({
|
|
|
250
251
|
file,
|
|
251
252
|
fileName,
|
|
252
253
|
sessionDetails,
|
|
254
|
+
sessionTimeline,
|
|
253
255
|
...rest
|
|
254
256
|
}) => {
|
|
255
257
|
return (
|
|
256
258
|
<>
|
|
259
|
+
{sessionTimeline && (
|
|
260
|
+
<SessionTimeline message={sessionTimeline.message} {...rest} />
|
|
261
|
+
)}
|
|
257
262
|
{sessionDetails && (
|
|
258
263
|
<SessionDetails
|
|
259
264
|
time={sessionDetails.time}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
import { BmSecondaryBlue12, BmBgGreyBlue } from '../../colors';
|
|
4
|
+
|
|
5
|
+
const SessionTimelineWrapper = styled.div`
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: row;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
align-items: center;
|
|
10
|
+
text-align: center;
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
const container = styled.div`
|
|
14
|
+
border-radius: 0.714rem 0.714rem 0.714rem 0.714rem;
|
|
15
|
+
border: 0.071rem solid ${BmBgGreyBlue};
|
|
16
|
+
padding: 0.5rem;
|
|
17
|
+
background-color: ${BmSecondaryBlue12};
|
|
18
|
+
`;
|
|
19
|
+
SessionTimelineWrapper.Container = container;
|
|
20
|
+
|
|
21
|
+
export const SessionTimeline = ({ message, time, ...rest }) => {
|
|
22
|
+
return (
|
|
23
|
+
<SessionTimelineWrapper message={message} {...rest}>
|
|
24
|
+
<SessionTimelineWrapper.Container>
|
|
25
|
+
{message || <p> </p>}
|
|
26
|
+
</SessionTimelineWrapper.Container>
|
|
27
|
+
</SessionTimelineWrapper>
|
|
28
|
+
);
|
|
29
|
+
};
|