@plusscommunities/pluss-circles-web-groups 1.5.4-auth.0 → 1.5.5-auth.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/index.cjs.js CHANGED
@@ -107,7 +107,7 @@ var FeatureConfig = {
107
107
  title: "Allow for public ".concat(values.entityName, "s"),
108
108
  description: "Public ".concat(values.entityName, "s can be viewed and joined by anyone in the community."),
109
109
  defaultNew: values.allowPublicKeyDefault,
110
- "default": values.allowPublicKeyDefault
110
+ default: values.allowPublicKeyDefault
111
111
  }],
112
112
  featurePickerInfo: {
113
113
  image: 'https://pluss-prd-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:80aecdcb-9955-493e-a341-2f2263f64777/public/e4a5948c40908e2137f0a65eb1/groups.jpg',
@@ -248,7 +248,7 @@ var circleActions = {
248
248
  }
249
249
  });
250
250
  },
251
- "delete": function _delete(circleId) {
251
+ delete: function _delete(circleId) {
252
252
  return Session$4.authedFunction({
253
253
  method: 'POST',
254
254
  url: Helper$3.getUrl(values.serviceKey, 'update/delete'),
@@ -376,12 +376,46 @@ var circleActions = {
376
376
  }
377
377
 
378
378
  return deleteMessage;
379
+ }(),
380
+ markAsRead: function () {
381
+ var _markAsRead = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4(circleId, userId) {
382
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
383
+ while (1) {
384
+ switch (_context4.prev = _context4.next) {
385
+ case 0:
386
+ return _context4.abrupt("return", Session$4.authedFunction({
387
+ method: 'post',
388
+ url: Helper$3.getUrl('groups', 'resetunread'),
389
+ data: {
390
+ groupID: circleId,
391
+ userID: userId
392
+ }
393
+ }));
394
+
395
+ case 1:
396
+ case "end":
397
+ return _context4.stop();
398
+ }
399
+ }
400
+ }, _callee4);
401
+ }));
402
+
403
+ function markAsRead(_x9, _x10) {
404
+ return _markAsRead.apply(this, arguments);
405
+ }
406
+
407
+ return markAsRead;
379
408
  }()
380
409
  };
381
410
 
382
411
  var Apis$1 = PlussCore__namespace.Apis;
383
412
  var analyticsActions = Apis$1.analyticsActions;
384
413
 
414
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
415
+
416
+ var css = "/* Badge styling for unread count */\n:root {\n --badge-bg-color: #597db4; /* COLOUR_BRANDING_OFF */\n}\n\n.badgeTag {\n font-size: 11px;\n font-weight: 400;\n padding: 3px 10px;\n background-color: var(--badge-bg-color) !important;\n color: #fff !important;\n border-radius: 999px !important;\n border: none !important;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n letter-spacing: 0.02em;\n}\n\n/* Unread filter info banner */\n.unreadFilterBanner {\n background-color: #f0f4f8;\n border-left: 3px solid var(--badge-bg-color);\n border-radius: 4px;\n padding: 12px 16px;\n margin-top: 16px;\n margin-bottom: 16px;\n display: flex;\n align-items: center;\n}\n\n.unreadFilterContent {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n}\n\n.unreadFilterIcon {\n font-size: 16px;\n color: var(--badge-bg-color);\n flex-shrink: 0;\n}\n\n.unreadFilterText {\n font-size: 14px;\n line-height: 1.5;\n color: #333333;\n}\n\n.unreadFilterButton {\n background: none;\n border: none;\n color: var(--badge-bg-color);\n font-size: 14px;\n font-weight: 500;\n text-decoration: underline;\n cursor: pointer;\n padding: 4px 8px;\n margin-left: 4px;\n min-height: 32px;\n min-width: 32px;\n transition: all 0.2s ease;\n}\n\n.unreadFilterButton:hover {\n background-color: rgba(89, 125, 180, 0.1);\n text-decoration: none;\n}\n\n.unreadFilterButton:focus {\n outline: 2px solid var(--badge-bg-color);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n/* Mobile responsiveness */\n@media (max-width: 768px) {\n .unreadFilterBanner {\n flex-direction: column;\n align-items: flex-start;\n padding: 12px;\n }\n\n .unreadFilterContent {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .unreadFilterText {\n font-size: 13px;\n }\n}\n\n";
417
+ n(css,{});
418
+
385
419
  function _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
386
420
 
387
421
  function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -418,7 +452,7 @@ var Circles = /*#__PURE__*/function (_Component) {
418
452
 
419
453
  case 3:
420
454
  res = _context.sent;
421
- console.log('getData', res.data);
455
+ console.log("getData", res.data);
422
456
 
423
457
  _this.props.circlesLoaded(res.data);
424
458
 
@@ -432,7 +466,7 @@ var Circles = /*#__PURE__*/function (_Component) {
432
466
  case 9:
433
467
  _context.prev = 9;
434
468
  _context.t0 = _context["catch"](0);
435
- console.error('getData', _context.t0);
469
+ console.error("getData", _context.t0);
436
470
 
437
471
  _this.setState({
438
472
  loadingAll: false
@@ -447,6 +481,12 @@ var Circles = /*#__PURE__*/function (_Component) {
447
481
  })));
448
482
  });
449
483
 
484
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "selectUnreadFilter", function (showUnreadOnly) {
485
+ _this.setState({
486
+ showUnreadOnly: showUnreadOnly
487
+ });
488
+ });
489
+
450
490
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "canAddNew", function () {
451
491
  var auth = _this.props.auth;
452
492
  return Session$3.validateAccess(auth.site, values.permission, auth);
@@ -514,9 +554,15 @@ var Circles = /*#__PURE__*/function (_Component) {
514
554
  });
515
555
  });
516
556
 
557
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "selectSort", function (sortType) {
558
+ _this.setState({
559
+ sortBy: sortType
560
+ });
561
+ });
562
+
517
563
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandleChange", function (event) {
518
564
  var stateChange = {};
519
- stateChange[event.target.getAttribute('id')] = event.target.value;
565
+ stateChange[event.target.getAttribute("id")] = event.target.value;
520
566
 
521
567
  _this.setState(stateChange);
522
568
  });
