beem-component 1.7.6 → 1.7.9

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.
@@ -15,6 +15,8 @@ var _Download = _interopRequireDefault(require("@mui/icons-material/Download"));
15
15
 
16
16
  var _styledComponents = _interopRequireDefault(require("styled-components"));
17
17
 
18
+ var _reactAvatar = _interopRequireDefault(require("react-avatar"));
19
+
18
20
  var _avatars = _interopRequireDefault(require("../../Avatars/avatars"));
19
21
 
20
22
  var _iconStyles = require("../../iconStyles");
@@ -29,7 +31,7 @@ var _FeedPostComments = require("./FeedPostComments");
29
31
 
30
32
  var _excluded = ["state", "file", "src", "fileName", "onDownload", "link"],
31
33
  _excluded2 = ["state", "src", "fileName"],
32
- _excluded3 = ["children", "state", "displayTime", "status", "session", "src", "file", "fileName", "sessionDetails", "sessionTimeline", "feedPostComments"];
34
+ _excluded3 = ["children", "state", "displayTime", "status", "session", "src", "file", "fileName", "sessionDetails", "sessionTimeline", "feedPostComments", "agentName"];
33
35
 
34
36
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
35
37
 
@@ -108,7 +110,8 @@ var MessagesSubDetails = _styledComponents.default.div(_templateObject6 || (_tem
108
110
  });
109
111
 
