@replyke/core 7.0.0-beta.22 → 7.0.0-beta.24

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 (140) hide show
  1. package/dist/cjs/hooks/comments/index.d.ts +0 -1
  2. package/dist/cjs/hooks/comments/index.js +1 -3
  3. package/dist/cjs/hooks/comments/index.js.map +1 -1
  4. package/dist/cjs/hooks/comments/useCommentSectionData.js +10 -0
  5. package/dist/cjs/hooks/comments/useCommentSectionData.js.map +1 -1
  6. package/dist/cjs/hooks/entities/index.d.ts +0 -5
  7. package/dist/cjs/hooks/entities/index.js +1 -11
  8. package/dist/cjs/hooks/entities/index.js.map +1 -1
  9. package/dist/cjs/hooks/entities/useEntityData.d.ts +0 -6
  10. package/dist/cjs/hooks/entities/useEntityData.js +0 -11
  11. package/dist/cjs/hooks/entities/useEntityData.js.map +1 -1
  12. package/dist/cjs/hooks/reactions/index.d.ts +10 -0
  13. package/dist/cjs/hooks/reactions/index.js +21 -0
  14. package/dist/cjs/hooks/reactions/index.js.map +1 -0
  15. package/dist/cjs/hooks/reactions/useAddReaction.d.ts +9 -0
  16. package/dist/cjs/hooks/{comments/useDownvoteComment.js → reactions/useAddReaction.js} +19 -13
  17. package/dist/cjs/hooks/reactions/useAddReaction.js.map +1 -0
  18. package/dist/cjs/hooks/reactions/useFetchCommentReactions.d.ts +10 -0
  19. package/dist/cjs/hooks/{comments/useRemoveCommentUpvote.js → reactions/useFetchCommentReactions.js} +26 -13
  20. package/dist/cjs/hooks/reactions/useFetchCommentReactions.js.map +1 -0
  21. package/dist/cjs/hooks/reactions/useFetchCommentReactionsWrapper.d.ts +17 -0
  22. package/dist/cjs/hooks/reactions/useFetchCommentReactionsWrapper.js +170 -0
  23. package/dist/cjs/hooks/reactions/useFetchCommentReactionsWrapper.js.map +1 -0
  24. package/dist/cjs/hooks/reactions/useFetchEntityReactions.d.ts +10 -0
  25. package/dist/cjs/hooks/{entities/useDownvoteEntity.js → reactions/useFetchEntityReactions.js} +26 -13
  26. package/dist/cjs/hooks/reactions/useFetchEntityReactions.js.map +1 -0
  27. package/dist/cjs/hooks/reactions/useFetchEntityReactionsWrapper.d.ts +17 -0
  28. package/dist/cjs/hooks/reactions/useFetchEntityReactionsWrapper.js +170 -0
  29. package/dist/cjs/hooks/reactions/useFetchEntityReactionsWrapper.js.map +1 -0
  30. package/dist/cjs/hooks/reactions/useReactionToggle.d.ts +9 -0
  31. package/dist/cjs/hooks/{comments/useUpvoteComment.js → reactions/useReactionToggle.js} +40 -23
  32. package/dist/cjs/hooks/reactions/useReactionToggle.js.map +1 -0
  33. package/dist/cjs/hooks/reactions/useRemoveReaction.d.ts +7 -0
  34. package/dist/cjs/hooks/{comments/useRemoveCommentDownvote.js → reactions/useRemoveReaction.js} +16 -13
  35. package/dist/cjs/hooks/reactions/useRemoveReaction.js.map +1 -0
  36. package/dist/cjs/index.d.ts +4 -2
  37. package/dist/cjs/index.js +12 -9
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/interfaces/models/Comment.d.ts +3 -0
  40. package/dist/cjs/interfaces/models/Entity.d.ts +5 -1
  41. package/dist/cjs/interfaces/models/Reaction.d.ts +23 -0
  42. package/dist/cjs/interfaces/models/Reaction.js +3 -0
  43. package/dist/cjs/interfaces/models/Reaction.js.map +1 -0
  44. package/dist/cjs/store/slices/entityListsSlice.d.ts +144 -0
  45. package/dist/esm/hooks/comments/index.d.ts +0 -1
  46. package/dist/esm/hooks/comments/index.js +0 -1
  47. package/dist/esm/hooks/comments/index.js.map +1 -1
  48. package/dist/esm/hooks/comments/useCommentSectionData.js +10 -0
  49. package/dist/esm/hooks/comments/useCommentSectionData.js.map +1 -1
  50. package/dist/esm/hooks/entities/index.d.ts +0 -5
  51. package/dist/esm/hooks/entities/index.js +0 -5
  52. package/dist/esm/hooks/entities/index.js.map +1 -1
  53. package/dist/esm/hooks/entities/useEntityData.d.ts +0 -6
  54. package/dist/esm/hooks/entities/useEntityData.js +0 -11
  55. package/dist/esm/hooks/entities/useEntityData.js.map +1 -1
  56. package/dist/esm/hooks/reactions/index.d.ts +10 -0
  57. package/dist/esm/hooks/reactions/index.js +8 -0
  58. package/dist/esm/hooks/reactions/index.js.map +1 -0
  59. package/dist/esm/hooks/reactions/useAddReaction.d.ts +9 -0
  60. package/dist/esm/hooks/{comments/useDownvoteComment.js → reactions/useAddReaction.js} +19 -13
  61. package/dist/esm/hooks/reactions/useAddReaction.js.map +1 -0
  62. package/dist/esm/hooks/reactions/useFetchCommentReactions.d.ts +10 -0
  63. package/dist/esm/hooks/{comments/useRemoveCommentUpvote.js → reactions/useFetchCommentReactions.js} +26 -13
  64. package/dist/esm/hooks/reactions/useFetchCommentReactions.js.map +1 -0
  65. package/dist/esm/hooks/reactions/useFetchCommentReactionsWrapper.d.ts +17 -0
  66. package/dist/esm/hooks/reactions/useFetchCommentReactionsWrapper.js +165 -0
  67. package/dist/esm/hooks/reactions/useFetchCommentReactionsWrapper.js.map +1 -0
  68. package/dist/esm/hooks/reactions/useFetchEntityReactions.d.ts +10 -0
  69. package/dist/esm/hooks/{entities/useDownvoteEntity.js → reactions/useFetchEntityReactions.js} +26 -13
  70. package/dist/esm/hooks/reactions/useFetchEntityReactions.js.map +1 -0
  71. package/dist/esm/hooks/reactions/useFetchEntityReactionsWrapper.d.ts +17 -0
  72. package/dist/esm/hooks/reactions/useFetchEntityReactionsWrapper.js +165 -0
  73. package/dist/esm/hooks/reactions/useFetchEntityReactionsWrapper.js.map +1 -0
  74. package/dist/esm/hooks/reactions/useReactionToggle.d.ts +9 -0
  75. package/dist/esm/hooks/reactions/useReactionToggle.js +83 -0
  76. package/dist/esm/hooks/reactions/useReactionToggle.js.map +1 -0
  77. package/dist/esm/hooks/reactions/useRemoveReaction.d.ts +7 -0
  78. package/dist/esm/hooks/{comments/useRemoveCommentDownvote.js → reactions/useRemoveReaction.js} +16 -13
  79. package/dist/esm/hooks/reactions/useRemoveReaction.js.map +1 -0
  80. package/dist/esm/index.d.ts +4 -2
  81. package/dist/esm/index.js +4 -2
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/interfaces/models/Comment.d.ts +3 -0
  84. package/dist/esm/interfaces/models/Entity.d.ts +5 -1
  85. package/dist/esm/interfaces/models/Reaction.d.ts +23 -0
  86. package/dist/esm/interfaces/models/Reaction.js +2 -0
  87. package/dist/esm/interfaces/models/Reaction.js.map +1 -0
  88. package/dist/esm/store/slices/entityListsSlice.d.ts +144 -0
  89. package/package.json +1 -1
  90. package/dist/cjs/hooks/comments/useCommentVotes.d.ts +0 -13
  91. package/dist/cjs/hooks/comments/useCommentVotes.js +0 -241
  92. package/dist/cjs/hooks/comments/useCommentVotes.js.map +0 -1
  93. package/dist/cjs/hooks/comments/useDownvoteComment.d.ts +0 -5
  94. package/dist/cjs/hooks/comments/useDownvoteComment.js.map +0 -1
  95. package/dist/cjs/hooks/comments/useRemoveCommentDownvote.d.ts +0 -5
  96. package/dist/cjs/hooks/comments/useRemoveCommentDownvote.js.map +0 -1
  97. package/dist/cjs/hooks/comments/useRemoveCommentUpvote.d.ts +0 -5
  98. package/dist/cjs/hooks/comments/useRemoveCommentUpvote.js.map +0 -1
  99. package/dist/cjs/hooks/comments/useUpvoteComment.d.ts +0 -5
  100. package/dist/cjs/hooks/comments/useUpvoteComment.js.map +0 -1
  101. package/dist/cjs/hooks/entities/useDownvoteEntity.d.ts +0 -5
  102. package/dist/cjs/hooks/entities/useDownvoteEntity.js.map +0 -1
  103. package/dist/cjs/hooks/entities/useEntityVotes.d.ts +0 -13
  104. package/dist/cjs/hooks/entities/useEntityVotes.js +0 -250
  105. package/dist/cjs/hooks/entities/useEntityVotes.js.map +0 -1
  106. package/dist/cjs/hooks/entities/useRemoveEntityDownvote.d.ts +0 -5
  107. package/dist/cjs/hooks/entities/useRemoveEntityDownvote.js +0 -71
  108. package/dist/cjs/hooks/entities/useRemoveEntityDownvote.js.map +0 -1
  109. package/dist/cjs/hooks/entities/useRemoveEntityUpvote.d.ts +0 -5
  110. package/dist/cjs/hooks/entities/useRemoveEntityUpvote.js +0 -71
  111. package/dist/cjs/hooks/entities/useRemoveEntityUpvote.js.map +0 -1
  112. package/dist/cjs/hooks/entities/useUpvoteEntity.d.ts +0 -5
  113. package/dist/cjs/hooks/entities/useUpvoteEntity.js +0 -71
  114. package/dist/cjs/hooks/entities/useUpvoteEntity.js.map +0 -1
  115. package/dist/esm/hooks/comments/useCommentVotes.d.ts +0 -13
  116. package/dist/esm/hooks/comments/useCommentVotes.js +0 -236
  117. package/dist/esm/hooks/comments/useCommentVotes.js.map +0 -1
  118. package/dist/esm/hooks/comments/useDownvoteComment.d.ts +0 -5
  119. package/dist/esm/hooks/comments/useDownvoteComment.js.map +0 -1
  120. package/dist/esm/hooks/comments/useRemoveCommentDownvote.d.ts +0 -5
  121. package/dist/esm/hooks/comments/useRemoveCommentDownvote.js.map +0 -1
  122. package/dist/esm/hooks/comments/useRemoveCommentUpvote.d.ts +0 -5
  123. package/dist/esm/hooks/comments/useRemoveCommentUpvote.js.map +0 -1
  124. package/dist/esm/hooks/comments/useUpvoteComment.d.ts +0 -5
  125. package/dist/esm/hooks/comments/useUpvoteComment.js +0 -66
  126. package/dist/esm/hooks/comments/useUpvoteComment.js.map +0 -1
  127. package/dist/esm/hooks/entities/useDownvoteEntity.d.ts +0 -5
  128. package/dist/esm/hooks/entities/useDownvoteEntity.js.map +0 -1
  129. package/dist/esm/hooks/entities/useEntityVotes.d.ts +0 -13
  130. package/dist/esm/hooks/entities/useEntityVotes.js +0 -245
  131. package/dist/esm/hooks/entities/useEntityVotes.js.map +0 -1
  132. package/dist/esm/hooks/entities/useRemoveEntityDownvote.d.ts +0 -5
  133. package/dist/esm/hooks/entities/useRemoveEntityDownvote.js +0 -66
  134. package/dist/esm/hooks/entities/useRemoveEntityDownvote.js.map +0 -1
  135. package/dist/esm/hooks/entities/useRemoveEntityUpvote.d.ts +0 -5
  136. package/dist/esm/hooks/entities/useRemoveEntityUpvote.js +0 -66
  137. package/dist/esm/hooks/entities/useRemoveEntityUpvote.js.map +0 -1
  138. package/dist/esm/hooks/entities/useUpvoteEntity.d.ts +0 -5
  139. package/dist/esm/hooks/entities/useUpvoteEntity.js +0 -66
  140. package/dist/esm/hooks/entities/useUpvoteEntity.js.map +0 -1