@@ -525,17 +571,17 @@ var Circles = /*#__PURE__*/function (_Component) {
525
571
  if (window.confirm("Are you sure you want to delete that ".concat(values.entityName, "? You will no longer be able to access the messages in the ").concat(values.entityName, "."))) {
526
572
  _this.props.circleRemoved(circle.Id);
527
573
 
528
- circleActions["delete"](circle.Id).then(function (res) {
574
+ circleActions.delete(circle.Id).then(function (res) {
529
575
  _this.getData();
530
- })["catch"](function (res) {
531
- alert('Something went wrong with the request. Please try again.');
576
+ }).catch(function (res) {
577
+ alert("Something went wrong with the request. Please try again.");
532
578
  });
533
579
  }
534
580
  });
535
581
 
536
582
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getTypeFilterText", function (type) {
537
- if (type === 'private') {
538
- return 'Private Message';
583
+ if (type === "private") {
584
+ return "Private Message";
539
585
  }
540
586
 
541
587
  return ___default['default'].capitalize(values.entityName);
@@ -545,14 +591,17 @@ var Circles = /*#__PURE__*/function (_Component) {
545
591
  if (circle.IsPrivate) {
546
592
  return "PM: ".concat(circle.Audience.map(function (user) {
547
593
  return user.displayName;
548
- }).join(', '));
594
+ }).join(", "));
549
595
  }
550
596
 
551
597
  return circle.Title;
552
598
  });
553
599
 
554
600
  _this.state = {
555
- userSearch: ''
601
+ userSearch: "",
602
+ sortBy: "newest",
603
+ showUnreadOnly: false,
604
+ pollingInterval: null
556
605
  };
557
606
  return _this;
558
607
  }
