@selfcommunity/react-ui 0.6.0-alpha.7 → 0.6.0-alpha.8

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.
Files changed (35) hide show
  1. package/lib/cjs/components/BroadcastMessages/BroadcastMessages.d.ts.map +1 -1
  2. package/lib/cjs/components/BroadcastMessages/BroadcastMessages.js +4 -0
  3. package/lib/cjs/components/BroadcastMessages/BroadcastMessages.js.map +1 -1
  4. package/lib/cjs/components/FeedObject/Actions/Actions.d.ts.map +1 -1
  5. package/lib/cjs/components/FeedObject/Actions/Actions.js +5 -2
  6. package/lib/cjs/components/FeedObject/Actions/Actions.js.map +1 -1
  7. package/lib/cjs/components/FeedObject/Actions/Reaction/Reaction.d.ts +33 -0
  8. package/lib/cjs/components/FeedObject/Actions/Reaction/Reaction.d.ts.map +1 -0
  9. package/lib/cjs/components/FeedObject/Actions/Reaction/Reaction.js +483 -0
  10. package/lib/cjs/components/FeedObject/Actions/Reaction/Reaction.js.map +1 -0
  11. package/lib/cjs/components/FeedObject/Actions/Reaction/index.d.ts +3 -0
  12. package/lib/cjs/components/FeedObject/Actions/Reaction/index.d.ts.map +1 -0
  13. package/lib/cjs/components/FeedObject/Actions/Reaction/index.js +8 -0
  14. package/lib/cjs/components/FeedObject/Actions/Reaction/index.js.map +1 -0
  15. package/lib/cjs/components/FeedObject/Actions/Vote/Vote.js +1 -1
  16. package/lib/cjs/components/FeedObject/Actions/Vote/Vote.js.map +1 -1
  17. package/lib/esm/components/BroadcastMessages/BroadcastMessages.d.ts.map +1 -1
  18. package/lib/esm/components/BroadcastMessages/BroadcastMessages.js +4 -0
  19. package/lib/esm/components/BroadcastMessages/BroadcastMessages.js.map +1 -1
  20. package/lib/esm/components/FeedObject/Actions/Actions.d.ts.map +1 -1
  21. package/lib/esm/components/FeedObject/Actions/Actions.js +6 -3
  22. package/lib/esm/components/FeedObject/Actions/Actions.js.map +1 -1
  23. package/lib/esm/components/FeedObject/Actions/Reaction/Reaction.d.ts +33 -0
  24. package/lib/esm/components/FeedObject/Actions/Reaction/Reaction.d.ts.map +1 -0
  25. package/lib/esm/components/FeedObject/Actions/Reaction/Reaction.js +453 -0
  26. package/lib/esm/components/FeedObject/Actions/Reaction/Reaction.js.map +1 -0
  27. package/lib/esm/components/FeedObject/Actions/Reaction/index.d.ts +3 -0
  28. package/lib/esm/components/FeedObject/Actions/Reaction/index.d.ts.map +1 -0
  29. package/lib/esm/components/FeedObject/Actions/Reaction/index.js +3 -0
  30. package/lib/esm/components/FeedObject/Actions/Reaction/index.js.map +1 -0
  31. package/lib/esm/components/FeedObject/Actions/Vote/Vote.js +1 -1
  32. package/lib/esm/components/FeedObject/Actions/Vote/Vote.js.map +1 -1
  33. package/lib/umd/react-ui.js +1 -1
  34. package/lib/umd/react-ui.js.map +1 -1
  35. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"BroadcastMessages.d.ts","sourceRoot":"","sources":["../../../../src/components/BroadcastMessages/BroadcastMessages.tsx"],"names":[],"mappings":";AAeA,OAAgB,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAwChD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CA+ItF"}
1
+ {"version":3,"file":"BroadcastMessages.d.ts","sourceRoot":"","sources":["../../../../src/components/BroadcastMessages/BroadcastMessages.tsx"],"names":[],"mappings":";AAeA,OAAgB,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAwChD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAmJtF"}
@@ -172,6 +172,10 @@ function BroadcastMessages(inProps) {
172
172
  setMessages(refresh ? res.data : [...messages, ...res.data]);
173
173
  setNext(res.next);
174
174
  setLoading(false);
175
+ const unviewd = res.data.filter((m) => !m.viewed_at).length;
176
+ if (unviewd > 0) {
177
+ scUserContext.setUnseenNotificationBannersCounter(scUserContext.user.unseen_notification_banners_counter - unviewd);
178
+ }
175
179
  })
