@replyke/core 7.0.0-beta.23 → 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 +3 -0
  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 +132 -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 +3 -0
  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 +132 -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
@@ -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;
@@ -37,30 +37,33 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  import { useCallback } from "react";
38
38
  import useAxiosPrivate from "../../config/useAxiosPrivate";
39
39
  import useProject from "../projects/useProject";
40
- function useRemoveCommentDownvote() {
40
+ function useRemoveReaction() {
41
41
  var _this = this;
42
42
  var axios = useAxiosPrivate();
43
43
  var projectId = useProject().projectId;
44
- var removeCommentDownvote = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
45
- var response;
46
- var commentId = _b.commentId;
47
- return __generator(this, function (_c) {
48
- switch (_c.label) {
44
+ var removeReaction = useCallback(function (props) { return __awaiter(_this, void 0, void 0, function () {
45
+ var targetType, targetId, endpoint, response;
46
+ return __generator(this, function (_a) {
47
+ switch (_a.label) {
49
48
  case 0:
50
- if (!commentId) {
51
- throw new Error("No comment ID passed");
49
+ targetType = props.targetType, targetId = props.targetId;
50
+ if (!targetId) {
51
+ throw new Error("No target ID provided");
52
52
  }
53
53
  if (!projectId) {
54
54
  throw new Error("No project specified");
55
55
  }
56
- return [4 /*yield*/, axios.patch("/".concat(projectId, "/comments/").concat(commentId, "/remove-downvote"))];
56
+ endpoint = targetType === "Entity"
57
+ ? "/".concat(projectId, "/v7/entities/").concat(targetId, "/reactions")
58
+ : "/".concat(projectId, "/v7/comments/").concat(targetId, "/reactions");
59
+ return [4 /*yield*/, axios.delete(endpoint)];
57
60
  case 1:
58
- response = _c.sent();
61
+ response = _a.sent();
59
62
  return [2 /*return*/, response.data];
60
63
  }
61
64
  });
62
65
  }); }, [axios, projectId]);
63
- return removeCommentDownvote;
66
+ return removeReaction;
64
67
  }
65
- export default useRemoveCommentDownvote;
66
- //# sourceMappingURL=useRemoveCommentDownvote.js.map
68
+ export default useRemoveReaction;
69
+ //# sourceMappingURL=useRemoveReaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRemoveReaction.js","sourceRoot":"","sources":["../../../../src/hooks/reactions/useRemoveReaction.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAIhD,SAAS,iBAAiB;IAA1B,iBAiCC;IAhCC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IACxB,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IAEnC,IAAM,cAAc,GAAG,WAAW,CAChC,UAAO,KAGN;;;;;oBACS,UAAU,GAAe,KAAK,WAApB,EAAE,QAAQ,GAAK,KAAK,SAAV,CAAW;oBAEvC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBAGK,QAAQ,GACZ,UAAU,KAAK,QAAQ;wBACrB,CAAC,CAAC,WAAI,SAAS,0BAAgB,QAAQ,eAAY;wBACnD,CAAC,CAAC,WAAI,SAAS,0BAAgB,QAAQ,eAAY,CAAC;oBAEvC,qBAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAA;;oBAAvC,QAAQ,GAAG,SAA4B;oBAE7C,sBAAO,QAAQ,CAAC,IAAwB,EAAC;;;SAC1C,EACD,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;IAEF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -13,11 +13,12 @@ export { useAuth, type UseAuthValues } from "./hooks/auth";
13
13
  export { useUser, useUserActions, type UseUserProps, type UseUserValues, } from "./hooks/user";
14
14
  export { useAppNotifications, useAppNotificationsActions, type UseAppNotificationsProps, type UseAppNotificationsValues, } from "./hooks/app-notifications";
15
15
  export { useCollections, useCollectionsActions, useIsEntityInCollection, useCollectionEntitiesWrapper, type UseCollectionsProps, type UseCollectionsValues, type UseCollectionEntitiesWrapperProps, type UseCollectionEntitiesWrapperValues, } from "./hooks/collections";
16
- export { useEntity, useEntityData, useCreateEntity, useDeleteEntity, useDownvoteEntity, useEntityVotes, useFetchEntity, useFetchEntityByForeignId, useFetchEntityByShortId, useFetchManyEntities, useIncrementEntityViews, useFetchManyEntitiesWrapper, useRemoveEntityDownvote, useRemoveEntityUpvote, useUpdateEntity, useUpvoteEntity, type UseFetchManyEntitiesWrapperProps, type UseFetchManyEntitiesWrapperValues, } from "./hooks/entities";
16
+ export { useEntity, useEntityData, useCreateEntity, useDeleteEntity, useFetchEntity, useFetchEntityByForeignId, useFetchEntityByShortId, useFetchManyEntities, useIncrementEntityViews, useFetchManyEntitiesWrapper, useUpdateEntity, type UseFetchManyEntitiesWrapperProps, type UseFetchManyEntitiesWrapperValues, } from "./hooks/entities";
17
17
  export { useEntityList, useEntityListActions, type UseEntityListProps, type UseEntityListValues, type EntityListFilters, type EntityListSort, type EntityListFetchOptions, } from "./hooks/entity-lists";
18
18
  export { useSpace, useSpaceData, useFetchSpace, useFetchSpaceByShortId, useFetchSpaceBySlug, useFetchSpaceBreadcrumb, useFetchSpaceChildren, useFetchManySpaces, useCheckSlugAvailability, useCreateSpace, useUpdateSpace, useDeleteSpace, useJoinSpace, useLeaveSpace, useFetchSpaceMembers, useFetchMySpaces, useUpdateMemberRole, useApproveMember, useDeclineMember, useRemoveMember, useSpacePermissions, type UseSpaceDataProps, type UseSpaceDataValues, type CreateSpaceProps, type UpdateSpaceProps, } from "./hooks/spaces";
19
19
  export { useSpaceList, useSpaceListActions, type UseSpaceListProps, type UseSpaceListValues, } from "./hooks/space-lists";
20
- export { useCommentSection, useCommentSectionData, useCreateComment, useFetchManyComments, useFetchComment, useFetchCommentByForeignId, useReplies, useUpdateComment, useCommentVotes, useDeleteComment, useEntityComments, useFetchManyCommentsWrapper, type UseFetchManyCommentsWrapperProps, type UseFetchManyCommentsWrapperValues, } from "./hooks/comments";
20
+ export { useCommentSection, useCommentSectionData, useCreateComment, useFetchManyComments, useFetchComment, useFetchCommentByForeignId, useReplies, useUpdateComment, useDeleteComment, useEntityComments, useFetchManyCommentsWrapper, type UseFetchManyCommentsWrapperProps, type UseFetchManyCommentsWrapperValues, } from "./hooks/comments";
21
+ export { useFetchEntityReactions, useFetchCommentReactions, useFetchEntityReactionsWrapper, useFetchCommentReactionsWrapper, useAddReaction, useRemoveReaction, useReactionToggle, type UseFetchEntityReactionsWrapperProps, type UseFetchEntityReactionsWrapperValues, type UseFetchCommentReactionsWrapperProps, type UseFetchCommentReactionsWrapperValues, type UseReactionToggleValues, } from "./hooks/reactions";
21
22
  export { useFetchUser, useFetchUserByForeignId, useFetchUserByUsername, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, useUpdateUser, } from "./hooks/users";
22
23
  export { useFetchFollowStatus, useFetchFollowers, useFetchFollowersByUserId, useFetchFollowersCount, useFetchFollowersCountByUserId, useFetchFollowing, useFetchFollowingByUserId, useFetchFollowingCount, useFetchFollowingCountByUserId, useFollowManager, useFollowUser, useUnfollowByFollowId, useUnfollowUserByUserId, } from "./hooks/relationships/follows";
23
24
  export { useRequestConnection, useAcceptConnection, useDeclineConnection, useRemoveConnection, useFetchConnections, useFetchConnectionStatus, useRemoveConnectionByUserId, useFetchConnectionsCount, useFetchSentPendingConnections, useFetchReceivedPendingConnections, useFetchConnectionsByUserId, useFetchConnectionsCountByUserId, useConnectionManager, } from "./hooks/relationships/connections";
@@ -34,6 +35,7 @@ export * as AppNotification from "./interfaces/models/AppNotification";
34
35
  export type { Entity, EntityInclude, EntityIncludeArray, EntityIncludeParam, } from "./interfaces/models/Entity";
35
36
  export type { Collection } from "./interfaces/models/Collection";
36
37
  export type { Comment, GifData, CommentInclude, CommentIncludeArray, CommentIncludeParam, } from "./interfaces/models/Comment";
38
+ export type { Reaction, ReactionType, ReactionCounts, } from "./interfaces/models/Reaction";
37
39
  export type { Mention } from "./interfaces/models/Mention";
38
40
  export type { Space, SpaceDetailed, SpacePreview, SpaceMemberPermissions, ReadingPermission, PostingPermission, PaginationMeta, MySpaceItem, MySpacesResponse, JoinSpaceResponse, LeaveSpaceResponse, UpdateMemberRoleResponse, ApproveMemberResponse, DeclineMemberResponse, DeleteSpaceResponse, } from "./interfaces/models/Space";
39
41
  export type { SpaceMember, SpaceMemberRole, SpaceMemberStatus, SpaceMemberWithUser, SpaceMembersResponse, } from "./interfaces/models/SpaceMember";