@@ -560,27 +609,77 @@ var Circles = /*#__PURE__*/function (_Component) {
560
609
  _createClass__default['default'](Circles, [{
561
610
  key: "componentDidMount",
562
611
  value: function componentDidMount() {
563
- this.getData();
612
+ var _this2 = this;
613
+
614
+ this.getData(); // Poll for updates every 10 seconds
615
+
616
+ this.pollingInterval = setInterval(function () {
617
+ _this2.getData();
618
+ }, 10000);
619
+ }
620
+ }, {
621
+ key: "componentWillUnmount",
622
+ value: function componentWillUnmount() {
623
+ if (this.pollingInterval) {
624
+ clearInterval(this.pollingInterval);
625
+ }
626
+ }
627
+ }, {
628
+ key: "isCircleUnread",
629
+ value: function isCircleUnread(circle) {
630
+ var userId = this.props.user.Id;
631
+
632
+ if (!circle.Unread || !circle.Unread[userId]) {
633
+ return false;
634
+ }
635
+
636
+ return circle.Unread[userId] > 0;
637
+ }
638
+ }, {
639
+ key: "getUnreadCount",
640
+ value: function getUnreadCount(circle) {
641
+ var userId = this.props.user.Id;
642
+
643
+ if (!circle.Unread || !circle.Unread[userId]) {
644
+ return 0;
645
+ }
646
+
647
+ return circle.Unread[userId];
564
648
  }
565
649
  }, {
566
650
  key: "getCircles",
567
651
  value: function getCircles() {
568
- var _this2 = this;
652
+ var _this3 = this;
569
653
 
570
654
  var result = this.props.circles;
571
655
 
572
656
  if (this.state.selectedTypeFilter) {
573
657
  result = ___default['default'].filter(result, function (circle) {
574
- return _this2.state.selectedTypeFilter === 'circle' ? !circle.IsPrivate : circle.IsPrivate;
658
+ return _this3.state.selectedTypeFilter === "circle" ? !circle.IsPrivate : circle.IsPrivate;
575
659
  });
576
660
  }
577
661
 
578
662
  if (this.state.selectedUserFilter) {
579
663
  result = ___default['default'].filter(result, function (circle) {
580
664
  return ___default['default'].some(circle.Audience, function (user) {
581
- return user.userId === _this2.state.selectedUserFilter.userId;
665
+ return user.userId === _this3.state.selectedUserFilter.userId;
582
666
  });
583
667
  });
668
+ } // Apply sorting
669
+
670
+
671
+ result = ___default['default'].sortBy(result, function (circle) {
672
+ return moment__default['default'](circle.Changed).valueOf();
673
+ });
674
+
675
+ if (this.state.sortBy === "newest") {
676
+ result.reverse();
677
+
678
+ if (this.state.showUnreadOnly) {
679
+ result = ___default['default'].filter(result, function (circle) {
680
+ return _this3.isCircleUnread(circle);
681
+ });
682
+ }
584
683
  }
585
684
 
586
685
  return result;
@@ -588,7 +687,7 @@ var Circles = /*#__PURE__*/function (_Component) {
588
687
  }, {
589
688
  key: "getUsers",
590
689
  value: function getUsers() {
591
- var _this3 = this;
690
+ var _this4 = this;
592
691
 
593
692
  var users = [];
594
693
  this.props.circles.forEach(function (circle) {
@@ -598,10 +697,10 @@ var Circles = /*#__PURE__*/function (_Component) {
598
697
  });
599
698
  users = ___default['default'].sortBy(___default['default'].uniqBy(users, function (user) {
600
699
  return user.userId;
601
- }), 'displayName');
700
+ }), "displayName");
602
701
  return ___default['default'].filter(users, function (u) {
603
- if (!___default['default'].isEmpty(_this3.state.userSearch)) {
604
- return (u.displayName || '').toLowerCase().indexOf(_this3.state.userSearch.toLowerCase()) > -1;
702
+ if (!___default['default'].isEmpty(_this4.state.userSearch)) {
703
+ return (u.displayName || "").toLowerCase().indexOf(_this4.state.userSearch.toLowerCase()) > -1;
605
704
  }
606
705
 
607
706
  return true;
@@ -610,7 +709,7 @@ var Circles = /*#__PURE__*/function (_Component) {
610
709
  }, {
611
710
  key: "validateCircleAdmin",
612
711
  value: function validateCircleAdmin(circle, onlyCreator) {
613
- var _this4 = this;
712
+ var _this5 = this;
614
713
 
615
714
  if (Session$3.validateAccess(this.props.auth.site, values.permission, this.props.auth)) {
616
715
  return true;
@@ -621,21 +720,31 @@ var Circles = /*#__PURE__*/function (_Component) {
621
720
  }
622
721
 
623
722
  return ___default['default'].some(circle.Audience, function (user) {
624
- return user.userId === _this4.props.user.Id && user.isAdmin;
723
+ return user.userId === _this5.props.user.Id && user.isAdmin;
625
724
  });
626
725
  }
627
726
  }, {
628
727
  key: "renderRow",
629
728
  value: function renderRow(circle) {
630
- var _this5 = this;
729
+ var _this6 = this;
631
730
 
731
+ var unreadCount = this.getUnreadCount(circle);
732
+ var badge = unreadCount > 0 ? /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
733
+ className: css.badgeTag,
734
+ text: "".concat(unreadCount, " new")
735
+ }) : null;
632
736
  return /*#__PURE__*/React__default['default'].createElement("tr", {
633
737
  key: circle.Id
634
738
  }, /*#__PURE__*/React__default['default'].createElement("td", {
635
739
  className: "table-TitleColumn"
740
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
741
+ className: "flex flex-center",
742
+ style: {
743
+ gap: "8px"
744
+ }
636
745
  }, /*#__PURE__*/React__default['default'].createElement(reactRouterDom.Link, {
637
746
  to: "/".concat(values.featureKey, "/").concat(values.entityKey, "/").concat(circle.Id)
638
- }, this.getTitle(circle))), /*#__PURE__*/React__default['default'].createElement("td", null, moment__default['default'](circle.Changed).local().format('D MMM YYYY')), /*#__PURE__*/React__default['default'].createElement("td", null, circle.Audience.map(function (user) {
747
+ }, this.getTitle(circle)), badge)), /*#__PURE__*/React__default['default'].createElement("td", null, moment__default['default'](circle.Changed).local().format("D MMM YYYY")), /*#__PURE__*/React__default['default'].createElement("td", null, circle.Audience.map(function (user) {
639
748
  return /*#__PURE__*/React__default['default'].createElement(Components$4.ProfilePic, {
640
749
  size: 30,
641
750
  image: user.profilePic,
@@ -646,8 +755,8 @@ var Circles = /*#__PURE__*/function (_Component) {
646
755
  className: "table-options"
647
756
  }, /*#__PURE__*/React__default['default'].createElement("div", {
648
757
  style: {
649
- display: 'flex',
650
- alignItems: 'center'
758
+ display: "flex",
759
+ alignItems: "center"
651
760
  }
652
761
  }, this.validateCircleAdmin(circle) && !circle.IsPrivate && /*#__PURE__*/React__default['default'].createElement(reactRouterDom.Link, {
653
762
  to: "/".concat(values.featureKey, "/edit/").concat(circle.Id)
@@ -656,31 +765,69 @@ var Circles = /*#__PURE__*/function (_Component) {
656
765
  fontSize: 20,
657
766
  padding: 5,
658
767
  marginLeft: 12,
659
- cursor: 'pointer'
768
+ cursor: "pointer"
660
769
  },
661
770
  name: "pencil"
662
771
  })), this.validateCircleAdmin(circle, true) && !circle.IsPrivate && /*#__PURE__*/React__default['default'].createElement("a", {
663
772
  onClick: function onClick() {
664
- _this5.removeCircle(circle);
773
+ _this6.removeCircle(circle);
665
774
  }
666
775
  }, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
667
776
  style: {
668
777
  fontSize: 20,
669
778
  padding: 5,
670
779
  marginLeft: 12,
671
- cursor: 'pointer'
780
+ cursor: "pointer"
672
781
  },
673
782
  name: "minus-circle"
674
783
  })))));
675
784
  }
785
+ }, {
786
+ key: "renderUnreadFilterInfo",
787
+ value: function renderUnreadFilterInfo() {
788
+ var _this7 = this;
789
+
790
+ var showUnreadOnly = this.state.showUnreadOnly;
791
+
792
+ if (!showUnreadOnly) {
793
+ return null;
794
+ }
795
+
796
+ return /*#__PURE__*/React__default['default'].createElement("div", {
797
+ className: css.unreadFilterBanner
798
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
799
+ className: css.unreadFilterContent
800
+ }, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
801
+ name: "info-circle",
802
+ className: css.unreadFilterIcon
803
+ }), /*#__PURE__*/React__default['default'].createElement("span", {
804
+ className: css.unreadFilterText
805
+ }, "Showing only items with new messages.", " ", /*#__PURE__*/React__default['default'].createElement("button", {
806
+ className: css.unreadFilterButton,
807
+ onClick: function onClick() {
808
+ return _this7.selectUnreadFilter(false);
809
+ },
810
+ "aria-label": "Turn off unread filter"
811
+ }, "Turn off filter"))));
812
+ }
676
813
  }, {
677
814
  key: "renderFilters",
678
815
  value: function renderFilters() {
816
+ var _this8 = this;
817
+
679
818
  var userFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
680
819
  className: "marginRight-10",
681
820
  onClick: this.openUserFilter,
682
821
  text: "User"
683
822
  });
823
+ var unreadFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
824
+ className: "marginRight-10",
825
+ onClick: function onClick() {
826
+ return _this8.selectUnreadFilter(!_this8.state.showUnreadOnly);
827
+ },
828
+ leftIcon: this.state.showUnreadOnly ? "check" : null,
829
+ text: "Unread Only"
830
+ });
684
831
  var typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
685
832
  className: "marginRight-10",
686
833
  onClick: this.openTypeFilter,
@@ -715,12 +862,28 @@ var Circles = /*#__PURE__*/function (_Component) {
715
862
  }, /*#__PURE__*/React__default['default'].createElement(Components$4.Text, {
716
863
  type: "h5",
717
864
  className: "marginRight-20"
718
- }, "Filter by"), userFilter, typeFilter);
865
+ }, "Filter by"), userFilter, typeFilter, unreadFilter, /*#__PURE__*/React__default['default'].createElement(Components$4.Text, {
866
+ type: "h5",
867
+ className: "marginRight-20 marginLeft-20"
868
+ }, "Sort by:"), /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
869
+ className: "marginRight-10",
870
+ onClick: function onClick() {
871
+ return _this8.selectSort("newest");
872
+ },
873
+ leftIcon: this.state.sortBy === "newest" ? "check" : null,
874
+ text: "Newest first"
875
+ }), /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
876
+ onClick: function onClick() {
877
+ return _this8.selectSort("oldest");
878
+ },
879
+ leftIcon: this.state.sortBy === "oldest" ? "check" : null,
880
+ text: "Oldest first"
881
+ }));
719
882
  }