@@ -35,32 +35,45 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  }
36
36
  };
37
37
  import { useCallback } from "react";
38
- import useAxiosPrivate from "../../config/useAxiosPrivate";
39
38
  import useProject from "../projects/useProject";
40
- function useRemoveCommentUpvote() {
39
+ import axios from "../../config/axios";
40
+ function useFetchCommentReactions() {
41
41
  var _this = this;
42
- var axios = useAxiosPrivate();
43
42
  var projectId = useProject().projectId;
44
- var removeCommentUpvote = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
45
- var response;
46
- var commentId = _b.commentId;
43
+ var fetchCommentReactions = useCallback(function (props) { return __awaiter(_this, void 0, void 0, function () {
44
+ var commentId, page, _a, limit, reactionType, _b, sortDir, params, response;
47
45
  return __generator(this, function (_c) {
48
46
  switch (_c.label) {
49
47
  case 0:
50
- if (!commentId) {
51
- throw new Error("No comment ID passed");
48
+ commentId = props.commentId, page = props.page, _a = props.limit, limit = _a === void 0 ? 20 : _a, reactionType = props.reactionType, _b = props.sortDir, sortDir = _b === void 0 ? "desc" : _b;
49
+ if (page === 0) {
50
+ throw new Error("Can't fetch reactions with page 0");
51
+ }
52
+ if (limit === 0) {
53
+ throw new Error("Can't fetch with limit 0");
52
54
  }
53
55
  if (!projectId) {
54
56
  throw new Error("No project specified");
55
57
  }
56
- return [4 /*yield*/, axios.patch("/".concat(projectId, "/comments/").concat(commentId, "/remove-upvote"))];
58
+ if (!commentId) {
59
+ throw new Error("No comment ID provided");
60
+ }
61
+ params = {
62
+ page: page,
63
+ limit: limit,
64
+ sortDir: sortDir,
65
+ };
66
+ if (reactionType) {
67
+ params.reactionType = reactionType;
68
+ }
69
+ return [4 /*yield*/, axios.get("/".concat(projectId, "/v7/comments/").concat(commentId, "/reactions"), { params: params })];
57
70
  case 1:
58
71
  response = _c.sent();
59
72
  return [2 /*return*/, response.data];
60
73
  }
61
74
  });
62
- }); }, [axios, projectId]);
63
- return removeCommentUpvote;
75
+ }); }, [projectId]);
76
+ return fetchCommentReactions;
64
77
  }
