beem-component 2.0.18 → 2.0.19

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.
@@ -12,6 +12,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
12
  var _reactAvatar = _interopRequireDefault(require("react-avatar"));
13
13
  var _List = _interopRequireDefault(require("@mui/icons-material/List"));
14
14
  var _ShoppingCartOutlined = _interopRequireDefault(require("@mui/icons-material/ShoppingCartOutlined"));
15
+ var _lodash = require("lodash");
16
+ var _reactPdf = require("react-pdf");
15
17
  var _avatars = _interopRequireDefault(require("../../Avatars/avatars"));
16
18
  var _iconStyles = require("../../iconStyles");
17
19
  var _sessionDetails = require("./sessionDetails");
@@ -25,6 +27,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
25
27
  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); }
26
28
  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; }
27
29
  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; }
30
+ _reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = "//cdnjs.cloudflare.com/ajax/libs/pdf.js/".concat(_reactPdf.pdfjs.version, "/pdf.worker.js");
28
31
  var BmChat = _styledComponents.default.div.withConfig({
29
32
  displayName: "chatBody__BmChat"
30
33
  })(["display:flex;flex-direction:column;height:100%;", ""], '' /* border: 0.071rem solid ${BmGrey400}; */);
@@ -380,11 +383,13 @@ var ListReplyRender = function ListReplyRender(_ref28) {
380
383
  var title = _ref28.title,
381
384
  body = _ref28.body,
382
385
  globalButtons = _ref28.globalButtons,
386
+ isInteractive = _ref28.isInteractive,
383
387
  type = _ref28.type,
384
388
  state = _ref28.state;
385
389
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Messages, {
386
390
  type: type,
387
- state: state
391
+ state: state,
392
+ isInteractive: isInteractive
388
393
  }, /*#__PURE__*/_react.default.createElement("strong", null, title), /*#__PURE__*/_react.default.createElement("p", null, body), /*#__PURE__*/_react.default.createElement(IntButton, {
389
394
  state: state
390
395
  }, /*#__PURE__*/_react.default.createElement(_List.default, null), (_globalButtons$ = globalButtons[0]) === null || _globalButtons$ === void 0 ? void 0 : _globalButtons$.title)));