720
883
  }, {
721
884
  key: "renderUserFilterPopup",
722
885
  value: function renderUserFilterPopup() {
723
- var _this6 = this;
886
+ var _this9 = this;
724
887
 
725
888
  if (!this.state.userFilterOpen) {
726
889
  return null;
@@ -740,7 +903,7 @@ var Circles = /*#__PURE__*/function (_Component) {
740
903
  placeholder: "Enter name",
741
904
  value: this.state.userSearch,
742
905
  onChange: function onChange(e) {
743
- return _this6.onHandleChange(e);
906
+ return _this9.onHandleChange(e);
744
907
  },
745
908
  alwaysShowLabel: true
746
909
  }), this.getUsers().map(function (user) {
@@ -748,7 +911,7 @@ var Circles = /*#__PURE__*/function (_Component) {
748
911
  key: user.userId,
749
912
  user: user,
750
913
  onClick: function onClick() {
751
- _this6.selectUserFilter(user);
914
+ _this9.selectUserFilter(user);
752
915
  }
753
916
  });
754
917
  }));
@@ -756,7 +919,7 @@ var Circles = /*#__PURE__*/function (_Component) {
756
919
  }, {
757
920
  key: "renderTypeFilterPopup",
758
921
  value: function renderTypeFilterPopup() {
759
- var _this7 = this;
922
+ var _this10 = this;
760
923
 
761
924
  if (!this.state.typeFilterOpen) {
762
925
  return null;
@@ -770,13 +933,13 @@ var Circles = /*#__PURE__*/function (_Component) {
770
933
  onClose: this.closeTypeFilter
771
934
  }, /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
772
935
  onClick: function onClick() {
773
- _this7.selectTypeFilter('circle');
936
+ _this10.selectTypeFilter("circle");
774
937
  },
775
938
  text: ___default['default'].capitalize(values.entityName),
776
939
  className: "marginRight-10"
777
940
  }), /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
778
941
  onClick: function onClick() {
779
- _this7.selectTypeFilter('private');
942
+ _this10.selectTypeFilter("private");
780
943
  },
781
944
  text: "Private Message"
782
945
  }));
@@ -784,7 +947,7 @@ var Circles = /*#__PURE__*/function (_Component) {
784
947
  }, {
785
948
  key: "render",
786
949
  value: function render() {
787
- var _this8 = this;
950
+ var _this11 = this;
788
951
 
789
952
  return /*#__PURE__*/React__default['default'].createElement("div", null, this.renderTypeFilterPopup(), this.renderUserFilterPopup(), /*#__PURE__*/React__default['default'].createElement(Components$4.Header, null, this.canAddNew() && /*#__PURE__*/React__default['default'].createElement(Components$4.AddButton, {
790
953
  onClick: this.onAddNew,
@@ -794,21 +957,21 @@ var Circles = /*#__PURE__*/function (_Component) {
794
957
  }, /*#__PURE__*/React__default['default'].createElement(Components$4.Text, {
795
958
  type: "h1",
796
959
  className: ""
797
- }, values.textFeatureTitle), this.renderFilters(), /*#__PURE__*/React__default['default'].createElement(reactBootstrap.Table, {
960
+ }, values.textFeatureTitle), this.renderFilters(), this.renderUnreadFilterInfo(), /*#__PURE__*/React__default['default'].createElement(reactBootstrap.Table, {
798
961
  className: "plussTable",
799
962
  striped: true,
800
963
  bordered: true,
801
964
  condensed: true,
802
965
  hover: true,
803
966
  style: {
804
- minWidth: '100%'
967
+ minWidth: "100%"
805
968
  }
806
969
  }, /*#__PURE__*/React__default['default'].createElement("thead", null, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("th", null, "Title"), /*#__PURE__*/React__default['default'].createElement("th", null, "Last updated"), /*#__PURE__*/React__default['default'].createElement("th", null, "Members"), /*#__PURE__*/React__default['default'].createElement("th", {
807
970
  style: {
808
971
  width: 50
809
972
  }
810
973
  }))), /*#__PURE__*/React__default['default'].createElement("tbody", null, this.getCircles().map(function (circle) {
811
- return _this8.renderRow(circle);
974
+ return _this11.renderRow(circle);
812
975
  })))));
813
976
  }
814
977
  }]);
@@ -870,7 +1033,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
870
1033
  if (res.data != null && !___default['default'].isEmpty(res.data.results.Items)) {
871
1034
  _this.setState({
872
1035
  users: ___default['default'].sortBy(res.data.results.Items, function (u) {
873
- return (u.displayName || '').toLowerCase();
1036
+ return (u.displayName || "").toLowerCase();
874
1037
  }).map(function (u) {
875
1038
  return _objectSpread$4(_objectSpread$4({}, u), {}, {
876
1039
  userId: u.userId || u.Id
@@ -878,7 +1041,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
878
1041
  })
879
1042
  });
880
1043
  }
881
- })["catch"](function (error) {
1044
+ }).catch(function (error) {
882
1045
  _this.setState({
883
1046
  loadingAll: false
884
1047
  });
@@ -894,7 +1057,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
894
1057
  }
895
1058
 
896
1059
  if (!___default['default'].isEmpty(_this.state.userSearch)) {
897
- return (u.displayName || '').toLowerCase().indexOf(_this.state.userSearch.toLowerCase()) > -1;
1060
+ return (u.displayName || "").toLowerCase().indexOf(_this.state.userSearch.toLowerCase()) > -1;
898
1061
  }
899
1062
 
900
1063
  return true;
@@ -948,7 +1111,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
948
1111
 
949
1112
  case 3:
950
1113
  res = _context.sent;
951
- console.log('getData', res.data);
1114
+ console.log("getData", res.data);
952
1115
  circle = ___default['default'].find(res.data, function (c) {
953
1116
  return c.Id === _this.state.circleId;
954
1117
  });
@@ -968,7 +1131,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
968
1131
  case 11:
969
1132
  _context.prev = 11;
970
1133
  _context.t0 = _context["catch"](0);
971
- console.error('getData', _context.t0);
1134
+ console.error("getData", _context.t0);
972
1135
 
973
1136
  _this.setState({
974
1137
  loadingAll: false
@@ -985,7 +1148,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
985
1148
 
986
1149
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandleChange", function (event) {
987
1150
  var stateChange = {};
988
- stateChange[event.target.getAttribute('id')] = event.target.value;
1151
+ stateChange[event.target.getAttribute("id")] = event.target.value;
989
1152
 
990
1153
  _this.setState(stateChange);
991
1154
  });
@@ -1008,7 +1171,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1008
1171
  };
1009
1172
 