65
- export default useRemoveCommentUpvote;
66
- //# sourceMappingURL=useRemoveCommentUpvote.js.map
78
+ export default useFetchCommentReactions;
79
+ //# sourceMappingURL=useFetchCommentReactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchCommentReactions.js","sourceRoot":"","sources":["../../../../src/hooks/reactions/useFetchCommentReactions.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAEvC,SAAS,wBAAwB;IAAjC,iBAkDC;IAjDS,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IAEnC,IAAM,qBAAqB,GAAG,WAAW,CACvC,UAAO,KAMN;;;;;oBACS,SAAS,GAAuD,KAAK,UAA5D,EAAE,IAAI,GAAiD,KAAK,KAAtD,EAAE,KAA+C,KAAK,MAA1C,EAAV,KAAK,mBAAG,EAAE,KAAA,EAAE,YAAY,GAAuB,KAAK,aAA5B,EAAE,KAAqB,KAAK,QAAV,EAAhB,OAAO,mBAAG,MAAM,KAAA,CAAW;oBAE9E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBACvD,CAAC;oBAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAC9C,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;oBAC5C,CAAC;oBAEK,MAAM,GAAwB;wBAClC,IAAI,MAAA;wBACJ,KAAK,OAAA;wBACL,OAAO,SAAA;qBACR,CAAC;oBAEF,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;oBACrC,CAAC;oBAEgB,qBAAM,KAAK,CAAC,GAAG,CAC9B,WAAI,SAAS,0BAAgB,SAAS,eAAY,EAClD,EAAE,MAAM,QAAA,EAAE,CACX,EAAA;;oBAHK,QAAQ,GAAG,SAGhB;oBAED,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;SACtB,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Reaction, ReactionType } from "../../interfaces/models/Reaction";
2
+ export interface UseFetchCommentReactionsWrapperProps {
3
+ commentId: string;
4
+ limit?: number;
5
+ reactionType?: ReactionType;
6
+ sortDir?: "asc" | "desc";
7
+ autoFetch?: boolean;
8
+ }
9
+ export interface UseFetchCommentReactionsWrapperValues {
10
+ reactions: Reaction[];
11
+ loading: boolean;
12
+ hasMore: boolean;
13
+ loadMore: () => void;
14
+ refetch: () => void;
15
+ }
16
+ declare function useFetchCommentReactionsWrapper(props: UseFetchCommentReactionsWrapperProps): UseFetchCommentReactionsWrapperValues;
17
+ export default useFetchCommentReactionsWrapper;
@@ -0,0 +1,165 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
46
+ import { useCallback, useEffect, useRef, useState } from "react";
47
+ import useFetchCommentReactions from "./useFetchCommentReactions";
48
+ import { handleError } from "../../utils/handleError";
49
+ function useFetchCommentReactionsWrapper(props) {
50
+ var _this = this;
51
+ var commentId = props.commentId, _a = props.limit, limit = _a === void 0 ? 20 : _a, reactionType = props.reactionType, _b = props.sortDir, sortDir = _b === void 0 ? "desc" : _b, _c = props.autoFetch, autoFetch = _c === void 0 ? false : _c;
52
+ var fetchCommentReactions = useFetchCommentReactions();
53
+ var loading = useRef(false);
54
+ var _d = useState(false), loadingState = _d[0], setLoadingState = _d[1];
55
+ var hasMore = useRef(true);
56
+ var _e = useState(true), hasMoreState = _e[0], setHasMoreState = _e[1];
57
+ var _f = useState(1), page = _f[0], setPage = _f[1];
58
+ var _g = useState([]), reactions = _g[0], setReactions = _g[1];
59
+ var resetReactions = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
60
+ var response, newReactions, pagination, err_1;
61
+ return __generator(this, function (_a) {
62
+ switch (_a.label) {
63
+ case 0:
64
+ if (!commentId) {
65
+ return [2 /*return*/];
66
+ }
67
+ _a.label = 1;
68
+ case 1:
69
+ _a.trys.push([1, 3, 4, 5]);
70
+ loading.current = true;
71
+ setLoadingState(true);
72
+ hasMore.current = true;
73
+ setHasMoreState(true);
74
+ setPage(1);
75
+ return [4 /*yield*/, fetchCommentReactions({
76
+ commentId: commentId,
77
+ page: 1,
78
+ limit: limit,
79
+ reactionType: reactionType,
80
+ sortDir: sortDir,
81
+ })];
82
+ case 2:
83
+ response = _a.sent();
84
+ if (response) {
85
+ newReactions = response.data, pagination = response.pagination;
86
+ setReactions(newReactions);
87
+ hasMore.current = pagination.hasMore;
88
+ setHasMoreState(pagination.hasMore);
89
+ }
90
+ return [3 /*break*/, 5];
91
+ case 3:
92
+ err_1 = _a.sent();
93
+ handleError(err_1, "Failed to reset reactions:");
94
+ return [3 /*break*/, 5];
95
+ case 4:
96
+ loading.current = false;
97
+ setLoadingState(false);
98
+ return [7 /*endfinally*/];
99
+ case 5: return [2 /*return*/];
100
+ }
101
+ });
102
+ }); }, [fetchCommentReactions, limit, reactionType, sortDir, commentId]);
103
+ var loadMore = function () {
104
+ if (loading.current || !hasMore.current)
105
+ return;
106
+ setPage(function (prevPage) { return prevPage + 1; });
107
+ };
108
+ useEffect(function () {
109
+ if (autoFetch) {
110
+ resetReactions();
111
+ }
112
+ }, [resetReactions, autoFetch]);
113
+ useEffect(function () {
114
+ var loadMoreReactions = function () { return __awaiter(_this, void 0, void 0, function () {
115
+ var response, newReactions_1, pagination, err_2;
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0:
119
+ loading.current = true;
120
+ setLoadingState(true);
121
+ _a.label = 1;
122
+ case 1:
123
+ _a.trys.push([1, 3, 4, 5]);
124
+ return [4 /*yield*/, fetchCommentReactions({
125
+ commentId: commentId,
126
+ page: page,
127
+ limit: limit,
128
+ reactionType: reactionType,
129
+ sortDir: sortDir,
130
+ })];
131
+ case 2:
132
+ response = _a.sent();
133
+ if (response) {
134
+ newReactions_1 = response.data, pagination = response.pagination;
135
+ setReactions(function (prevReactions) { return __spreadArray(__spreadArray([], prevReactions, true), newReactions_1, true); });
136
+ hasMore.current = pagination.hasMore;
137
+ setHasMoreState(pagination.hasMore);
138
+ }
139
+ return [3 /*break*/, 5];
140
+ case 3:
141
+ err_2 = _a.sent();
142
+ handleError(err_2, "Loading more reactions failed:");
143
+ return [3 /*break*/, 5];
144
+ case 4:
145
+ loading.current = false;
146
+ setLoadingState(false);
147
+ return [7 /*endfinally*/];
148
+ case 5: return [2 /*return*/];
149
+ }
150
+ });
151
+ }); };
152
+ if (page > 1 && hasMore.current && !loading.current) {
153
+ loadMoreReactions();
154
+ }
155
+ }, [page, fetchCommentReactions, commentId, limit, reactionType, sortDir]);
156
+ return {
157
+ reactions: reactions,
158
+ loading: loadingState,
159
+ hasMore: hasMoreState,
160
+ loadMore: loadMore,
161
+ refetch: resetReactions,
162
+ };
163
+ }
164
+ export default useFetchCommentReactionsWrapper;
165
+ //# sourceMappingURL=useFetchCommentReactionsWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchCommentReactionsWrapper.js","sourceRoot":"","sources":["../../../../src/hooks/reactions/useFetchCommentReactionsWrapper.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Reaction, ReactionType } from "../../interfaces/models/Reaction";
2
+ import { PaginatedResponse } from "../../interfaces/IPaginatedResponse";
3
+ declare function useFetchEntityReactions(): (props: {
4
+ entityId: string;
5
+ page: number;
6
+ limit?: number;
7
+ reactionType?: ReactionType;
8
+ sortDir?: "asc" | "desc";
9
+ }) => Promise<PaginatedResponse<Reaction>>;
10
+ export default useFetchEntityReactions;
@@ -35,32 +35,45 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  }
36
36
  };
