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.
@@ -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, sessionDetails && /*#__PURE__*/_react.default.createElement(_sessionDetails.SessionDetails, _extends({
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beem-component",
3
- "version": "1.6.9",
3
+ "version": "1.7.0",
4
4
  "private": false,
5
5
  "main": "dist/components/index.js",
6
6
  "scripts": {
package/src/App.js CHANGED
@@ -1,11 +1,91 @@
1
1
  import React from 'react';
2
- import { BmTag } from './lib/components';
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
- <BmTag bgColor="red" variant="primary" color="white">
7
- <p>Hello</p>
8
- </BmTag>
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>&nbsp;</p>}
26
+ </SessionTimelineWrapper.Container>
27
+ </SessionTimelineWrapper>
28
+ );
29
+ };