@@ -424,6 +429,7 @@ BmChat.Details = function (_ref30) {
424
429
  isInteractive = _ref30.isInteractive,
425
430
  type = _ref30.type,
426
431
  rest = _objectWithoutProperties(_ref30, _excluded3);
432
+ console.log(src);
427
433
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Details, _extends({
428
434
  state: state
429
435
  }, rest), /*#__PURE__*/_react.default.createElement(MessageState, null, state === 'inbound' && session && handleState({
@@ -432,7 +438,7 @@ BmChat.Details = function (_ref30) {
432
438
  agentName: agentName
433
439
  })), /*#__PURE__*/_react.default.createElement(MessageDetails, {
434
440
  feedPostComments: feedPostComments
435
- }, src && /*#__PURE__*/_react.default.createElement(BmImageChat, _extends({
441
+ }, src && !(0, _lodash.isUndefined)(src) && /*#__PURE__*/_react.default.createElement(BmImageChat, _extends({
436
442
  state: state,
437
443
  src: src,
438
444
  fileName: fileName
@@ -444,7 +450,9 @@ BmChat.Details = function (_ref30) {
444
450
  }, metadata, {
445
451
  type: type,
446
452
  state: state
447
- })) : metadata.type === 'list' ? /*#__PURE__*/_react.default.createElement(ListReplyRender, _extends({}, metadata, {
453
+ })) : metadata.type === 'list' ? /*#__PURE__*/_react.default.createElement(ListReplyRender, _extends({
454
+ isInteractive: true
455
+ }, metadata, {
448
456
  type: type,
449
457
  state: state
450
458
  })) : metadata.type === 'product_details' ? /*#__PURE__*/_react.default.createElement(ProductDetailRender, _extends({
@@ -472,6 +480,14 @@ BmChat.Details = function (_ref30) {
472
480
  })), children.type === 'order' && /*#__PURE__*/_react.default.createElement(OrderRender, _extends({}, children, {
473
481
  type: type,
474
482
  state: state
483
+ }))) : type === 'pdf' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactPdf.Document, {
484
+ file: {
485
+ url: "".concat(file)
486
+ }
487
+ }, /*#__PURE__*/_react.default.createElement(_reactPdf.Page, {
488
+ pageNumber: 1,
489
+ height: "250",
490
+ width: "200"
475
491
  }))) : /*#__PURE__*/_react.default.createElement(Messages, {
476
492
  state: state
477
493
  }, children))), file && /*#__PURE__*/_react.default.createElement(BmFileAttachment, _extends({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beem-component",
3
- "version": "2.0.18",
3
+ "version": "2.0.19",
4
4
  "private": false,
5
5
  "main": "dist/components/index.js",
6
6
  "scripts": {
package/src/App.js CHANGED
@@ -5,6 +5,7 @@ import React from 'react';
5
5
  // import LocalOfferOutlinedIcon from '@mui/icons-material/LocalOfferOutlined';
6
6
 
7
7
  // import { Tooltip } from '@mui/material';
8
+
8
9
  import {
9
10
  BmChat,
10
11
  GlobalStyle,
@@ -109,6 +110,48 @@ const Chat = () => {
109
110
  // '{"dotgoV2":{"type":"quick_reply","content":{"type":"text","header":"HELOOOOOOOOOO", "url": "https://i.imgur.com/BZylAb1.jpeg","text":"We value your opinion! Would you be willing to take a short survey to help us improve?","caption":""},"options":[{"type":"text","title":"Give Feedback","postbackText":"bm-feedback|0|181661e8-9209-4665-ad19-680981136ae8"},{"type":"text","title":"No Thank you","postbackText":"dev-defined-postback2"}]}}',
110
111
  },
111
112
  };
113
+
114
+ const messages = [
115
+ {
116
+ id: 78741,
117
+ message:
118
+ 'https://bm-chatbot-images.s3.eu-west-1.amazonaws.com/1b5a7bd9-a989-4963-8949-88aa748a2469.doc',
119
+ time: '2025-04-03T05:55:39.000Z',
120
+ direction: 'inbound',
121
+ message_type: 'application/msword',
122
+ messageId: null,
123
+ is_live_agent: 0,
124
+ is_deleted: 0,
125
+ is_comment: 0,
126
+ channel: 'whatsapp',
127
+ sent_to_vendor: 1,
128
+ replyMessageId: null,
129
+ agent_name: null,
130
+ df_agent_name: null,
131
+ resolve_time: null,
132
+ metadata: null,
133
+ },
134
+
135
+ {
136
+ id: 78739,
137
+ message:
138
+ 'https://bm-chatbot-images.s3.eu-west-1.amazonaws.com/5f0c7de7-c42b-4a94-b1cd-9fe3554da93d.pdf',
139
+ time: '2025-04-03T05:50:02.000Z',
140
+ direction: 'inbound',
141
+ message_type: 'application/pdf',
142
+ messageId: null,
143
+ is_live_agent: 0,
144
+ is_deleted: 0,
145
+ is_comment: 0,
146
+ channel: 'whatsapp',
147
+ sent_to_vendor: 1,
148
+ replyMessageId: null,
149
+ agent_name: null,
150
+ df_agent_name: null,
151
+ resolve_time: null,
152
+ metadata: null,
153
+ },
154
+ ];
112
155
  // const msg = [
113
156
  // {
114
157
  // message: 'Me as user replying to the beem message',
@@ -1106,6 +1149,71 @@ const Chat = () => {
1106
1149
  ))}
1107
1150
  </BmChat.Body>
1108
1151
  </BmChat> */}
1152
+
1153
+ <BmChat>
1154
+ <BmChat.Body>
1155
+ {messages.map((ms) => {
1156
+ console.log(ms);
1157
+ return (
1158
+ <BmChat.Details
1159
+ key={ms.id}
1160
+ state={ms.direction}
1161
+ session="bot"
1162
+ sessionTimeline={{ message: <p>12:00pm</p> }}
1163
+ displayTime={<p>12:00pm</p>}
1164
+ status="sent"
1165
+ file={ms.message}
1166
+ link={ms.message}
1167
+ fileName={<p>File</p>}
1168
+ type="pdf"
1169
+ style={{ margin: '-0.6% 0 0 0' }}
1170
+ >
1171
+ <p>
1172
+ <a href={ms.message}> </a>
1173
+ </p>
1174
+ </BmChat.Details>
1175
+ );
1176
+ })}
1177
+ </BmChat.Body>
1178
+ </BmChat>
1179
+ <BmChat>
1180
+ <BmChat.Body>
1181
+ {messages.map((ms) => {
1182
+ console.log(ms);
1183
+ return (
1184
+ <BmChat.Details
1185
+ key={ms.id}
1186
+ state={ms.direction}
1187
+ session="bot"
1188
+ sessionTimeline={{ message: <p>12:00pm</p> }}
1189
+ displayTime={<p>12:00pm</p>}
1190
+ status="sent"
1191
+ file={ms.message}
1192
+ link={ms.message}
1193
+ fileName={<p>File</p>}
1194
+ style={{ margin: '-0.6% 0 0 0' }}
1195
+ // state="inbound"
1196
+ // session="live"
1197
+ // displayTime={<p>10:00am</p>}
1198
+ // status="failed"
1199
+ // fileName={<p>file.csv</p>}
1200
+ // file={image}
1201
+ >
1202
+ {' '}
1203
+ <div>
1204
+ {/* <FileViewer
1205
+ fileType="docx"
1206
+ filePath={ms.message}
1207
+ onError={onError}
1208
+ // errorComponent={CustomErrorComponent}
1209
+ // onError={this.onError}
1210
+ /> */}
1211
+ </div>
1212
+ </BmChat.Details>
1213
+ );
1214
+ })}
1215
+ </BmChat.Body>
1216
+ </BmChat>
1109
1217
  </>
1110
1218
  );
1111
1219
  };
@@ -8,6 +8,8 @@ import styled from 'styled-components';
8
8
  import Avatar from 'react-avatar';
9
9
  import ListIcon from '@mui/icons-material/List';
10
10
  import ShoppingCartOutlinedIcon from '@mui/icons-material/ShoppingCartOutlined';
11
+ import { isUndefined } from 'lodash';
12
+ import { Document, pdfjs, Page } from 'react-pdf';
11
13
  import BmAvatar from '../../Avatars/avatars';
12
14
  import { BmIcons } from '../../iconStyles';
13
15
  import { SessionDetails } from './sessionDetails';
@@ -24,6 +26,8 @@ import {
24
26
  } from '../../colors';
25
27
  import { BmFeedPostComments } from './FeedPostComments';
26
28
 
29
+ pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;
30
+
27
31
  const BmChat = styled.div`
28
32
  display: flex;
29
33
  flex-direction: column;
@@ -445,10 +449,17 @@ const ProductDetailRender = ({ type, state, header, body, isInteractive }) => {
445
449
  </>
446
450
  );
447
451
  };
448
- const ListReplyRender = ({ title, body, globalButtons, type, state }) => {
452
+ const ListReplyRender = ({
453
+ title,
454
+ body,
455
+ globalButtons,
456
+ isInteractive,
457
+ type,
458
+ state,
459
+ }) => {
449
460
  return (
450
461
  <>
451
- <Messages type={type} state={state}>
462
+ <Messages type={type} state={state} isInteractive={isInteractive}>
452
463
  <strong>{title}</strong>
453
464
  <p>{body}</p>
454
465
  <IntButton state={state}>
@@ -498,6 +509,7 @@ BmChat.Details = ({
498
509
  type,
499
510
  ...rest
500
511
  }) => {
512
+ console.log(src);
501
513
  return (
502
514
  <>
503
515
  <Details state={state} {...rest}>
@@ -509,7 +521,7 @@ BmChat.Details = ({
509
521
  </MessageState>
510
522
  <MessageDetails feedPostComments={feedPostComments}>
511
523
  {/* For Images */}
512
- {src && (
524
+ {src && !isUndefined(src) && (
513
525
  <BmImageChat
514
526
  state={state}
515
527
  src={src}
@@ -531,7 +543,12 @@ BmChat.Details = ({
531
543
  state={state}
532
544
  />
533
545
  ) : metadata.type === 'list' ? (
534
- <ListReplyRender {...metadata} type={type} state={state} />
546
+ <ListReplyRender
547
+ isInteractive
548
+ {...metadata}
549
+ type={type}
550
+ state={state}
551
+ />
535
552
  ) : metadata.type === 'product_details' ? (
536
553
  <ProductDetailRender
537
554
  isInteractive
@@ -577,6 +594,16 @@ BmChat.Details = ({
577
594
  <OrderRender {...children} type={type} state={state} />
578
595
  )}
579
596
  </>
597
+ ) : type === 'pdf' ? (
598
+ <>
599
+ <Document
600
+ file={{
601
+ url: `${file}`,
602
+ }}
603
+ >
604
+ <Page pageNumber={1} height="250" width="200" />
605
+ </Document>
606
+ </>
580
607
  ) : (
581
608
  <Messages state={state}>{children}</Messages>
582
609
  )}