176
180
  .catch((error) => {
177
181
  utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
@@ -1 +1 @@
1
- {"version":3,"file":"BroadcastMessages.js","sourceRoot":"","sources":["../../../../src/components/BroadcastMessages/BroadcastMessages.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BroadcastMessages.js","sourceRoot":"","sources":["../../../../src/components/BroadcastMessages/BroadcastMessages.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../src/components/FeedObject/Actions/Actions.tsx"],"names":[],"mappings":";AAGA,OAAa,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACvC,OAAgB,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAChD,OAAc,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAE,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AAuBnE,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAE1C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAE9C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpC;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAsElE"}
1
+ {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../src/components/FeedObject/Actions/Actions.tsx"],"names":[],"mappings":";AAGA,OAAa,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACvC,OAAgB,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAChD,OAAc,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAE,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AAwBnE,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAE1C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAE9C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpC;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CA8ElE"}
@@ -14,6 +14,7 @@ const react_core_1 = require("@selfcommunity/react-core");
14
14
  const feedObject_1 = require("../../../types/feedObject");
15
15
  const classnames_1 = __importDefault(require("classnames"));
16
16
  const system_1 = require("@mui/system");
17
+ const Reaction_1 = __importDefault(require("./Reaction"));
17
18
  const PREFIX = 'SCFeedObjectActions';
18
19
  const classes = {
19
20
  root: `${PREFIX}-root`,
@@ -37,8 +38,11 @@ function Actions(inProps) {
37
38
  name: PREFIX
38
39
  });
39
40
  const { className, feedObjectId, feedObject, feedObjectType = types_1.SCFeedObjectTypologyType.POST, feedObjectTemplate = feedObject_1.SCFeedObjectTemplateType.PREVIEW, hideVoteAction = false, hideShareAction = false, hideCommentAction = false, handleExpandActivities, VoteActionProps = {}, CommentActionProps = {}, ShareActionProps = {} } = props;
41
+ // PREFERENCES
42
+ const scPreferences = (0, react_core_1.useSCPreferences)();
40
43
  // STATE
41
44
  const { obj, setObj } = (0, react_core_1.useSCFetchFeedObject)({ id: feedObjectId, feedObject, feedObjectType });
45
+ const reactionsEnabled = scPreferences.features.includes(react_core_1.SCFeatures.REACTION);
42
46
  if (!obj) {
43
47
  return null;
44
48
  }
@@ -60,8 +64,7 @@ function Actions(inProps) {
60
64
  */
61
65
  const columnWidth = getColumnWidth();
62
66
  return (react_1.default.createElement(Root, { container: true, className: (0, classnames_1.default)(classes.root, className) },
63
- !hideVoteAction && (react_1.default.createElement(material_1.Grid, { item: true, xs: columnWidth, className: classes.action },
64
- react_1.default.createElement(Vote_1.default, Object.assign({ feedObject: obj, feedObjectType: feedObjectType }, VoteActionProps)))),
67
+ !hideVoteAction && (react_1.default.createElement(material_1.Grid, { item: true, xs: columnWidth, className: classes.action }, reactionsEnabled ? (react_1.default.createElement(Reaction_1.default, Object.assign({ feedObject: obj, feedObjectType: feedObjectType }, VoteActionProps))) : (react_1.default.createElement(Vote_1.default, Object.assign({ feedObject: obj, feedObjectType: feedObjectType }, VoteActionProps))))),
65
68
  !hideCommentAction && (react_1.default.createElement(material_1.Grid, { item: true, xs: columnWidth, className: classes.action },
66
69
  react_1.default.createElement(Comment_1.default, Object.assign({ feedObject: obj, feedObjectType: feedObjectType, feedObjectTemplate: feedObjectTemplate, onCommentAction: handleExpandActivities }, CommentActionProps)))),
67
70
  !hideShareAction && (react_1.default.createElement(material_1.Grid, { item: true, xs: columnWidth, className: classes.action },
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sourceRoot":"","sources":["../../../../../src/components/FeedObject/Actions/Actions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Actions.js","sourceRoot":"","sources":["../../../../../src/components/FeedObject/Actions/Actions.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,iDAA4C;AAC5C,4CAAmC;AACnC,kDAAuC;AACvC,wDAAgD;AAChD,oDAA0C;AAC1C,gDAAgF;AAChF,0DAA6F;AAC7F,0DAAmE;AACnE,4DAAoC;AACpC,wCAA0C;AAC1C,0DAAkC;AAElC,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAErC,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,GAAG,MAAM,OAAO;IACtB,MAAM,EAAE,GAAG,MAAM,SAAS;CAC3B,CAAC;AAEF,MAAM,IAAI,GAAG,IAAA,eAAM,EAAC,eAAI,EAAE;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI;CAClD,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;QACxB,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAC,CAAC;AAyEJ,SAAwB,OAAO,CAAC,OAAqB;IACnD,QAAQ;IACR,MAAM,KAAK,GAAiB,IAAA,sBAAa,EAAC;QACxC,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IACH,MAAM,EACJ,SAAS,EACT,YAAY,EACZ,UAAU,EACV,cAAc,GAAG,gCAAwB,CAAC,IAAI,EAC9C,kBAAkB,GAAG,qCAAwB,CAAC,OAAO,EACrD,cAAc,GAAG,KAAK,EACtB,eAAe,GAAG,KAAK,EACvB,iBAAiB,GAAG,KAAK,EACzB,sBAAsB,EACtB,eAAe,GAAG,EAAE,EACpB,kBAAkB,GAAG,EAAE,EACvB,gBAAgB,GAAG,EAAE,EACtB,GAAG,KAAK,CAAC;IAEV,cAAc;IACd,MAAM,aAAa,GAAG,IAAA,6BAAgB,GAAE,CAAC;IAEzC,QAAQ;IACR,MAAM,EAAC,GAAG,EAAE,MAAM,EAAC,GAAG,IAAA,iCAAoB,EAAC,EAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAC,CAAC,CAAC;IAC3F,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAU,CAAC,QAAQ,CAAC,CAAC;IAE9E,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,CAAC;KACb;IAED;;OAEG;IACH,SAAS,cAAc;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,eAAe,IAAI,iBAAiB,EAAE;YACxC,KAAK,GAAG,EAAE,CAAC;SACZ;aAAM,IAAI,iBAAiB,IAAI,iBAAiB,EAAE;YACjD,KAAK,GAAG,CAAC,CAAC;SACX;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,CACL,8BAAC,IAAI,IAAC,SAAS,QAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;QAC3D,CAAC,cAAc,IAAI,CAClB,8BAAC,eAAI,IAAC,IAAI,QAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,IAClD,gBAAgB,CAAC,CAAC,CAAC,CAClB,8BAAC,kBAAQ,kBAAC,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,IAAM,eAAe,EAAI,CACnF,CAAC,CAAC,CAAC,CACF,8BAAC,cAAI,kBAAC,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,IAAM,eAAe,EAAI,CAC/E,CACI,CACR;QACA,CAAC,iBAAiB,IAAI,CACrB,8BAAC,eAAI,IAAC,IAAI,QAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM;YACnD,8BAAC,iBAAO,kBACN,UAAU,EAAE,GAAG,EACf,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,sBAAsB,IACnC,kBAAkB,EACtB,CACG,CACR;QACA,CAAC,eAAe,IAAI,CACnB,8BAAC,eAAI,IAAC,IAAI,QAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM;YACnD,8BAAC,eAAK,kBAAC,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,IAAM,gBAAgB,EAAI,CAC7F,CACR,CACI,CACR,CAAC;AACJ,CAAC;AA9ED,0BA8EC"}
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { VoteProps } from '../Vote';
3
+ /**
4
+ * We have complex state logic that involves multiple sub-values,
5
+ * so useReducer is preferable to useState.
6
+ * Define all possible auth action types label
7
+ * Use this to export actions and dispatch an action
8
+ */
9
+ export declare const voteActionTypes: {
10
+ LOADING: string;
11
+ REQUEST_VOTES_LOADING: string;
12
+ REQUEST_VOTES_SUCCESS: string;
13
+ REQUEST_VOTES_FAILED: string;
14
+ TOGGLE_VOTE_DIALOG: string;
15
+ REFRESHING_VOTES: string;
16
+ VOTING: string;
17
+ REQUEST_VOTING_SUCCESS: string;
18
+ };
19
+ /**
20
+ * Action types label for reaction actions handler
21
+ */
22
+ export declare const reactionActionTypes: {
23
+ ADD: string;
24
+ CHANGE: string;
25
+ REMOVE: string;
26
+ };
27
+ export interface TabPanelProps {
28
+ children?: React.ReactNode;
29
+ index: string;
30
+ value: string | any;
31
+ }
32
+ export default function Reaction(inProps: VoteProps): JSX.Element;
33
+ //# sourceMappingURL=Reaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reaction.d.ts","sourceRoot":"","sources":["../../../../../../src/components/FeedObject/Actions/Reaction/Reaction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AA4BtE,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;CAS3B,CAAC;AAgEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC;AA8DF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAWD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAwbhE"}
@@ -0,0 +1,483 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.reactionActionTypes = exports.voteActionTypes = void 0;
41
+ const react_1 = __importStar(require("react"));
42
+ const BaseDialog_1 = __importDefault(require("../../../../shared/BaseDialog"));
43
+ const react_intl_1 = require("react-intl");
44
+ const material_1 = require("@mui/material");
45
+ const InfiniteScroll_1 = __importDefault(require("../../../../shared/InfiniteScroll"));
46
+ const Icon_1 = __importDefault(require("@mui/material/Icon"));
47
+ const Skeleton_1 = __importDefault(require("@mui/material/Skeleton"));
48
+ const LoadingButton_1 = __importDefault(require("@mui/lab/LoadingButton"));
49
+ const CentralProgress_1 = __importDefault(require("../../../../shared/CentralProgress"));
50
+ const User_1 = __importDefault(require("../../../User"));
51
+ const Errors_1 = require("../../../../constants/Errors");
52
+ const styles_1 = require("@mui/material/styles");
53
+ const classnames_1 = __importDefault(require("classnames"));
54
+ const notistack_1 = require("notistack");
55
+ const types_1 = require("@selfcommunity/types");
56
+ const api_services_1 = require("@selfcommunity/api-services");
57
+ const utils_1 = require("@selfcommunity/utils");
58
+ const react_core_1 = require("@selfcommunity/react-core");
59
+ const system_1 = require("@mui/system");
60
+ const lodash_1 = __importDefault(require("lodash"));
61
+ /**
62
+ * We have complex state logic that involves multiple sub-values,
63
+ * so useReducer is preferable to useState.
64
+ * Define all possible auth action types label
65
+ * Use this to export actions and dispatch an action
66
+ */
67
+ exports.voteActionTypes = {
68
+ LOADING: '_loading_votes',
69
+ REQUEST_VOTES_LOADING: '_request_votes_loading',
70
+ REQUEST_VOTES_SUCCESS: '_request_votes_success',
71
+ REQUEST_VOTES_FAILED: '_request_votes_failed',
72
+ TOGGLE_VOTE_DIALOG: '_toggle_vote_dialog',
73
+ REFRESHING_VOTES: '_refreshing_votes',
74
+ VOTING: '_voting',
75
+ REQUEST_VOTING_SUCCESS: '_request_vote_success'
76
+ };
77
+ /**
78
+ * votesReducer manage the state of authentication
79
+ * update the state base on action type
80
+ * @param state
81
+ * @param action
82
+ */
83
+ function votesReducer(state, action) {
84
+ switch (action.type) {
85
+ case exports.voteActionTypes.REQUEST_VOTES_LOADING:
86
+ return Object.assign({}, state, { loadingVotes: true });
87
+ case exports.voteActionTypes.REQUEST_VOTES_SUCCESS:
88
+ return {
89
+ votes: state.refreshing ? [...state.votes] : [...state.votes, ...action.payload.data],
90
+ loadingVotes: false,
91
+ refreshing: false,
92
+ voting: false,
93
+ next: action.payload.next,
94
+ openVotesDialog: state.openVotesDialog,
95
+ error: null
96
+ };
97
+ case exports.voteActionTypes.TOGGLE_VOTE_DIALOG:
98
+ return Object.assign({}, state, { openVotesDialog: !state.openVotesDialog });
99
+ case exports.voteActionTypes.REQUEST_VOTES_FAILED:
100
+ return Object.assign({}, state, { loadingVotes: false, error: action.payload.error, refreshing: false });
101
+ case exports.voteActionTypes.REFRESHING_VOTES:
102
+ return Object.assign({}, state, { votes: [], loadingVotes: false, refreshing: true, error: null });
103
+ case exports.voteActionTypes.VOTING:
104
+ return Object.assign({}, state, { voting: true, error: null });
105
+ case exports.voteActionTypes.REQUEST_VOTING_SUCCESS:
106
+ return Object.assign({}, state, { voting: false, error: null });
107
+ default:
108
+ throw new Error(`Unhandled type: ${action.type}`);
109
+ }
110
+ }
111
+ /**
112
+ * Defines initial state
113
+ */
114
+ function stateInitializer({ feedObjectId = null, feedObject = null, feedObjectType = types_1.SCFeedObjectTypologyType.POST }) {
115
+ const next = feedObjectId && feedObjectType
116
+ ? `${api_services_1.Endpoints.VotesList.url({ type: feedObjectType, id: feedObjectId })}`
117
+ : `${api_services_1.Endpoints.VotesList.url({ type: feedObjectType, id: feedObject.id })}`;
118
+ return {
119
+ votes: [],
120
+ loadingVotes: false,
121
+ voting: null,
122
+ refreshing: false,
123
+ next,
124
+ openVotesDialog: false,
125
+ error: null
126
+ };
127
+ }
128
+ /**
129
+ * Action types label for reaction actions handler
130
+ */
131
+ exports.reactionActionTypes = {
132
+ ADD: 'add',
133
+ CHANGE: 'change',
134
+ REMOVE: 'remove'
135
+ };
136
+ const PREFIX = 'SCReactionObject';
137
+ const classes = {
138
+ root: `${PREFIX}-root`,
139
+ divider: `${PREFIX}-divider`,
140
+ actionButton: `${PREFIX}-action-button`,
141
+ inline: `${PREFIX}-inline`,
142
+ inlineActionButton: `${PREFIX}-inline-action-button`,
143
+ viewAudienceButton: `${PREFIX}-view-audience-button`,
144
+ groupedIcons: `${PREFIX}-grouped-icons`,
145
+ reactionAvatar: `${PREFIX}-reaction-avatar`,
146
+ reactionIcon: `${PREFIX}-reaction-icon`
147
+ };
148
+ const Root = (0, styles_1.styled)(material_1.Box, {
149
+ name: PREFIX,
150
+ slot: 'Root',
151
+ overridesResolver: (props, styles) => styles.root
152
+ })(({ theme }) => ({
153
+ display: 'flex',
154
+ justifyContent: 'center',
155
+ alignItems: 'center',
156
+ flexDirection: 'column',
157
+ [`&.${classes.inline}`]: {
158
+ flexDirection: 'row-reverse'
159
+ },
160
+ [`& .${classes.inlineActionButton}`]: {
161
+ minWidth: 30
162
+ },
163
+ [`& .${classes.divider}`]: {
164
+ width: '100%',
165
+ borderBottom: 0
166
+ },
167
+ [`& .${classes.viewAudienceButton}`]: {
168
+ height: 32,
169
+ fontSize: 15,
170
+ textTransform: 'capitalize',
171
+ '& p': {
172
+ fontSize: '0.9rem'
173
+ }
174
+ },
175
+ [`& .${classes.groupedIcons}`]: {
176
+ '& .MuiAvatar-root': {
177
+ width: '20px',
178
+ height: '20px',
179
+ fontSize: '0.8rem'
180
+ }
181
+ },
182
+ [`& .${classes.reactionAvatar}`]: {
183
+ '& .MuiAvatar-img': {
184
+ width: theme.spacing(2),
185
+ height: theme.spacing(2)
186
+ }
187
+ },
188
+ [`& .${classes.reactionIcon}`]: {
189
+ width: theme.spacing(2),
190
+ height: theme.spacing(2)
191
+ }
192
+ }));
193
+ function TabPanel(props) {
194
+ const { children, value, index } = props, other = __rest(props, ["children", "value", "index"]);
195
+ return (react_1.default.createElement("div", Object.assign({ hidden: value !== index, id: `tab-panel-${index}` }, other), value === index && react_1.default.createElement(react_1.default.Fragment, null, children)));
196
+ }
197
+ function Reaction(inProps) {
198
+ const props = (0, system_1.useThemeProps)({
199
+ props: inProps,
200
+ name: PREFIX
201
+ });
202
+ // PROPS
203
+ const { className = null, feedObjectId = null, feedObject = null, feedObjectType = types_1.SCFeedObjectTypologyType.POST, withAudience = true, withAction = true, inlineAction = false, onVoteAction = () => null } = props, rest = __rest(props, ["className", "feedObjectId", "feedObject", "feedObjectType", "withAudience", "withAction", "inlineAction", "onVoteAction"]);
204
+ // CONTEXT
205
+ const scContext = (0, react_core_1.useSCContext)();
206
+ const scUserContext = (0, react_core_1.useSCUser)();
207
+ const { enqueueSnackbar } = (0, notistack_1.useSnackbar)();
208
+ // STATE
209
+ const { obj, setObj } = (0, react_core_1.useSCFetchFeedObject)({ id: feedObjectId, feedObject, feedObjectType });
210
+ const { reactions, isLoading } = (0, react_core_1.useSCFetchReactions)();
211
+ const [state, dispatch] = (0, react_1.useReducer)(votesReducer, {}, () => stateInitializer({ feedObjectId, feedObject, feedObjectType }));
212
+ const [tabIndex, setTabIndex] = (0, react_1.useState)('all');
213
+ const [reaction, setReaction] = (0, react_1.useState)(null);
214
+ const defaultReactionId = 1;
215
+ const defaultReaction = reactions.find((r) => r.id === defaultReactionId);
216
+ const [anchorEl, setAnchorEl] = (0, react_1.useState)(null);
217
+ const [hovered, setHovered] = (0, react_1.useState)(false);
218
+ const [reactionsList, setReactionsList] = (0, react_1.useState)(obj.reactions_count);
219
+ // HANDLERS
220
+ const handleChange = (event, newValue) => {
221
+ setTabIndex(newValue);
222
+ };
223
+ function handleClick(event) {
224
+ setTimeout(() => {
225
+ setHovered(true);
226
+ }, 1000);
227
+ if (anchorEl !== event.currentTarget) {
228
+ setAnchorEl(event.currentTarget);
229
+ }
230
+ }
231
+ function handleClose() {
232
+ setHovered(false);
233
+ setAnchorEl(null);
234
+ }
235
+ function dispatchReactionsActions(type, reactionObj) {
236
+ const list = [...reactionsList];
237
+ let updatedList;
238
+ const index = list.findIndex((r) => r.reaction.id === reactionObj.id);
239
+ const inList = list.length ? list.some((o) => o.reaction.id === reactionObj.id) : false;
240
+ switch (type) {
241
+ case exports.reactionActionTypes.REMOVE:
242
+ if (inList && list[index].count > 1) {
243
+ // console.log('Update count -');
244
+ list[index].count = list[index].count - 1;
245
+ updatedList = list;
246
+ }
247
+ else {
248
+ // console.log('Delete obj');
249
+ list.splice(index, 1);
250
+ updatedList = list;
251
+ }
252
+ return updatedList;
253
+ case exports.reactionActionTypes.ADD:
254
+ if (inList) {
255
+ // console.log('Update count +');
256
+ list[index].count = list[index].count + 1;
257
+ updatedList = list;
258
+ }
259
+ else {
260
+ // console.log('Add obj');
261
+ updatedList = [...list, { reaction: reactionObj, count: 1 }];
262
+ }
263
+ return updatedList;
264
+ case exports.reactionActionTypes.CHANGE:
265
+ const i = list.findIndex((r) => r.reaction.id === obj.reaction.id);
266
+ if (!inList) {
267
+ // console.log('Change not in list, add + update count');
268
+ list[i].reaction = list[i].count === 1 ? reactionObj : list[i].reaction;
269
+ list[i].count = list[i].count >= 1 ? list[i].count - 1 : list[i].count;
270
+ setReactionsList(dispatchReactionsActions(exports.reactionActionTypes.ADD, reactionObj));
271
+ }
272
+ else {
273
+ // console.log('Change in list, remove + update count');
274
+ const n = dispatchReactionsActions(exports.reactionActionTypes.REMOVE, obj.reaction);
275
+ const newIndex = n.findIndex((r) => r.reaction.id === reactionObj.id);
276
+ n[newIndex].count = n[newIndex].count + 1;
277
+ setReactionsList(n);
278
+ }
279
+ break;
280
+ }
281
+ }
282
+ /**
283
+ * Handles reaction actions(add, update, delete);
284
+ * @param voted
285
+ * @param r
286
+ */
287
+ function handleReactions(voted, r) {
288
+ if (voted) {
289
+ const forRemoval = obj.reaction.id === r.id;
290
+ if (forRemoval) {
291
+ setReactionsList(dispatchReactionsActions(exports.reactionActionTypes.REMOVE, obj.reaction));
292
+ }
293
+ else {
294
+ dispatchReactionsActions(exports.reactionActionTypes.CHANGE, r);
295
+ }
296
+ }
297
+ else {
298
+ setReactionsList(dispatchReactionsActions(exports.reactionActionTypes.ADD, r));
299
+ }
300
+ }
301
+ /**
302
+ * Fetches Votes only if obj
303
+ */
304
+ (0, react_1.useEffect)(() => {
305
+ if (obj && state.next && !state.loading && !state.refreshing && state.openVotesDialog) {
306
+ dispatch({ type: exports.voteActionTypes.REQUEST_VOTES_LOADING });
307
+ fetchVotes()
308
+ .then((data) => {
309
+ dispatch({
310
+ type: exports.voteActionTypes.REQUEST_VOTES_SUCCESS,
311
+ payload: {
312
+ next: data['next'],
313
+ data: data['results']
314
+ }
315
+ });
316
+ })
317
+ .catch((error) => {
318
+ utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
319
+ });
320
+ }
321
+ }, [state.openVotesDialog]);
322
+ /**
323
+ * Opens dialog votes
324
+ */
325
+ function handleToggleVotesDialog() {
326
+ dispatch({ type: exports.voteActionTypes.TOGGLE_VOTE_DIALOG });
327
+ }
328
+ /**
329
+ * fetches Votes
330
+ */
331
+ const fetchVotes = (0, react_1.useMemo)(() => () => {
332
+ return api_services_1.http
333
+ .request({
334
+ url: state.next,
335
+ method: api_services_1.Endpoints.VotesList.method
336
+ })
337
+ .then((res) => {
338
+ if (res.status >= 300) {
339
+ return Promise.reject(res);
340
+ }
341
+ return Promise.resolve(res.data);
342
+ });
343
+ }, [state.next]);
344
+ /**
345
+ * Performs vote with reactions
346
+ */
347
+ const performReaction = (0, react_1.useMemo)(() => (reaction) => {
348
+ return api_services_1.http
349
+ .request({
350
+ url: api_services_1.Endpoints.Vote.url({ type: obj.type, id: obj.id }),
351
+ method: api_services_1.Endpoints.Vote.method,
352
+ params: {
353
+ reaction: reaction.id
354
+ }
355
+ })
356
+ .then((res) => {
357
+ if (res.status >= 300) {
358
+ return Promise.reject(res);
359
+ }
360
+ return Promise.resolve(res.data);
361
+ });
362
+ }, [obj]);
363
+ /**
364
+ * Performs voteUp/voteDown
365
+ */
366
+ function vote(reaction) {
367
+ setReaction(reaction);
368
+ if (scUserContext.user && Object.prototype.hasOwnProperty.call(obj, 'reaction')) {
369
+ if (react_core_1.UserUtils.isBlocked(scUserContext.user)) {
370
+ enqueueSnackbar(react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.common.userBlocked", defaultMessage: "ui.common.userBlocked" }), {
371
+ variant: 'warning',
372
+ autoHideDuration: 3000
373
+ });
374
+ }
375
+ else {
376
+ if (obj && !state.voting) {
377
+ dispatch({ type: exports.voteActionTypes.VOTING });
378
+ performReaction(reaction)
379
+ .then((data) => {
380
+ dispatch({ type: exports.voteActionTypes.REQUEST_VOTING_SUCCESS });
381
+ const newObj = Object.assign({}, obj, {
382
+ voted: obj.voted && obj.reaction.id !== reaction.id ? true : !obj.voted,
383
+ vote_count: obj.voted && obj.reaction.id === reaction.id
384
+ ? obj.vote_count - 1
385
+ : obj.voted && obj.reaction.id !== reaction.id
386
+ ? obj.vote_count
387
+ : obj.vote_count + 1,
388
+ reaction: reaction
389
+ });
390
+ setObj(newObj);
391
+ handleReactions(obj.voted, reaction);
392
+ onVoteAction && onVoteAction(newObj);
393
+ setAnchorEl(null);
394
+ })
395
+ .catch((error) => {
396
+ utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
397
+ });
398
+ }
399
+ }
400
+ }
401
+ else {
402
+ scContext.settings.handleAnonymousAction();
403
+ }
404
+ }
405
+ /**
406
+ * Renders audience with detail dialog
407
+ * @return {JSX.Element}
408
+ */
409
+ function renderAudience() {
410
+ const { loadingVotes, votes, openVotesDialog } = state;
411
+ const filteredVotes = lodash_1.default.groupBy(votes, (v) => v.reaction.label);
412
+ let audience;
413
+ if (withAudience) {
414
+ if (!obj) {
415
+ audience = (react_1.default.createElement(material_1.Button, { variant: "text", size: "small", disabled: true, color: "inherit" },
416
+ react_1.default.createElement(Skeleton_1.default, { animation: "wave", height: 18, width: 50 })));
417
+ }
418
+ else {
419
+ audience = (react_1.default.createElement(react_1.default.Fragment, null,
420
+ react_1.default.createElement(material_1.Button, { variant: "text", size: "small", onClick: handleToggleVotesDialog, disabled: obj.vote_count === 0, color: "inherit", classes: { root: classes.viewAudienceButton }, endIcon: obj.vote_count !== 0 ? obj.vote_count : null },
421
+ react_1.default.createElement(material_1.AvatarGroup, { className: classes.groupedIcons, max: 3 }, reactionsList.map((r, i) => (react_1.default.createElement(material_1.Avatar, { alt: r.reaction.label, src: r.reaction.image, key: i, className: classes.reactionAvatar }))))),
422
+ openVotesDialog && (react_1.default.createElement(BaseDialog_1.default, { title: react_1.default.createElement(material_1.Tabs, { value: tabIndex, onChange: handleChange, variant: "scrollable", scrollButtons: true, allowScrollButtonsMobile: true },
423
+ react_1.default.createElement(material_1.Tab, { value: 'all', label: react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: "ui.feedObject.votesDialog.reactionsEnabled.title", id: "ui.feedObject.votesDialog.reactionsEnabled.title" }) }),
424
+ reactionsList.map((r, index) => (react_1.default.createElement(material_1.Tab, { icon: react_1.default.createElement(Icon_1.default, null,
425
+ react_1.default.createElement("img", { alt: r.reaction.label, src: r.reaction.image, width: 20, height: 20 })), iconPosition: "start", label: r.count, key: index, value: r.reaction.label })))), onClose: handleToggleVotesDialog, open: openVotesDialog }, loadingVotes ? (react_1.default.createElement(CentralProgress_1.default, { size: 50 })) : (react_1.default.createElement(react_1.default.Fragment, null,
426
+ react_1.default.createElement(TabPanel, { value: 'all', index: tabIndex },
427
+ react_1.default.createElement(InfiniteScroll_1.default, { dataLength: votes.length, next: fetchVotes, hasMoreNext: Boolean(state.next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
428
+ react_1.default.createElement("b", null,
429
+ react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.feedObject.votesDialog.noOtherLikes", defaultMessage: "ui.feedObject.votesDialog.noOtherLikes" }))) },
430
+ react_1.default.createElement(material_1.List, null, votes.map((vote, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
431
+ react_1.default.createElement(User_1.default, { elevation: 0, user: vote.user, key: index, sx: { m: 0 } }))))))),
432
+ Object.keys(filteredVotes).map((key, index) => (react_1.default.createElement(react_1.default.Fragment, { key: index },
433
+ react_1.default.createElement(TabPanel, { value: key, index: tabIndex },
434
+ react_1.default.createElement(InfiniteScroll_1.default, { dataLength: votes.length, next: fetchVotes, hasMoreNext: Boolean(state.next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
435
+ react_1.default.createElement("b", null,
436
+ react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.feedObject.votesDialog.noOtherLikes", defaultMessage: "ui.feedObject.votesDialog.noOtherLikes" }))) },
437
+ react_1.default.createElement(material_1.List, null, filteredVotes[key].map((vote, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
438
+ react_1.default.createElement(User_1.default, { elevation: 0, user: vote.user, key: index, sx: { m: 0 } }))))))))))))))));
439
+ }
440
+ }
441
+ return audience;
442
+ }
443
+ /**
444
+ * Renders vote action if withAction==true
445
+ * @return {JSX.Element}
446
+ */
447
+ function renderVoteButton() {
448
+ const { voting } = state;
449
+ return (react_1.default.createElement(react_1.default.Fragment, null, withAction && (react_1.default.createElement(react_1.default.Fragment, null,
450
+ !inlineAction && withAudience && react_1.default.createElement(material_1.Divider, { className: classes.divider }),
451
+ react_1.default.createElement("span", null,
452
+ react_1.default.createElement(LoadingButton_1.default, { onClick: () => vote(reaction !== null && reaction !== void 0 ? reaction : defaultReaction), onMouseOver: handleClick, loading: voting, disabled: !obj, color: "inherit", classes: { root: (0, classnames_1.default)(classes.actionButton, { [classes.inlineActionButton]: inlineAction }) } }, scUserContext.user && obj.voted ? (react_1.default.createElement(Icon_1.default, { fontSize: 'large' },
453
+ react_1.default.createElement("img", { alt: obj.reaction.label, src: obj.reaction.image, className: classes.reactionIcon }))) : (react_1.default.createElement(Icon_1.default, { fontSize: 'large' }, "thumb_up_off_alt")))),
454
+ hovered && (react_1.default.createElement(material_1.Menu, { id: "reactions-menu", anchorEl: anchorEl, open: Boolean(anchorEl), onClose: handleClose, PaperProps: {
455
+ elevation: 0,
456
+ sx: {
457
+ width: 200,
458
+ overflow: 'hidden',
459
+ borderRadius: '40px',
460
+ '& .MuiList-root': {
461
+ display: 'flex',
462
+ overflow: 'auto'
463
+ }
464
+ }
465
+ }, anchorOrigin: {
466
+ vertical: 'top',
467
+ horizontal: 'center'
468
+ }, transformOrigin: {
469
+ vertical: 'bottom',
470
+ horizontal: 'center'
471
+ } }, reactions.map((reaction, index) => (react_1.default.createElement(material_1.MenuItem, { key: index, onClick: () => vote(reaction) },
472
+ react_1.default.createElement(Icon_1.default, null,
473
+ react_1.default.createElement("img", { alt: reaction.label, src: reaction.image, width: 16, height: 16 })))))))))));
474
+ }
475
+ /**
476
+ * Renders vote action and audience section
477
+ */
478
+ return (react_1.default.createElement(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className, { [classes.inline]: inlineAction }) }, rest),
479
+ renderAudience(),
480
+ renderVoteButton()));
481
+ }
482
+ exports.default = Reaction;
483
+ //# sourceMappingURL=Reaction.js.map