@plusscommunities/pluss-circles-web 1.5.6 → 1.5.7-beta.2

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
@@ -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
  });
@@ -528,14 +574,14 @@ var Circles = /*#__PURE__*/function (_Component) {
528
574
  circleActions.delete(circle.Id).then(function (res) {
529
575
  _this.getData();
530
576
  }).catch(function (res) {
531
- alert('Something went wrong with the request. Please try again.');
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
  }]);
@@ -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(),
@@ -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({
@@ -1992,8 +2182,8 @@ var Circle = /*#__PURE__*/function (_Component) {
1992
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,
@@ -2007,8 +2197,8 @@ var Circle = /*#__PURE__*/function (_Component) {
2007
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,
@@ -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) {