37
37
  import { useCallback } from "react";
38
- import useAxiosPrivate from "../../config/useAxiosPrivate";
39
38
  import useProject from "../projects/useProject";
40
- function useDownvoteEntity() {
39
+ import axios from "../../config/axios";
40
+ function useFetchEntityReactions() {
41
41
  var _this = this;
42
- var axios = useAxiosPrivate();
43
42
  var projectId = useProject().projectId;
44
- var downvoteEntity = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
45
- var response;
46
- var entityId = _b.entityId;
43
+ var fetchEntityReactions = useCallback(function (props) { return __awaiter(_this, void 0, void 0, function () {
44
+ var entityId, page, _a, limit, reactionType, _b, sortDir, params, response;
47
45
  return __generator(this, function (_c) {
48
46
  switch (_c.label) {
49
47
  case 0:
48
+ entityId = props.entityId, page = props.page, _a = props.limit, limit = _a === void 0 ? 20 : _a, reactionType = props.reactionType, _b = props.sortDir, sortDir = _b === void 0 ? "desc" : _b;
49
+ if (page === 0) {
50
+ throw new Error("Can't fetch reactions with page 0");
51
+ }
52
+ if (limit === 0) {
53
+ throw new Error("Can't fetch with limit 0");
54
+ }
55
+ if (!projectId) {
56
+ throw new Error("No project specified");
57
+ }
50
58
  if (!entityId) {
51
59
  throw new Error("No entity ID provided");
52
60
  }
53
- if (!projectId) {
54
- throw new Error("No projectId available");
61
+ params = {
62
+ page: page,
63
+ limit: limit,
64
+ sortDir: sortDir,
65
+ };
66
+ if (reactionType) {
67
+ params.reactionType = reactionType;
55
68
  }
56
- return [4 /*yield*/, axios.patch("/".concat(projectId, "/entities/").concat(entityId, "/downvote"), {}, { withCredentials: true })];
69
+ return [4 /*yield*/, axios.get("/".concat(projectId, "/v7/entities/").concat(entityId, "/reactions"), { params: params })];
57
70
  case 1:
58
71
  response = _c.sent();
59
72
  return [2 /*return*/, response.data];
60
73
  }
61
74
  });
62
- }); }, [axios, projectId]);
63
- return downvoteEntity;
75
+ }); }, [projectId]);
76
+ return fetchEntityReactions;
64
77
  }