1010
1173
  if (___default['default'].isEmpty(_this.state.title) && ___default['default'].includes(newState.selectedUsers, user)) {
1011
- newState.title = "".concat(user.displayName.split(' ')[0], "'s Circle");
1174
+ newState.title = "".concat(user.displayName.split(" ")[0], "'s Circle");
1012
1175
  }
1013
1176
 
1014
1177
  _this.setState(newState);
@@ -1049,17 +1212,17 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1049
1212
  updating: false
1050
1213
  });
1051
1214
 
1052
- console.log('success');
1215
+ console.log("success");
1053
1216
 
1054
1217
  _this.props.circleUpdated(res.data);
1055
- })["catch"](function (err) {
1056
- console.log('error');
1218
+ }).catch(function (err) {
1219
+ console.log("error");
1057
1220
 
1058
1221
  _this.setState({
1059
1222
  updating: false
1060
1223
  });
1061
1224
 
1062
- alert('Something went wrong with the request. Please try again.');
1225
+ alert("Something went wrong with the request. Please try again.");
1063
1226
  });
1064
1227
  } else {
1065
1228
  circleActions.add(_this.props.auth.site, _this.state.title, _this.state.image, audience, _this.state.isPublic).then(function (res) {
@@ -1068,17 +1231,17 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1068
1231
  updating: false
1069
1232
  });
1070
1233
 
1071
- console.log('success');
1234
+ console.log("success");
1072
1235
 
1073
1236
  _this.props.circleUpdated(res.data);
1074
- })["catch"](function (err) {
1075
- console.log('error');
1237
+ }).catch(function (err) {
1238
+ console.log("error");
1076
1239
 
1077
1240
  _this.setState({
1078
1241
  updating: false
1079
1242
  });
1080
1243
 
1081
- alert('Something went wrong with the request. Please try again.');
1244
+ alert("Something went wrong with the request. Please try again.");
1082
1245
  });
1083
1246
  }
1084
1247
  });
@@ -1099,20 +1262,20 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1099
1262
  });
1100
1263
  });
1101
1264
 
1102
- var circleId = Helper$1.safeReadParams(props, 'circleId');
1265
+ var circleId = Helper$1.safeReadParams(props, "circleId");
1103
1266
  _this.state = {
1104
1267
  circleId: circleId,
1105
1268
  circle: ___default['default'].find(props.circles, function (c) {
1106
1269
  return c.Id === circleId;
1107
1270
  }),
1108
- title: '',
1271
+ title: "",
1109
1272
  showWarnings: false,
1110
1273
  success: false,
1111
1274
  users: [],
1112
1275
  selectedUsers: [],
1113
- userSearch: '',
1276
+ userSearch: "",
1114
1277
  isPublic: false,
1115
- selectedOption: 'visibility'
1278
+ selectedOption: "visibility"
1116
1279
  };
1117
1280
  return _this;
1118
1281
  }