110
112
  var handleState = function handleState(_ref6) {
111
- var session = _ref6.session;
113
+ var session = _ref6.session,
114
+ agentName = _ref6.agentName;
112
115
 
113
116
  if (session === 'bot') {
114
117
  return /*#__PURE__*/_react.default.createElement(_avatars.default, {
@@ -118,6 +121,14 @@ var handleState = function handleState(_ref6) {
118
121
  }
119
122
 
120
123
  if (session === 'live') {
124
+ if (agentName) {
125
+ return /*#__PURE__*/_react.default.createElement(_reactAvatar.default, {
126
+ name: agentName,
127
+ size: "25px",
128
+ round: true
129
+ });
130
+ }
131
+
121
132
  return /*#__PURE__*/_react.default.createElement(_avatars.default, {
122
133
  size: "small",
123
134
  user: "employee"
@@ -262,18 +273,15 @@ BmChat.Details = function (_ref15) {
262
273
  sessionDetails = _ref15.sessionDetails,
263
274
  sessionTimeline = _ref15.sessionTimeline,
264
275
  feedPostComments = _ref15.feedPostComments,
276
+ agentName = _ref15.agentName,
265
277
  rest = _objectWithoutProperties(_ref15, _excluded3);
266
278
 
267
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, sessionTimeline && /*#__PURE__*/_react.default.createElement(_sessionTimeline.SessionTimeline, _extends({
268
- message: sessionTimeline.message
269
- }, rest)), sessionDetails && /*#__PURE__*/_react.default.createElement(_sessionDetails.SessionDetails, _extends({
270
- time: sessionDetails.time,
271
- message: sessionDetails.message
272
- }, rest)), /*#__PURE__*/_react.default.createElement(Details, _extends({
279
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Details, _extends({
273
280
  state: state
274
281
  }, rest), /*#__PURE__*/_react.default.createElement(MessageState, null, state === 'inbound' && session && handleState({
275
282
  state: state,
276
- session: session
283
+ session: session,
284
+ agentName: agentName
277
285
  })), /*#__PURE__*/_react.default.createElement(MessageDetails, {
278
286
  feedPostComments: feedPostComments
279
287
  }, src && /*#__PURE__*/_react.default.createElement(BmImageChat, _extends({
@@ -301,8 +309,14 @@ BmChat.Details = function (_ref15) {
301
309
  size: "small"
302
310
  }))), /*#__PURE__*/_react.default.createElement(MessageState, null, state === 'outbound' && session && handleState({
303
311
  state: state,
304
- session: session
305
- }))));
312
+ session: session,
313
+ agentName: agentName
314
+ }))), sessionTimeline && /*#__PURE__*/_react.default.createElement(_sessionTimeline.SessionTimeline, _extends({
315
+ message: sessionTimeline.message
316
+ }, rest)), sessionDetails && /*#__PURE__*/_react.default.createElement(_sessionDetails.SessionDetails, _extends({
317
+ time: sessionDetails.time,
318
+ message: sessionDetails.message
319
+ }, rest)));
306
320
  };
307
321
 
308
322
  BmChat.Footer = _styledComponents.default.div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n padding: 0.5rem 0.5rem;\n > *:not(:last-child) {\n margin-bottom: 0.5rem;\n }\n"])));
@@ -58,6 +58,9 @@ var ChatBody = function ChatBody() {
58
58
  session: "sms",
59
59
  displayTime: /*#__PURE__*/_react.default.createElement("p", null, "12:00pm"),
60
60
  status: "sent",
61
+ sessionTimeline: {
62
+ message: /*#__PURE__*/_react.default.createElement("p", null, "12:00pm")
63
+ },
61
64
  sessionDetails: {
62
65
  message: /*#__PURE__*/_react.default.createElement("h3", null, "Session Message"),
63
66
  time: /*#__PURE__*/_react.default.createElement("p", null, "12:00pm")
@@ -151,7 +154,17 @@ var ChatBody = function ChatBody() {
151
154
  onDownload: function onDownload() {
152
155
  alert('hello');
153
156
  }
154
- })), /*#__PURE__*/_react.default.createElement(_chatBody.default.Footer, null, /*#__PURE__*/_react.default.createElement("div", {
157
+ }), /*#__PURE__*/_react.default.createElement(_chatBody.default.Details, {
158
+ agentName: "Agent Name",
159
+ state: "outbound",
160
+ session: "live",
161
+ displayTime: /*#__PURE__*/_react.default.createElement("p", null, "12:00pm"),
162
+ status: "sent",
163
+ sessionDetails: {
164
+ message: /*#__PURE__*/_react.default.createElement("h3", null, "Session Message"),
165
+ time: /*#__PURE__*/_react.default.createElement("p", null, "12:00pm")
166
+ }
167
+ }, /*#__PURE__*/_react.default.createElement("p", null, "Outbound Text Message"))), /*#__PURE__*/_react.default.createElement(_chatBody.default.Footer, null, /*#__PURE__*/_react.default.createElement("div", {
155
168
  className: "chat-footer"
156
169
  }, /*#__PURE__*/_react.default.createElement(_iconStyles.BmIcons, {
157
170
  icon: /*#__PURE__*/_react.default.createElement(_EmojiEmotions.default, null),
@@ -25,7 +25,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
25
25
 
26
26
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
27
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"])));
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 margin-bottom: 0.5rem;\n margin-top: 0.5rem;\n"])));
29
29
 
30
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
31
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beem-component",
3
- "version": "1.7.6",
3
+ "version": "1.7.9",
4
4
  "private": false,
5
5
  "main": "dist/components/index.js",
6
6
  "scripts": {
@@ -43,7 +43,9 @@
43
43
  "polished": "^4.1.3",
44
44
  "prop-types": "^15.8.1",
45
45
  "react": "^17.0.2",
46
+ "react-avatar": "^5.0.3",
46
47
  "react-dom": "^17.0.2",
48
+ "react-lettered-avatar": "^1.0.2",
47
49
  "react-router-dom": "^5.3.0",
48
50
  "react-scripts": "^5.0.1",
49
51
  "save": "^2.4.0",
package/src/App.js CHANGED
@@ -1,21 +1,26 @@
1
- import React, { useState } from 'react';
1
+ import React from 'react';
2
2
 
3
3
  import AttachFileIcon from '@mui/icons-material/AttachFile';
4
4
  import EmojiEmotionsIcon from '@mui/icons-material/EmojiEmotions';
5
5
  import SendIcon from '@mui/icons-material/Send';
6
6
  import QuickreplyIcon from '@mui/icons-material/Quickreply';
7
- import { BmCheckboxToggle } from './lib/components';
8
7
  import {
9
8
  BmChat,
10
9
  BmInput,
11
10
  BmIcons,
12
11
  GlobalStyle,
13
12
  BmProfileIcon,
13
+ BmContactCard,
14
+ BmTag,
15
+ BmCounter,
16
+ BmAvatar,
17
+
18
+ // BmCheckboxToggle,
14
19
  } from './lib/components';
15
20
 
16
21
  const Chat = () => {
17
- const [test, setTest] = useState(false);
18
- const [test1, setTest1] = useState(false);
22
+ // const [test, setTest] = useState(false);
23
+ // const [test1, setTest1] = useState(false);
19
24
 
20
25
  const image =
21
26
  'https://scontent.fnbo1-1.fna.fbcdn.net/v/t39.30808-6/298879098_10161724947807542_5252175668064009159_n.jpg?stp=dst-jpg_p720x720&_nc_cat=100&ccb=1-7&_nc_sid=9e2e56&_nc_ohc=9uDHII_ETpUAX_KNS3Y&_nc_ht=scontent.fnbo1-1.fna&edm=APCh5TUEAAAA&oh=00_AT8sOJmRGYwgXF48_GPOCWx1soil0yK8V3AiEPkce9WJIw&oe=6304120B';
@@ -26,14 +31,15 @@ const Chat = () => {
26
31
  <BmChat>
27
32
  <BmChat.Body>
28
33
  <BmChat.Details
29
- state="outbound"
34
+ state="inbound"
30
35
  session="sms"
31
36
  displayTime={<p>12:00pm</p>}
32
37
  status="sent"
33
- sessionDetails={{
34
- message: <h3>Session Message</h3>,
35
- time: <p>12:00pm</p>,
36
- }}
38
+ sessionTimeline={{ message: <p>12:00pm</p> }}
39
+ // sessionDetails={{
40
+ // message: <h3>Session Message</h3>,
41
+ // time: <p>12:00pm</p>,
42
+ // }}
37
43
  feedPostComments={{
38
44
  header: <p>Comment Reply</p>,
39
45
  body: {
@@ -41,15 +47,25 @@ const Chat = () => {
41
47
  image,
42
48
  },
43
49
  footer: <p>This is a Footer</p>,
44
- state: 'outbound',
50
+ state: 'inbound',
45
51
  status: 'comment',
46
52
  }}
47
53
  />
48
54
  <BmChat.Details
55
+ state="inbound"
56
+ session="live"
57
+ displayTime={<p>10:00am</p>}
58
+ sessionTimeline={{ message: <p>12:00pm</p> }}
59
+ status="failed"
60
+ fileName={<p>file.csv</p>}
61
+ file={image}
62
+ />
63
+ {/* <BmChat.Details
49
64
  state="inbound"
50
65
  session="sms"
51
66
  displayTime={<p>12:00pm</p>}
52
67
  status="sent"
68
+ sessionTimeline={{ message: <p>12:00pm</p> }}
53
69
  sessionDetails={{
54
70
  message: <h3>Session Message</h3>,
55
71
  time: <p>12:00pm</p>,
@@ -70,6 +86,7 @@ const Chat = () => {
70
86
  session="sms"
71
87
  displayTime={<p>12:00pm</p>}
72
88
  status="sent"
89
+ sessionTimeline={{ message: <p>12:00pm</p> }}
73
90
  sessionDetails={{
74
91
  message: <h3>Session Message</h3>,
75
92
  time: <p>12:00pm</p>,
@@ -85,11 +102,40 @@ const Chat = () => {
85
102
  status: 'story',
86
103
  }}
87
104
  />
105
+ <BmChat.Details
106
+ agentName="Agent Name"
107
+ state="outbound"
108
+ session="live"
109
+ displayTime={<p>12:00pm</p>}
110
+ status="sent"
111
+ sessionDetails={{
112
+ message: <h3>Session Message</h3>,
113
+ time: <p>12:00pm</p>,
114
+ }}
115
+ >
116
+ <p>Outbound Text Message2</p>
117
+ </BmChat.Details>
118
+
119
+ <BmChat.Details
120
+ agentName="Test Agent"
121
+ state="outbound"
122
+ session="live"
123
+ displayTime={<p>12:00pm</p>}
124
+ status="sent"
125
+ sessionDetails={{
126
+ message: <h3>Session Message</h3>,
127
+ time: <p>12:00pm</p>,
128
+ }}
129
+ >
130
+ <p>Outbound Text Message2</p>
131
+ </BmChat.Details>
132
+
88
133
  <BmChat.Details
89
134
  state="inbound"
90
135
  session="sms"
91
136
  displayTime={<p>12:00pm</p>}
92
137
  status="sent"
138
+ sessionTimeline={{ message: <p>12:00pm</p> }}
93
139
  sessionDetails={{
94
140
  message: <h3>Session Message</h3>,
95
141
  time: <p>12:00pm</p>,
@@ -110,6 +156,7 @@ const Chat = () => {
110
156
  session="live"
111
157
  displayTime={<p>12:00pm</p>}
112
158
  status="sent"
159
+ sessionTimeline={{ message: <p>12:00pm</p> }}
113
160
  fileName={<p>chat.png</p>}
114
161
  src={image}
115
162
  sessionDetails={{
@@ -121,6 +168,7 @@ const Chat = () => {
121
168
  state="inbound"
122
169
  session="live"
123
170
  displayTime={<p>10:00am</p>}
171
+ sessionTimeline={{ message: <p>12:00pm</p> }}
124
172
  status="failed"
125
173
  fileName={<p>file.csv</p>}
126
174
  file={image}
@@ -128,6 +176,7 @@ const Chat = () => {
128
176
  <BmChat.Details
129
177
  state="outbound"
130
178
  session="bot"
179
+ sessionTimeline={{ message: <p>12:00pm</p> }}
131
180
  displayTime={<p>12:00pm</p>}
132
181
  status="sent"
133
182
  >
@@ -136,6 +185,7 @@ const Chat = () => {
136
185
  <BmChat.Details
137
186
  state="outbound"
138
187
  session="live"
188
+ sessionTimeline={{ message: <p>12:00pm</p> }}
139
189
  displayTime={<p>12:00pm</p>}
140
190
  status="sent"
141
191
  fileName={<p>chat.png</p>}
@@ -147,12 +197,13 @@ const Chat = () => {
147
197
  displayTime={<p>10:00am</p>}
148
198
  status="failed"
149
199
  fileName={<p>file.csv</p>}
200
+ sessionTimeline={{ message: <p>12:00pm</p> }}
150
201
  file={image}
151
202
  link={image}
152
203
  onDownload={() => {
153
204
  alert('hello');
154
205
  }}
155
- />
206
+ /> */}
156
207
  </BmChat.Body>
157
208
  <BmChat.Footer>
158
209
  <div className="chat-footer">
@@ -165,12 +216,12 @@ const Chat = () => {
165
216
  </BmChat.Footer>
166
217
  </BmChat>
167
218
 
168
- <BmCheckboxToggle
219
+ {/* <BmCheckboxToggle
169
220
  key="test"
170
221
  checked={test}
171
222
  onChange={(check) => {
172
223
  console.log(check);
173
- setTest(check)
224
+ setTest(check);
174
225
  }}
175
226
  />
176
227
 
@@ -179,9 +230,33 @@ const Chat = () => {
179
230
  checked={test1}
180
231
  onChange={(check) => {
181
232
  console.log(check);
182
- setTest(check)
233
+ setTest(check);
183
234
  }}
184
- />
235
+
236
+
237
+ /> */}
238
+
239
+ <BmContactCard>
240
+ <BmContactCard.Profile>
241
+ <BmAvatar user="chatbot" size="medium" />
242
+ </BmContactCard.Profile>
243
+ <BmContactCard.Details>
244
+ <BmContactCard.SubDetails>
245
+ <h3>Contact Names</h3>
246
+ </BmContactCard.SubDetails>
247
+ <BmContactCard.SubDetails>
248
+ <p>
249
+ Message ijofdsg fogijfdogi odfigj ofdigj fdoigj odfigj ofdigj
250
+ odfigj ofdigj ofdijg dofigj dfoig jodfigj text
251
+ </p>
252
+ <BmCounter>10</BmCounter>
253
+ </BmContactCard.SubDetails>
254
+ <BmContactCard.SubDetails>
255
+ <BmTag variant="success">label</BmTag>
256
+ <p>10:00 am</p>
257
+ </BmContactCard.SubDetails>
258
+ </BmContactCard.Details>
259
+ </BmContactCard>
185
260
  </>
186
261
  );
187
262
  };
@@ -4,10 +4,12 @@ import { Done, DoneAll } from '@material-ui/icons';
4
4
  import FilePresentIcon from '@mui/icons-material/FilePresent';
5
5
  import DownloadIcon from '@mui/icons-material/Download';
6
6
  import styled from 'styled-components';
7
+ import Avatar from 'react-avatar';
7
8
  import BmAvatar from '../../Avatars/avatars';
8
9
  import { BmIcons } from '../../iconStyles';
9
10
  import { SessionDetails } from './sessionDetails';
10
11
  import { SessionTimeline } from './sessionTimeline';
12
+
11
13
  import {
12
14
  BmPrimaryWhite,
13
15
  BmPrimaryBlue,
@@ -113,11 +115,14 @@ const MessagesSubDetails = styled.div`
113
115
  margin-top: 0.5rem;
114
116
  `;
115
117
 
116
- const handleState = ({ session }) => {
118
+ const handleState = ({ session, agentName }) => {
117
119
  if (session === 'bot') {
118
120
  return <BmAvatar size="small" user="chatbot" />;
119
121
  }
120
122
  if (session === 'live') {
123
+ if (agentName) {
124
+ return <Avatar name={agentName} size="25px" round />;
125
+ }
121
126
  return <BmAvatar size="small" user="employee" />;
122
127
  }
123
128
  if (session === 'sms') {
@@ -261,24 +266,17 @@ BmChat.Details = ({
261
266
  sessionDetails,
262
267
  sessionTimeline,
263
268
  feedPostComments,
269
+ agentName,
264
270
  ...rest
265
271
  }) => {
266
272
  return (
267
273
  <>
268
- {sessionTimeline && (
269
- <SessionTimeline message={sessionTimeline.message} {...rest} />
270
- )}
271
- {sessionDetails && (
272
- <SessionDetails
273
- time={sessionDetails.time}
274
- message={sessionDetails.message}
275
- {...rest}
276
- />
277
- )}
278
274
  <Details state={state} {...rest}>
279
275
  {/* Adding for mobile */}
280
276
  <MessageState>
281
- {state === 'inbound' && session && handleState({ state, session })}
277
+ {state === 'inbound' &&
278
+ session &&
279
+ handleState({ state, session, agentName })}
282
280
  </MessageState>
283
281
  <MessageDetails feedPostComments={feedPostComments}>
284
282
  {/* For Images */}
@@ -327,9 +325,22 @@ BmChat.Details = ({
327
325
  </MessagesSubDetails>
328
326
  </MessageDetails>
329
327
  <MessageState>
330
- {state === 'outbound' && session && handleState({ state, session })}
328
+ {state === 'outbound' &&
329
+ session &&
330
+ handleState({ state, session, agentName })}
331
331
  </MessageState>
332
332
  </Details>
333
+
334
+ {sessionTimeline && (
335
+ <SessionTimeline message={sessionTimeline.message} {...rest} />
336
+ )}
337
+ {sessionDetails && (
338
+ <SessionDetails
339
+ time={sessionDetails.time}
340
+ message={sessionDetails.message}
341
+ {...rest}
342
+ />
343
+ )}
333
344
  </>
334
345
  );
335
346
  };
@@ -43,6 +43,7 @@ export const ChatBody = () => {
43
43
  session="sms"
44
44
  displayTime={<p>12:00pm</p>}
45
45
  status="sent"
46
+ sessionTimeline={{ message: <p>12:00pm</p> }}
46
47
  sessionDetails={{
47
48
  message: <h3>Session Message</h3>,
48
49
  time: <p>12:00pm</p>,
@@ -146,6 +147,19 @@ export const ChatBody = () => {
146
147
  alert('hello');
147
148
  }}
148
149
  />
150
+ <BmChat.Details
151
+ agentName="Agent Name"
152
+ state="outbound"
153
+ session="live"
154
+ displayTime={<p>12:00pm</p>}
155
+ status="sent"
156
+ sessionDetails={{
157
+ message: <h3>Session Message</h3>,
158
+ time: <p>12:00pm</p>,
159
+ }}
160
+ >
161
+ <p>Outbound Text Message</p>
162
+ </BmChat.Details>
149
163
  </BmChat.Body>
150
164
  <BmChat.Footer>
151
165
  <div className="chat-footer">
@@ -8,6 +8,8 @@ const SessionTimelineWrapper = styled.div`
8
8
  justify-content: center;
9
9
  align-items: center;
10
10
  text-align: center;
11
+ margin-bottom: 0.5rem;
12
+ margin-top: 0.5rem;
11
13
  `;
12
14
 
13
15
  const container = styled.div`