65
- export default useDownvoteEntity;
66
- //# sourceMappingURL=useDownvoteEntity.js.map
78
+ export default useFetchEntityReactions;
79
+ //# sourceMappingURL=useFetchEntityReactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchEntityReactions.js","sourceRoot":"","sources":["../../../../src/hooks/reactions/useFetchEntityReactions.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAEvC,SAAS,uBAAuB;IAAhC,iBAkDC;IAjDS,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IAEnC,IAAM,oBAAoB,GAAG,WAAW,CACtC,UAAO,KAMN;;;;;oBACS,QAAQ,GAAuD,KAAK,SAA5D,EAAE,IAAI,GAAiD,KAAK,KAAtD,EAAE,KAA+C,KAAK,MAA1C,EAAV,KAAK,mBAAG,EAAE,KAAA,EAAE,YAAY,GAAuB,KAAK,aAA5B,EAAE,KAAqB,KAAK,QAAV,EAAhB,OAAO,mBAAG,MAAM,KAAA,CAAW;oBAE7E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBACvD,CAAC;oBAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAC9C,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBAED,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC3C,CAAC;oBAEK,MAAM,GAAwB;wBAClC,IAAI,MAAA;wBACJ,KAAK,OAAA;wBACL,OAAO,SAAA;qBACR,CAAC;oBAEF,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;oBACrC,CAAC;oBAEgB,qBAAM,KAAK,CAAC,GAAG,CAC9B,WAAI,SAAS,0BAAgB,QAAQ,eAAY,EACjD,EAAE,MAAM,QAAA,EAAE,CACX,EAAA;;oBAHK,QAAQ,GAAG,SAGhB;oBAED,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;SACtB,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Reaction, ReactionType } from "../../interfaces/models/Reaction";
2
+ export interface UseFetchEntityReactionsWrapperProps {
3
+ entityId: string;
4
+ limit?: number;
5
+ reactionType?: ReactionType;
6
+ sortDir?: "asc" | "desc";
7
+ autoFetch?: boolean;
8
+ }
9
+ export interface UseFetchEntityReactionsWrapperValues {
10
+ reactions: Reaction[];
11
+ loading: boolean;
12
+ hasMore: boolean;
13
+ loadMore: () => void;
14
+ refetch: () => void;
15
+ }
16
+ declare function useFetchEntityReactionsWrapper(props: UseFetchEntityReactionsWrapperProps): UseFetchEntityReactionsWrapperValues;
17
+ export default useFetchEntityReactionsWrapper;
@@ -0,0 +1,165 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
46
+ import { useCallback, useEffect, useRef, useState } from "react";
47
+ import useFetchEntityReactions from "./useFetchEntityReactions";
48
+ import { handleError } from "../../utils/handleError";
49
+ function useFetchEntityReactionsWrapper(props) {
50
+ var _this = this;
51
+ var entityId = props.entityId, _a = props.limit, limit = _a === void 0 ? 20 : _a, reactionType = props.reactionType, _b = props.sortDir, sortDir = _b === void 0 ? "desc" : _b, _c = props.autoFetch, autoFetch = _c === void 0 ? false : _c;
52
+ var fetchEntityReactions = useFetchEntityReactions();
53
+ var loading = useRef(false);
54
+ var _d = useState(false), loadingState = _d[0], setLoadingState = _d[1];
55
+ var hasMore = useRef(true);
56
+ var _e = useState(true), hasMoreState = _e[0], setHasMoreState = _e[1];
57
+ var _f = useState(1), page = _f[0], setPage = _f[1];
58
+ var _g = useState([]), reactions = _g[0], setReactions = _g[1];
59
+ var resetReactions = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
60
+ var response, newReactions, pagination, err_1;
61
+ return __generator(this, function (_a) {
62
+ switch (_a.label) {
63
+ case 0:
64
+ if (!entityId) {
65
+ return [2 /*return*/];
66
+ }
67
+ _a.label = 1;
68
+ case 1:
69
+ _a.trys.push([1, 3, 4, 5]);
70
+ loading.current = true;
71
+ setLoadingState(true);
72
+ hasMore.current = true;
73
+ setHasMoreState(true);
74
+ setPage(1);
75
+ return [4 /*yield*/, fetchEntityReactions({
76
+ entityId: entityId,
77
+ page: 1,
78
+ limit: limit,
79
+ reactionType: reactionType,
80
+ sortDir: sortDir,
81
+ })];
82
+ case 2:
83
+ response = _a.sent();
84
+ if (response) {
85
+ newReactions = response.data, pagination = response.pagination;
86
+ setReactions(newReactions);
87
+ hasMore.current = pagination.hasMore;
88
+ setHasMoreState(pagination.hasMore);
89
+ }
90
+ return [3 /*break*/, 5];
91
+ case 3:
92
+ err_1 = _a.sent();
93
+ handleError(err_1, "Failed to reset reactions:");
94
+ return [3 /*break*/, 5];
95
+ case 4:
96
+ loading.current = false;
97
+ setLoadingState(false);
98
+ return [7 /*endfinally*/];
99
+ case 5: return [2 /*return*/];
100
+ }
101
+ });
102
+ }); }, [fetchEntityReactions, limit, reactionType, sortDir, entityId]);
103
+ var loadMore = function () {
104
+ if (loading.current || !hasMore.current)
105
+ return;
106
+ setPage(function (prevPage) { return prevPage + 1; });
107
+ };
108
+ useEffect(function () {
109
+ if (autoFetch) {
110
+ resetReactions();
111
+ }
112
+ }, [resetReactions, autoFetch]);
113
+ useEffect(function () {
114
+ var loadMoreReactions = function () { return __awaiter(_this, void 0, void 0, function () {
115
+ var response, newReactions_1, pagination, err_2;
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0:
119
+ loading.current = true;
120
+ setLoadingState(true);
121
+ _a.label = 1;
122
+ case 1:
123
+ _a.trys.push([1, 3, 4, 5]);
124
+ return [4 /*yield*/, fetchEntityReactions({
125
+ entityId: entityId,
126
+ page: page,
127
+ limit: limit,
128
+ reactionType: reactionType,
129
+ sortDir: sortDir,
130
+ })];
131
+ case 2:
132
+ response = _a.sent();
133
+ if (response) {
134
+ newReactions_1 = response.data, pagination = response.pagination;
135
+ setReactions(function (prevReactions) { return __spreadArray(__spreadArray([], prevReactions, true), newReactions_1, true); });
136
+ hasMore.current = pagination.hasMore;
137
+ setHasMoreState(pagination.hasMore);
138
+ }
139
+ return [3 /*break*/, 5];
140
+ case 3:
141
+ err_2 = _a.sent();
142
+ handleError(err_2, "Loading more reactions failed:");
143
+ return [3 /*break*/, 5];
144
+ case 4:
145
+ loading.current = false;
146
+ setLoadingState(false);
147
+ return [7 /*endfinally*/];
148
+ case 5: return [2 /*return*/];
149
+ }
150
+ });
151
+ }); };
152
+ if (page > 1 && hasMore.current && !loading.current) {
153
+ loadMoreReactions();
154
+ }
155
+ }, [page, fetchEntityReactions, entityId, limit, reactionType, sortDir]);
156
+ return {
157
+ reactions: reactions,
158
+ loading: loadingState,
159
+ hasMore: hasMoreState,
160
+ loadMore: loadMore,
161
+ refetch: resetReactions,
162
+ };
163
+ }
164
+ export default useFetchEntityReactionsWrapper;
165
+ //# sourceMappingURL=useFetchEntityReactionsWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchEntityReactionsWrapper.js","sourceRoot":"","sources":["../../../../src/hooks/reactions/useFetchEntityReactionsWrapper.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Entity } from "../../interfaces/models/Entity";
2
+ import { Comment } from "../../interfaces/models/Comment";
3
+ import { ReactionType } from "../../interfaces/models/Reaction";
4
+ export interface UseReactionToggleValues {
5
+ toggleReaction: (targetType: "Entity" | "Comment", targetId: string, reactionType: ReactionType, currentReaction: ReactionType | null | undefined) => Promise<Entity | Comment | null>;
6
+ loading: boolean;
7
+ }
8
+ declare function useReactionToggle(): UseReactionToggleValues;
9
+ export default useReactionToggle;
@@ -0,0 +1,83 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { useCallback, useState } from "react";
38
+ import useAddReaction from "./useAddReaction";
39
+ import useRemoveReaction from "./useRemoveReaction";
40
+ import { handleError } from "../../utils/handleError";
41
+ function useReactionToggle() {
42
+ var _this = this;
43
+ var addReaction = useAddReaction();
44
+ var removeReaction = useRemoveReaction();
45
+ var _a = useState(false), loading = _a[0], setLoading = _a[1];
46
+ var toggleReaction = useCallback(function (targetType, targetId, reactionType, currentReaction) { return __awaiter(_this, void 0, void 0, function () {
47
+ var result_1, result, err_1;
48
+ return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0:
51
+ if (loading)
52
+ return [2 /*return*/, null];
53
+ _a.label = 1;
54
+ case 1:
55
+ _a.trys.push([1, 5, 6, 7]);
56
+ setLoading(true);
57
+ if (!(currentReaction === reactionType)) return [3 /*break*/, 3];
58
+ return [4 /*yield*/, removeReaction({ targetType: targetType, targetId: targetId })];
59
+ case 2:
60
+ result_1 = _a.sent();
61
+ return [2 /*return*/, result_1];
62
+ case 3: return [4 /*yield*/, addReaction({ targetType: targetType, targetId: targetId, reactionType: reactionType })];
63
+ case 4:
64
+ result = _a.sent();
65
+ return [2 /*return*/, result];
66
+ case 5:
67
+ err_1 = _a.sent();
68
+ handleError(err_1, "Failed to toggle reaction:");
69
+ return [2 /*return*/, null];
70
+ case 6:
71
+ setLoading(false);
72
+ return [7 /*endfinally*/];
73
+ case 7: return [2 /*return*/];
74
+ }
75
+ });
76
+ }); }, [addReaction, removeReaction, loading]);
77
+ return {
78
+ toggleReaction: toggleReaction,
79
+ loading: loading,
80
+ };
81
+ }
82
+ export default useReactionToggle;
83
+ //# sourceMappingURL=useReactionToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactionToggle.js","sourceRoot":"","sources":["../../../../src/hooks/reactions/useReactionToggle.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAYtD,SAAS,iBAAiB;IAA1B,iBAwCC;IAvCC,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IAE9C,IAAM,cAAc,GAAG,WAAW,CAChC,UACE,UAAgC,EAChC,QAAgB,EAChB,YAA0B,EAC1B,eAAgD;;;;;oBAEhD,IAAI,OAAO;wBAAE,sBAAO,IAAI,EAAC;;;;oBAGvB,UAAU,CAAC,IAAI,CAAC,CAAC;yBAGb,CAAA,eAAe,KAAK,YAAY,CAAA,EAAhC,wBAAgC;oBACnB,qBAAM,cAAc,CAAC,EAAE,UAAU,YAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAA;;oBAAvD,WAAS,SAA8C;oBAC7D,sBAAO,QAAM,EAAC;wBAID,qBAAM,WAAW,CAAC,EAAE,UAAU,YAAA,EAAE,QAAQ,UAAA,EAAE,YAAY,cAAA,EAAE,CAAC,EAAA;;oBAAlE,MAAM,GAAG,SAAyD;oBACxE,sBAAO,MAAM,EAAC;;;oBAEd,WAAW,CAAC,KAAG,EAAE,4BAA4B,CAAC,CAAC;oBAC/C,sBAAO,IAAI,EAAC;;oBAEZ,UAAU,CAAC,KAAK,CAAC,CAAC;;;;;SAErB,EACD,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CACvC,CAAC;IAEF,OAAO;QACL,cAAc,gBAAA;QACd,OAAO,SAAA;KACR,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Entity } from "../../interfaces/models/Entity";
2
+ import { Comment } from "../../interfaces/models/Comment";
3
+ declare function useRemoveReaction(): (props: {
4
+ targetType: "Entity" | "Comment";
5
+ targetId: string;
6
+ }) => Promise<Entity | Comment>;
7
+ export default useRemoveReaction;