@@ -1167,9 +1330,9 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1167
1330
  value: function renderSuccess() {
1168
1331
  if (!this.state.success) return null;
1169
1332
  return /*#__PURE__*/React__default['default'].createElement(Components$3.SuccessPopup, {
1170
- text: "".concat(___default['default'].capitalize(values.entityName), " has been ").concat(this.state.circleId == null ? 'added' : 'edited'),
1333
+ text: "".concat(___default['default'].capitalize(values.entityName), " has been ").concat(this.state.circleId == null ? "added" : "edited"),
1171
1334
  buttons: [{
1172
- type: 'outlined',
1335
+ type: "outlined",
1173
1336
  onClick: function onClick() {
1174
1337
  window.history.back();
1175
1338
  },
@@ -1216,7 +1379,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1216
1379
  label: "Do you want to make this ".concat(values.entityName, " a public ").concat(values.entityName, "?"),
1217
1380
  isActive: this.state.isPublic,
1218
1381
  options: [{
1219
- Label: 'Yes',
1382
+ Label: "Yes",
1220
1383
  Value: true,
1221
1384
  onChange: function onChange() {
1222
1385
  return _this5.setState({
@@ -1224,7 +1387,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1224
1387
  });
1225
1388
  }
1226
1389
  }, {
1227
- Label: 'No',
1390
+ Label: "No",
1228
1391
  Value: false,
1229
1392
  onChange: function onChange() {
1230
1393
  return _this5.setState({
@@ -1244,7 +1407,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1244
1407
  value: function renderSelectedOption() {
1245
1408
  return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("div", {
1246
1409
  style: {
1247
- display: this.state.selectedOption === 'visibility' ? 'block' : 'none'
1410
+ display: this.state.selectedOption === "visibility" ? "block" : "none"
1248
1411
  }
1249
1412
  }, this.renderVisibility()));
1250
1413
  }
@@ -1252,14 +1415,14 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1252
1415
  key: "renderOptionsSection",
1253
1416
  value: function renderOptionsSection() {
1254
1417
  var options = [{
1255
- key: 'visibility',
1256
- icon: 'people3',
1257
- text: 'Visibility'
1418
+ key: "visibility",
1419
+ icon: "people3",
1420
+ text: "Visibility"
1258
1421
  }];
1259
1422
 
1260
1423
  if (!this.props.circleAllowPublicCircles) {
1261
1424
  options = ___default['default'].filter(options, function (o) {
1262
- return o.key !== 'visibility';
1425
+ return o.key !== "visibility";
1263
1426
  });
1264
1427
  }
1265
1428
 
@@ -1283,7 +1446,7 @@ var AddCircle = /*#__PURE__*/function (_Component) {
1283
1446
  }, /*#__PURE__*/React__default['default'].createElement(Components$3.Text, {
1284
1447
  type: "formTitleLarge",
1285
1448
  className: "marginBottom-24"
1286
- }, this.state.circleId == null ? 'New' : 'Edit', " ", ___default['default'].capitalize(values.entityName)), /*#__PURE__*/React__default['default'].createElement("div", {
1449
+ }, this.state.circleId == null ? "New" : "Edit", " ", ___default['default'].capitalize(values.entityName)), /*#__PURE__*/React__default['default'].createElement("div", {
1287
1450
  className: "flex flex-reverse"
1288
1451
  }, /*#__PURE__*/React__default['default'].createElement(Components$3.ImageInput, {
1289
1452
  ref: function ref(_ref2) {
@@ -1467,7 +1630,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1467
1630
 
1468
1631
  case 3:
1469
1632
  res = _context.sent;
1470
- console.log('getData', res.data);
1633
+ console.log("getData", res.data);
1471
1634
  circle = ___default['default'].find(res.data, function (c) {
1472
1635
  return c.Id === _this.state.circleId;
1473
1636
  });
@@ -1485,7 +1648,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1485
1648
  case 10:
1486
1649
  _context.prev = 10;
1487
1650
  _context.t0 = _context["catch"](0);
1488
- console.error('getData', _context.t0);
1651
+ console.error("getData", _context.t0);
1489
1652
 
1490
1653
  _this.setState({
1491
1654
  loadingAll: false
@@ -1517,8 +1680,8 @@ var Circle = /*#__PURE__*/function (_Component) {
1517
1680
  while (1) {
1518
1681
  switch (_context2.prev = _context2.next) {
1519
1682
  case 0:
1520
- startOf = moment__default['default'](date, 'YYYY-MM-DD').startOf('d');
1521
- endOf = moment__default['default'](date, 'YYYY-MM-DD').endOf('d');
1683
+ startOf = moment__default['default'](date, "YYYY-MM-DD").startOf("d");
1684
+ endOf = moment__default['default'](date, "YYYY-MM-DD").endOf("d");
1522
1685
  _context2.next = 4;
1523
1686
  return circleActions.getMessages(_this.state.circleId, 10000, startOf.valueOf(), endOf.valueOf());
1524
1687
 
@@ -1572,13 +1735,13 @@ var Circle = /*#__PURE__*/function (_Component) {
1572
1735
  var circle = _this.state.circle;
1573
1736
 
1574
1737
  if (!circle) {
1575
- return '';
1738
+ return "";
1576
1739
  }
1577
1740
 
1578
1741
  if (circle.IsPrivate) {
1579
1742
  return "PM: ".concat(circle.Audience.map(function (user) {
1580
1743
  return user.displayName;
1581
- }).join(', '));
1744
+ }).join(", "));
1582
1745
  }
1583
1746
 
1584
1747
  return circle.Title;
@@ -1586,13 +1749,13 @@ var Circle = /*#__PURE__*/function (_Component) {
1586
1749
 
1587
1750
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandleChange", function (event) {
1588
1751
  var stateChange = {};
1589
- stateChange[event.target.getAttribute('id')] = event.target.value;
1752
+ stateChange[event.target.getAttribute("id")] = event.target.value;
1590
1753
 
1591
1754
  _this.setState(stateChange);
1592
1755
  });
1593
1756
 
1594
1757
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onImageUpdated", function (image) {
1595
- console.log('updated image');
1758
+ console.log("updated image");
1596
1759
  console.log(image);
1597
1760
 
1598
1761
  _this.setState({
@@ -1608,7 +1771,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1608
1771
  });
1609
1772
 
1610
1773
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onFileUpdated", function (url) {
1611
- console.log('updated url');
1774
+ console.log("updated url");
1612
1775
  console.log(url);
1613
1776
 
1614
1777
  _this.setState({
@@ -1629,7 +1792,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1629
1792
  });
1630
1793
 
1631
1794
  if (m) {
1632
- var input = document.getElementById('messageInput');
1795
+ var input = document.getElementById("messageInput");
1633
1796
  if (input) input.focus();
1634
1797
  }
1635
1798
  });
@@ -1637,7 +1800,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1637
1800
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "handleMessageDateChange", function (date) {
1638
1801
  _this.setState({
1639
1802
  messageDate: date,
1640
- messageDateText: moment__default['default'](date, 'YYYY-MM-DD').format('DD/MM/YYYY'),
1803
+ messageDateText: moment__default['default'](date, "YYYY-MM-DD").format("DD/MM/YYYY"),
1641
1804
  showMessageDate: false,
1642
1805
  messages: []
1643
1806
  });
@@ -1675,7 +1838,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1675
1838
  });
1676
1839
 
1677
1840
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onKeyDown", function (event) {
1678
- if (event.key === 'Enter' && !event.shiftKey) {
1841
+ if (event.key === "Enter" && !event.shiftKey) {
1679
1842
  event.preventDefault();
1680
1843
 
1681
1844
  _this.sendMessage();
@@ -1710,7 +1873,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1710
1873
  if (m._id === messageToDelete._id) {
1711
1874
  return _objectSpread$3(_objectSpread$3({}, m), {}, {
1712
1875
  deleted: true,
1713
- text: ' '
1876
+ text: " "
1714
1877
  });
1715
1878
  }
1716
1879
 
@@ -1740,7 +1903,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1740
1903
  case 11:
1741
1904
  _context4.prev = 11;
1742
1905
  _context4.t0 = _context4["catch"](5);
1743
- console.error('Failed to delete message:', _context4.t0); // Revert the optimistic update on failure
1906
+ console.error("Failed to delete message:", _context4.t0); // Revert the optimistic update on failure
1744
1907
 
1745
1908
  revertedMessages = _this.state.messages.map(function (m) {
1746
1909
  if (m._id === messageToDelete._id) {
@@ -1755,7 +1918,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1755
1918
  deletingMessageId: null
1756
1919
  });
1757
1920
 
1758
- alert('Failed to delete message. Please try again.');
1921
+ alert("Failed to delete message. Please try again.");
1759
1922
 
1760
1923
  case 17:
1761
1924
  case "end":
@@ -1772,6 +1935,32 @@ var Circle = /*#__PURE__*/function (_Component) {
1772
1935
  });
1773
1936
  });
1774
1937
 
1938
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "markCircleAsRead", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5() {
1939
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
1940
+ while (1) {
1941
+ switch (_context5.prev = _context5.next) {
1942
+ case 0:
1943
+ _context5.prev = 0;
1944
+ _context5.next = 3;
1945
+ return circleActions.markAsRead(_this.state.circleId, _this.props.user.Id);
1946
+
1947
+ case 3:
1948
+ _context5.next = 8;
1949
+ break;
1950
+
1951
+ case 5:
1952
+ _context5.prev = 5;
1953
+ _context5.t0 = _context5["catch"](0);
1954
+ console.error("Failed to mark circle as read:", _context5.t0);
1955
+
1956
+ case 8:
1957
+ case "end":
1958
+ return _context5.stop();
1959
+ }
1960
+ }
1961
+ }, _callee5, null, [[0, 5]]);
1962
+ })));
1963
+
1775
1964
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "sendMessage", function () {
1776
1965
  var message = {
1777
1966
  _id: Helper.randomString(),
@@ -1813,7 +2002,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1813
2002
 
1814
2003
  _this.setState({
1815
2004
  messages: [].concat(_toConsumableArray__default['default'](_this.state.messages), [clonedMessage]),
1816
- messageInput: '',
2005
+ messageInput: "",
1817
2006
  imageInput: null,
1818
2007
  imageInputShowing: false,
1819
2008
  fileInput: null,
@@ -1830,13 +2019,13 @@ var Circle = /*#__PURE__*/function (_Component) {
1830
2019
  }, 100);
1831
2020
  });
1832
2021
 
1833
- var circleId = Helper.safeReadParams(props, 'circleId');
2022
+ var circleId = Helper.safeReadParams(props, "circleId");
1834
2023
  _this.state = {
1835
2024
  circleId: circleId,
1836
2025
  circle: ___default['default'].find(props.circles, function (c) {
1837
2026
  return c.Id === circleId;
1838
2027
  }),
1839
- messageInput: '',
2028
+ messageInput: "",
1840
2029
  messages: [],
1841
2030
  images: [],
1842
2031
  files: [],
@@ -1856,6 +2045,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1856
2045
  _createClass__default['default'](Circle, [{
1857
2046
  key: "componentDidMount",
1858
2047
  value: function componentDidMount() {
2048
+ this.markCircleAsRead();
1859
2049
  this.checkGetData();
1860
2050
  this.connect();
1861
2051
  this.props.setNavData({
@@ -1885,7 +2075,7 @@ var Circle = /*#__PURE__*/function (_Component) {
1885
2075
  value: function mergeMessages(receivedMessages, excludePending) {
1886
2076
  var _this2 = this;
1887
2077
 
1888
- var newMessages = ___default['default'].sortBy(___default['default'].concat(this.state.messages, receivedMessages), 'createdAt');
2078
+ var newMessages = ___default['default'].sortBy(___default['default'].concat(this.state.messages, receivedMessages), "createdAt");
1889
2079
 
1890
2080
  this.setState({
1891
2081
  messages: ___default['default'].filter(___default['default'].uniqBy(newMessages, function (m) {
@@ -1979,21 +2169,21 @@ var Circle = /*#__PURE__*/function (_Component) {
1979
2169
  },
1980
2170
  onKeyDown: this.onKeyDown
1981
2171
  }), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
1982
- className: "chat_imageIcon".concat(this.state.imageInputShowing ? ' chat_imageIcon-selected' : ''),
2172
+ className: "chat_imageIcon".concat(this.state.imageInputShowing ? " chat_imageIcon-selected" : ""),
1983
2173
  name: "camera",
1984
2174
  onClick: this.showImageInput
1985
2175
  }), /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
1986
- className: "chat_imageIcon".concat(this.state.fileInputShowing ? ' chat_imageIcon-selected' : ''),
2176
+ className: "chat_imageIcon".concat(this.state.fileInputShowing ? " chat_imageIcon-selected" : ""),
1987
2177
  name: "paperclip",
1988
2178
  onClick: this.showFileInput
1989
2179
  })), /*#__PURE__*/React__default['default'].createElement("div", {
1990
2180
  className: "overflow-x",
1991
2181
  style: {
1992
- display: this.state.imageInputShowing ? 'block' : 'none'
2182
+ display: this.state.imageInputShowing ? "block" : "none"
1993
2183
  }
1994
2184
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.ImageInput, {
1995
- ref: function ref(_ref5) {
1996
- _this5.imageInput = _ref5;
2185
+ ref: function ref(_ref6) {
2186
+ _this5.imageInput = _ref6;
1997
2187
  },
1998
2188
  multiple: true,
1999
2189
  limit: 10,
@@ -2004,11 +2194,11 @@ var Circle = /*#__PURE__*/function (_Component) {
2004
2194
  })), /*#__PURE__*/React__default['default'].createElement("div", {
2005
2195
  className: "overflow-x",
2006
2196
  style: {
2007
- display: this.state.fileInputShowing ? 'block' : 'none'
2197
+ display: this.state.fileInputShowing ? "block" : "none"
2008
2198
  }
2009
2199
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.FileInput, {
2010
- ref: function ref(_ref6) {
2011
- _this5.fileInput = _ref6;
2200
+ ref: function ref(_ref7) {
2201
+ _this5.fileInput = _ref7;
2012
2202
  },
2013
2203
  multiple: true,
2014
2204
  limit: 10,
@@ -2038,11 +2228,11 @@ var Circle = /*#__PURE__*/function (_Component) {
2038
2228
  var isDeleting = this.state.deletingMessageId === m._id;
2039
2229
  return /*#__PURE__*/React__default['default'].createElement("div", {
2040
2230
  key: m._id,
2041
- className: "message".concat(isSelf ? ' message-self' : '').concat(m.uploading ? ' message-uploading' : '').concat(isDeleting ? ' message-deleting' : '')
2231
+ className: "message".concat(isSelf ? " message-self" : "").concat(m.uploading ? " message-uploading" : "").concat(isDeleting ? " message-deleting" : "")
2042
2232
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2043
2233
  type: "h5-noUpper",
2044
2234
  className: "message_time"
2045
- }, moment__default['default'].utc(m.createdAt).local().format('D MMM YYYY • h:mma')), /*#__PURE__*/React__default['default'].createElement("div", {
2235
+ }, moment__default['default'].utc(m.createdAt).local().format("D MMM YYYY • h:mma")), /*#__PURE__*/React__default['default'].createElement("div", {
2046
2236
  className: "message_inner"
2047
2237
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.ProfilePic, {
2048
2238
  size: 40,
@@ -2053,17 +2243,17 @@ var Circle = /*#__PURE__*/function (_Component) {
2053
2243
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2054
2244
  type: "body",
2055
2245
  className: "message_name"
2056
- }, m.user.name, m.replyingTo && !isDeleted ? " replied to ".concat(m.replyingTo.user.name) : ''), m.replyingTo && !isDeleted && /*#__PURE__*/React__default['default'].createElement("div", {
2246
+ }, m.user.name, m.replyingTo && !isDeleted ? " replied to ".concat(m.replyingTo.user.name) : ""), m.replyingTo && !isDeleted && /*#__PURE__*/React__default['default'].createElement("div", {
2057
2247
  className: "message_replyBubble"
2058
2248
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2059
2249
  type: "body",
2060
2250
  className: "message_text"
2061
- }, Helper.toParagraphed((m.replyingTo.text || '').substr(0, 100)))), /*#__PURE__*/React__default['default'].createElement("div", {
2251
+ }, Helper.toParagraphed((m.replyingTo.text || "").substr(0, 100)))), /*#__PURE__*/React__default['default'].createElement("div", {
2062
2252
  className: "message_bubble"
2063
2253
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2064
2254
  type: "body",
2065
2255
  className: "message_text"
2066
- }, isDeleted ? '[Message deleted]' : Helper.toParagraphed(m.text)), !isDeleted && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", null, (m.image || []).map(function (url, i) {
2256
+ }, isDeleted ? "[Message deleted]" : Helper.toParagraphed(m.text)), !isDeleted && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", null, (m.image || []).map(function (url, i) {
2067
2257
  return /*#__PURE__*/React__default['default'].createElement("a", {
2068
2258
  href: url,
2069
2259
  target: "_blank",
@@ -2082,8 +2272,8 @@ var Circle = /*#__PURE__*/function (_Component) {
2082
2272
  })))), !isDeleted && /*#__PURE__*/React__default['default'].createElement("div", {
2083
2273
  className: "message_reply",
2084
2274
  style: {
2085
- display: 'flex',
2086
- gap: '16px'
2275
+ display: "flex",
2276
+ gap: "16px"
2087
2277
  }
2088
2278
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2089
2279
  type: "button",
@@ -2120,7 +2310,7 @@ var Circle = /*#__PURE__*/function (_Component) {
2120
2310
  value: function renderEmptyDate() {
2121
2311
  return this.renderMessage({
2122
2312
  system: true,
2123
- text: 'No messages on this date'
2313
+ text: "No messages on this date"
2124
2314
  });
2125
2315
  }
2126
2316
  }, {
@@ -2135,7 +2325,7 @@ var Circle = /*#__PURE__*/function (_Component) {
2135
2325
  className: "chat_section_titleSection"
2136
2326
  }, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
2137
2327
  className: "chat_section_titleSection_caret",
2138
- name: "chevron-".concat(this.state.membersExpanded ? 'up' : 'down'),
2328
+ name: "chevron-".concat(this.state.membersExpanded ? "up" : "down"),
2139
2329
  onClick: this.toggleMembers
2140
2330
  }), /*#__PURE__*/React__default['default'].createElement("div", {
2141
2331
  className: "flex-1"
@@ -2153,7 +2343,7 @@ var Circle = /*#__PURE__*/function (_Component) {
2153
2343
  className: "chat_section_titleSection"
2154
2344
  }, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
2155
2345
  className: "chat_section_titleSection_caret",
2156
- name: "chevron-".concat(this.state.imagesExpanded ? 'up' : 'down'),
2346
+ name: "chevron-".concat(this.state.imagesExpanded ? "up" : "down"),
2157
2347
  onClick: this.toggleImages
2158
2348
  }), /*#__PURE__*/React__default['default'].createElement("div", {
2159
2349
  className: "flex-1"
@@ -2176,7 +2366,7 @@ var Circle = /*#__PURE__*/function (_Component) {
2176
2366
  className: "chat_section_titleSection"
2177
2367
  }, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
2178
2368
  className: "chat_section_titleSection_caret",
2179
- name: "chevron-".concat(this.state.filesExpanded ? 'up' : 'down'),
2369
+ name: "chevron-".concat(this.state.filesExpanded ? "up" : "down"),
2180
2370
  onClick: this.toggleFiles
2181
2371
  }), /*#__PURE__*/React__default['default'].createElement("div", {
2182
2372
  className: "flex-1"
@@ -2207,7 +2397,7 @@ var Circle = /*#__PURE__*/function (_Component) {
2207
2397
  className: "chat_replyTo_container"
2208
2398
  }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2209
2399
  type: "h5"
2210
- }, "Replying to ", m && m.user && !___default['default'].isEmpty(m.user.displayName) ? m.user.displayName : ''), m && !___default['default'].isEmpty(m.text) && /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2400
+ }, "Replying to", " ", m && m.user && !___default['default'].isEmpty(m.user.displayName) ? m.user.displayName : ""), m && !___default['default'].isEmpty(m.text) && /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2211
2401
  type: "body"
2212
2402
  }, m.text.substr(0, 50))), /*#__PURE__*/React__default['default'].createElement("div", {
2213
2403
  className: "chat_replyTo_remove"
@@ -2227,14 +2417,14 @@ var Circle = /*#__PURE__*/function (_Component) {
2227
2417
  return /*#__PURE__*/React__default['default'].createElement(Components$2.Popup, {
2228
2418
  title: "Delete Message",
2229
2419
  buttons: [{
2230
- text: 'Delete',
2420
+ text: "Delete",
2231
2421
  onClick: this.onConfirmDelete,
2232
- type: 'primary',
2422
+ type: "primary",
2233
2423
  isActive: true
2234
2424
  }, {
2235
- text: 'Cancel',
2425
+ text: "Cancel",
2236
2426
  onClick: this.onCancelDelete,
2237
- type: 'tertiary',
2427
+ type: "tertiary",
2238
2428
  isActive: true
2239
2429
  }],
2240
2430
  onClose: this.onCancelDelete,
@@ -2251,8 +2441,8 @@ var Circle = /*#__PURE__*/function (_Component) {
2251
2441
  return /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPage, {
2252
2442
  fullPage: true,
2253
2443
  fullPageStyle: {
2254
- display: 'flex',
2255
- flexDirection: 'column'
2444
+ display: "flex",
2445
+ flexDirection: "column"
2256
2446
  }
2257
2447
  }, this.renderDeleteConfirmPopup(), /*#__PURE__*/React__default['default'].createElement(Components$2.Header, {
2258
2448
  rightContent: this.renderHeaderRight()
@@ -2302,8 +2492,8 @@ var Circle = /*#__PURE__*/function (_Component) {
2302
2492
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2303
2493
  className: "chat_newMessage"
2304
2494
  }, this.renderChatInput()), this.renderReplyTo(), /*#__PURE__*/React__default['default'].createElement("div", {
2305
- ref: function ref(_ref7) {
2306
- return _this8.chat = _ref7;
2495
+ ref: function ref(_ref8) {
2496
+ return _this8.chat = _ref8;
2307
2497
  },
2308
2498
  className: "chat_messages"
2309
2499
  }, ___default['default'].isEmpty(this.state.messages) && !___default['default'].isEmpty(this.state.messageDate) && this.renderEmptyDate(), this.state.messages.map(function (m) {