@replyke/core 4.0.4 → 4.0.6

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 (75) hide show
  1. package/dist/cjs/context/entity-context.js +2 -2
  2. package/dist/cjs/context/entity-context.js.map +1 -1
  3. package/dist/cjs/hooks/comments/useCommentVotes.d.ts +4 -4
  4. package/dist/cjs/hooks/comments/useCommentVotes.js +132 -55
  5. package/dist/cjs/hooks/comments/useCommentVotes.js.map +1 -1
  6. package/dist/cjs/hooks/comments/useDownvoteComment.d.ts +4 -0
  7. package/dist/cjs/hooks/comments/useDownvoteComment.js +73 -0
  8. package/dist/cjs/hooks/comments/useDownvoteComment.js.map +1 -0
  9. package/dist/cjs/hooks/comments/useRemoveCommentDownvote.d.ts +4 -0
  10. package/dist/cjs/hooks/comments/useRemoveCommentDownvote.js +73 -0
  11. package/dist/cjs/hooks/comments/useRemoveCommentDownvote.js.map +1 -0
  12. package/dist/cjs/hooks/comments/useRemoveCommentUpvote.d.ts +4 -0
  13. package/dist/cjs/hooks/comments/useRemoveCommentUpvote.js +73 -0
  14. package/dist/cjs/hooks/comments/useRemoveCommentUpvote.js.map +1 -0
  15. package/dist/cjs/hooks/comments/useUpvoteComment.d.ts +4 -0
  16. package/dist/cjs/hooks/comments/useUpvoteComment.js +73 -0
  17. package/dist/cjs/hooks/comments/useUpvoteComment.js.map +1 -0
  18. package/dist/cjs/hooks/entities/useDownvoteEntity.d.ts +4 -0
  19. package/dist/cjs/hooks/entities/useDownvoteEntity.js +73 -0
  20. package/dist/cjs/hooks/entities/useDownvoteEntity.js.map +1 -0
  21. package/dist/cjs/hooks/entities/useEntityData.js +10 -4
  22. package/dist/cjs/hooks/entities/useEntityData.js.map +1 -1
  23. package/dist/cjs/hooks/entities/useEntityVotes.d.ts +4 -4
  24. package/dist/cjs/hooks/entities/useEntityVotes.js +138 -57
  25. package/dist/cjs/hooks/entities/useEntityVotes.js.map +1 -1
  26. package/dist/cjs/hooks/entities/useRemoveEntityDownvote.d.ts +4 -0
  27. package/dist/cjs/hooks/entities/useRemoveEntityDownvote.js +73 -0
  28. package/dist/cjs/hooks/entities/useRemoveEntityDownvote.js.map +1 -0
  29. package/dist/cjs/hooks/entities/useRemoveEntityUpvote.d.ts +4 -0
  30. package/dist/cjs/hooks/entities/useRemoveEntityUpvote.js +73 -0
  31. package/dist/cjs/hooks/entities/useRemoveEntityUpvote.js.map +1 -0
  32. package/dist/cjs/hooks/entities/useUpvoteEntity.d.ts +4 -0
  33. package/dist/cjs/hooks/entities/useUpvoteEntity.js +73 -0
  34. package/dist/cjs/hooks/entities/useUpvoteEntity.js.map +1 -0
  35. package/dist/cjs/utils/handleError.d.ts +1 -1
  36. package/dist/cjs/utils/handleError.js +8 -5
  37. package/dist/cjs/utils/handleError.js.map +1 -1
  38. package/dist/esm/context/entity-context.js +2 -2
  39. package/dist/esm/context/entity-context.js.map +1 -1
  40. package/dist/esm/hooks/comments/useCommentVotes.d.ts +4 -4
  41. package/dist/esm/hooks/comments/useCommentVotes.js +132 -55
  42. package/dist/esm/hooks/comments/useCommentVotes.js.map +1 -1
  43. package/dist/esm/hooks/comments/useDownvoteComment.d.ts +4 -0
  44. package/dist/esm/hooks/comments/useDownvoteComment.js +68 -0
  45. package/dist/esm/hooks/comments/useDownvoteComment.js.map +1 -0
  46. package/dist/esm/hooks/comments/useRemoveCommentDownvote.d.ts +4 -0
  47. package/dist/esm/hooks/comments/useRemoveCommentDownvote.js +68 -0
  48. package/dist/esm/hooks/comments/useRemoveCommentDownvote.js.map +1 -0
  49. package/dist/esm/hooks/comments/useRemoveCommentUpvote.d.ts +4 -0
  50. package/dist/esm/hooks/comments/useRemoveCommentUpvote.js +68 -0
  51. package/dist/esm/hooks/comments/useRemoveCommentUpvote.js.map +1 -0
  52. package/dist/esm/hooks/comments/useUpvoteComment.d.ts +4 -0
  53. package/dist/esm/hooks/comments/useUpvoteComment.js +68 -0
  54. package/dist/esm/hooks/comments/useUpvoteComment.js.map +1 -0
  55. package/dist/esm/hooks/entities/useDownvoteEntity.d.ts +4 -0
  56. package/dist/esm/hooks/entities/useDownvoteEntity.js +68 -0
  57. package/dist/esm/hooks/entities/useDownvoteEntity.js.map +1 -0
  58. package/dist/esm/hooks/entities/useEntityData.js +10 -4
  59. package/dist/esm/hooks/entities/useEntityData.js.map +1 -1
  60. package/dist/esm/hooks/entities/useEntityVotes.d.ts +4 -4
  61. package/dist/esm/hooks/entities/useEntityVotes.js +138 -57
  62. package/dist/esm/hooks/entities/useEntityVotes.js.map +1 -1
  63. package/dist/esm/hooks/entities/useRemoveEntityDownvote.d.ts +4 -0
  64. package/dist/esm/hooks/entities/useRemoveEntityDownvote.js +68 -0
  65. package/dist/esm/hooks/entities/useRemoveEntityDownvote.js.map +1 -0
  66. package/dist/esm/hooks/entities/useRemoveEntityUpvote.d.ts +4 -0
  67. package/dist/esm/hooks/entities/useRemoveEntityUpvote.js +68 -0
  68. package/dist/esm/hooks/entities/useRemoveEntityUpvote.js.map +1 -0
  69. package/dist/esm/hooks/entities/useUpvoteEntity.d.ts +4 -0
  70. package/dist/esm/hooks/entities/useUpvoteEntity.js +68 -0
  71. package/dist/esm/hooks/entities/useUpvoteEntity.js.map +1 -0
  72. package/dist/esm/utils/handleError.d.ts +1 -1
  73. package/dist/esm/utils/handleError.js +8 -5
  74. package/dist/esm/utils/handleError.js.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRemoveCommentUpvote.js","sourceRoot":"","sources":["../../../../src/hooks/comments/useRemoveCommentUpvote.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,SAAS,sBAAsB;IAA/B,iBAqBC;IApBC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IACxB,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,WAAI,SAAS,cAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,IAAM,mBAAmB,GAAG,WAAW,CACrC,gEAAO,EAAoC;;YAAlC,SAAS,eAAA;;;;oBAChB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBACK,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7C,qBAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAA;;oBAAlC,QAAQ,GAAG,SAAuB;oBACxC,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;SACtB,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare function useUpvoteComment(): ({ commentId }: {
2
+ commentId: string;
3
+ }) => Promise<any>;
4
+ export default useUpvoteComment;
@@ -0,0 +1,68 @@
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 } from "react";
38
+ import useAxiosPrivate from "../../config/useAxiosPrivate";
39
+ import useProject from "../projects/useProject";
40
+ function useUpvoteComment() {
41
+ var _this = this;
42
+ var axios = useAxiosPrivate();
43
+ var projectId = useProject().projectId;
44
+ var basePath = projectId ? "/".concat(projectId, "/comments") : null;
45
+ var upvoteComment = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
46
+ var path, response;
47
+ var commentId = _b.commentId;
48
+ return __generator(this, function (_c) {
49
+ switch (_c.label) {
50
+ case 0:
51
+ if (!commentId) {
52
+ throw new Error("No comment ID passed");
53
+ }
54
+ if (!basePath) {
55
+ throw new Error("No project specified");
56
+ }
57
+ path = [basePath, commentId, "upvote"].join("/");
58
+ return [4 /*yield*/, axios.patch(path)];
59
+ case 1:
60
+ response = _c.sent();
61
+ return [2 /*return*/, response.data];
62
+ }
63
+ });
64
+ }); }, [axios, basePath]);
65
+ return upvoteComment;
66
+ }
67
+ export default useUpvoteComment;
68
+ //# sourceMappingURL=useUpvoteComment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpvoteComment.js","sourceRoot":"","sources":["../../../../src/hooks/comments/useUpvoteComment.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,SAAS,gBAAgB;IAAzB,iBAqBC;IApBC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IACxB,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,WAAI,SAAS,cAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,IAAM,aAAa,GAAG,WAAW,CAC/B,gEAAO,EAAoC;;YAAlC,SAAS,eAAA;;;;oBAChB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBACK,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtC,qBAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAA;;oBAAlC,QAAQ,GAAG,SAAuB;oBACxC,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;SACtB,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare function useDownvoteEntity(): ({ entityId }: {
2
+ entityId: string;
3
+ }) => Promise<any>;
4
+ export default useDownvoteEntity;
@@ -0,0 +1,68 @@
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 } from "react";
38
+ import useAxiosPrivate from "../../config/useAxiosPrivate";
39
+ import useProject from "../projects/useProject";
40
+ function useDownvoteEntity() {
41
+ var _this = this;
42
+ var axios = useAxiosPrivate();
43
+ var projectId = useProject().projectId;
44
+ var basePath = projectId ? "/".concat(projectId, "/entities") : null;
45
+ var downvoteEntity = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
46
+ var path, response;
47
+ var entityId = _b.entityId;
48
+ return __generator(this, function (_c) {
49
+ switch (_c.label) {
50
+ case 0:
51
+ if (!entityId) {
52
+ throw new Error("No entity ID provided");
53
+ }
54
+ if (!basePath) {
55
+ throw new Error("No projectId available");
56
+ }
57
+ path = [basePath, entityId, "downvote"].join("/");
58
+ return [4 /*yield*/, axios.patch(path)];
59
+ case 1:
60
+ response = _c.sent();
61
+ return [2 /*return*/, response.data];
62
+ }
63
+ });
64
+ }); }, [axios, basePath]);
65
+ return downvoteEntity;
66
+ }
67
+ export default useDownvoteEntity;
68
+ //# sourceMappingURL=useDownvoteEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDownvoteEntity.js","sourceRoot":"","sources":["../../../../src/hooks/entities/useDownvoteEntity.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,SAAS,iBAAiB;IAA1B,iBAqBC;IApBC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IACxB,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,WAAI,SAAS,cAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,IAAM,cAAc,GAAG,WAAW,CAChC,gEAAO,EAAkC;;YAAhC,QAAQ,cAAA;;;;oBACf,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC3C,CAAC;oBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;oBAC5C,CAAC;oBACK,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvC,qBAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAA;;oBAAlC,QAAQ,GAAG,SAAuB;oBACxC,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;SACtB,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -48,7 +48,8 @@ function useEntityData(_a) {
48
48
  var user = useUser().user;
49
49
  var _b = useState(entityProp), entity = _b[0], setEntity = _b[1];
50
50
  var entityViewsIncremented = useRef(false);
51
- var fetchedStatus = useRef({}); // Track status by unique key
51
+ // Cache to store fetched entities keyed by unique identifier
52
+ var entityCache = useRef({});
52
53
  var userUpvotedEntity = !!((entity === null || entity === void 0 ? void 0 : entity.upvotes) &&
53
54
  (user === null || user === void 0 ? void 0 : user.id) &&
54
55
  entity.upvotes.includes(user.id));
@@ -152,9 +153,11 @@ function useEntityData(_a) {
152
153
  if (entity && shortId && entity.shortId === shortId)
153
154
  return [2 /*return*/];
154
155
  uniqueKey = "".concat(entityId !== null && entityId !== void 0 ? entityId : "", "-").concat(referenceId !== null && referenceId !== void 0 ? referenceId : "", "-").concat(shortId !== null && shortId !== void 0 ? shortId : "");
155
- if (fetchedStatus.current[uniqueKey])
156
+ // If we have a cached entity, update the state and exit.
157
+ if (entityCache.current[uniqueKey]) {
158
+ setEntity(entityCache.current[uniqueKey]);
156
159
  return [2 /*return*/];
157
- fetchedStatus.current[uniqueKey] = true;
160
+ }
158
161
  _a.label = 1;
159
162
  case 1:
160
163
  _a.trys.push([1, 3, , 4]);
@@ -166,8 +169,11 @@ function useEntityData(_a) {
166
169
  })];
167
170
  case 2:
168
171
  fetchedEntity = _a.sent();
169
- if (fetchedEntity)
172
+ if (fetchedEntity) {
173
+ // Store the fetched entity in cache.
174
+ entityCache.current[uniqueKey] = fetchedEntity;
170
175
  setEntity(fetchedEntity);
176
+ }
171
177
  return [3 /*break*/, 4];
172
178
  case 3:
173
179
  err_4 = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityData.js","sourceRoot":"","sources":["../../../../src/hooks/entities/useEntityData.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useEntityData.js","sourceRoot":"","sources":["../../../../src/hooks/entities/useEntityData.tsx"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ declare function useEntityVotes(props: {
3
3
  entity: Entity | undefined;
4
4
  setEntity: React.Dispatch<React.SetStateAction<Entity | undefined>>;
5
5
  }): {
6
- upvoteEntity: () => void;
7
- removeEntityUpvote: () => void;
8
- downvoteEntity: () => void;
9
- removeEntityDownvote: () => void;
6
+ upvoteEntity: () => Promise<void>;
7
+ removeEntityUpvote: () => Promise<void>;
8
+ downvoteEntity: () => Promise<void>;
9
+ removeEntityDownvote: () => Promise<void>;
10
10
  };
11
11
  export default useEntityVotes;
@@ -56,45 +56,54 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
56
56
  };
57
57
  import { useCallback, useState } from "react";
58
58
  import { handleError } from "../../utils/handleError";
59
- import useAxiosPrivate from "../../config/useAxiosPrivate";
60
- import useProject from "../projects/useProject";
61
59
  import useUser from "../users/useUser";
60
+ // Import the API communication hooks
61
+ import useUpvoteEntity from "./useUpvoteEntity";
62
+ import useRemoveEntityUpvote from "./useRemoveEntityUpvote";
63
+ import useDownvoteEntity from "./useDownvoteEntity";
64
+ import useRemoveEntityDownvote from "./useRemoveEntityDownvote";
62
65
  function useEntityVotes(props) {
63
66
  var _this = this;
64
- var projectId = useProject().projectId;
65
67
  var user = useUser().user;
66
- var axios = useAxiosPrivate();
67
- var basePath = projectId ? "/".concat(projectId, "/entities") : null;
68
68
  var entity = props.entity, setEntity = props.setEntity;
69
- var _a = useState(false), isUpdating = _a[0], setIsUpdating = _a[1]; // Track in-flight requests
69
+ var _a = useState(false), isUpdating = _a[0], setIsUpdating = _a[1];
70
70
  var _b = useState(entity), previousEntity = _b[0], setPreviousEntity = _b[1];
71
+ // Save the current state for potential reversion on error
71
72
  var updateEntityState = function (newEntityState) {
72
- setPreviousEntity(entity); // Save current state before optimistic update
73
+ setPreviousEntity(entity);
73
74
  setEntity(newEntityState);
74
75
  };
75
76
  var revertToPreviousState = useCallback(function () {
76
77
  setEntity(previousEntity);
77
- }, [setEntity, previousEntity]);
78
- var makeRequest = useCallback(function (subPath, callback) { return __awaiter(_this, void 0, void 0, function () {
79
- var path, response, err_1;
78
+ }, [previousEntity, setEntity]);
79
+ // Get the API request functions from the extracted hooks
80
+ var upvoteEntityRequest = useUpvoteEntity();
81
+ var removeEntityUpvoteRequest = useRemoveEntityUpvote();
82
+ var downvoteEntityRequest = useDownvoteEntity();
83
+ var removeEntityDownvoteRequest = useRemoveEntityDownvote();
84
+ var handleUpvote = function () { return __awaiter(_this, void 0, void 0, function () {
85
+ var updatedEntity, err_1;
80
86
  return __generator(this, function (_a) {
81
87
  switch (_a.label) {
82
88
  case 0:
83
- if (!basePath) {
84
- throw new Error("No projectId available.");
85
- }
86
- if (!entity) {
87
- throw new Error("No entity provided.");
88
- }
89
+ if (!user)
90
+ throw new Error("No authenticated user");
91
+ if (!entity)
92
+ throw new Error("No entity provided");
93
+ if (isUpdating)
94
+ return [2 /*return*/];
95
+ // Optimistic update: add user's upvote and remove any downvote from the user
96
+ updateEntityState(__assign(__assign({}, entity), { upvotes: __spreadArray(__spreadArray([], (entity.upvotes || []), true), [user.id], false), downvotes: (entity.downvotes || []).filter(function (id) { return id !== user.id; }) }));
89
97
  setIsUpdating(true);
90
98
  _a.label = 1;
91
99
  case 1:
92
100
  _a.trys.push([1, 3, 4, 5]);
93
- path = [basePath, entity.id, subPath].join("/");
94
- return [4 /*yield*/, axios.patch(path)];
101
+ return [4 /*yield*/, upvoteEntityRequest({
102
+ entityId: entity.id,
103
+ })];
95
104
  case 2:
96
- response = _a.sent();
97
- callback(response.data);
105
+ updatedEntity = _a.sent();
106
+ setEntity(updatedEntity);
98
107
  return [3 /*break*/, 5];
99
108
  case 3:
100
109
  err_1 = _a.sent();
@@ -107,43 +116,115 @@ function useEntityVotes(props) {
107
116
  case 5: return [2 /*return*/];
108
117
  }
109
118
  });
110
- }); }, [basePath, axios, entity, revertToPreviousState]);
111
- var handleUpvote = function () {
112
- if (!user) {
113
- throw new Error("No authenticated user");
114
- }
115
- if (isUpdating)
116
- return; // Prevent overlapping requests
117
- updateEntityState(__assign(__assign({}, entity), { upvotes: __spreadArray(__spreadArray([], ((entity === null || entity === void 0 ? void 0 : entity.upvotes) || []), true), [user.id], false), downvotes: ((entity === null || entity === void 0 ? void 0 : entity.downvotes) || []).filter(function (id) { return id !== user.id; }) }));
118
- makeRequest("upvote", setEntity);
119
- };
120
- var handleRemoveUpvote = function () {
121
- if (!user) {
122
- throw new Error("No authenticated user");
123
- }
124
- if (isUpdating)
125
- return;
126
- updateEntityState(__assign(__assign({}, entity), { upvotes: ((entity === null || entity === void 0 ? void 0 : entity.upvotes) || []).filter(function (id) { return id !== user.id; }) }));
127
- makeRequest("remove-upvote", setEntity);
128
- };
129
- var handleDownvote = function () {
130
- if (!user) {
131
- throw new Error("No authenticated user");
132
- }
133
- if (isUpdating)
134
- return;
135
- updateEntityState(__assign(__assign({}, entity), { downvotes: __spreadArray(__spreadArray([], ((entity === null || entity === void 0 ? void 0 : entity.downvotes) || []), true), [user.id], false), upvotes: ((entity === null || entity === void 0 ? void 0 : entity.upvotes) || []).filter(function (id) { return id !== user.id; }) }));
136
- makeRequest("downvote", setEntity);
137
- };
138
- var handleRemoveDownvote = function () {
139
- if (!user) {
140
- throw new Error("No authenticated user");
141
- }
142
- if (isUpdating)
143
- return;
144
- updateEntityState(__assign(__assign({}, entity), { downvotes: ((entity === null || entity === void 0 ? void 0 : entity.downvotes) || []).filter(function (id) { return id !== user.id; }) }));
145
- makeRequest("remove-downvote", setEntity);
146
- };
119
+ }); };
120
+ var handleRemoveUpvote = function () { return __awaiter(_this, void 0, void 0, function () {
121
+ var updatedEntity, err_2;
122
+ return __generator(this, function (_a) {
123
+ switch (_a.label) {
124
+ case 0:
125
+ if (!user)
126
+ throw new Error("No authenticated user");
127
+ if (!entity)
128
+ throw new Error("No entity provided");
129
+ if (isUpdating)
130
+ return [2 /*return*/];
131
+ // Optimistic update: remove user's upvote
132
+ updateEntityState(__assign(__assign({}, entity), { upvotes: (entity.upvotes || []).filter(function (id) { return id !== user.id; }) }));
133
+ setIsUpdating(true);
134
+ _a.label = 1;
135
+ case 1:
136
+ _a.trys.push([1, 3, 4, 5]);
137
+ return [4 /*yield*/, removeEntityUpvoteRequest({
138
+ entityId: entity.id,
139
+ })];
140
+ case 2:
141
+ updatedEntity = _a.sent();
142
+ setEntity(updatedEntity);
143
+ return [3 /*break*/, 5];
144
+ case 3:
145
+ err_2 = _a.sent();
146
+ revertToPreviousState();
147
+ handleError(err_2, "Failed to remove upvote from entity: ");
148
+ return [3 /*break*/, 5];
149
+ case 4:
150
+ setIsUpdating(false);
151
+ return [7 /*endfinally*/];
152
+ case 5: return [2 /*return*/];
153
+ }
154
+ });
155
+ }); };
156
+ var handleDownvote = function () { return __awaiter(_this, void 0, void 0, function () {
157
+ var updatedEntity, err_3;
158
+ return __generator(this, function (_a) {
159
+ switch (_a.label) {
160
+ case 0:
161
+ if (!user)
162
+ throw new Error("No authenticated user");
163
+ if (!entity)
164
+ throw new Error("No entity provided");
165
+ if (isUpdating)
166
+ return [2 /*return*/];
167
+ // Optimistic update: add user's downvote and remove any upvote from the user
168
+ updateEntityState(__assign(__assign({}, entity), { downvotes: __spreadArray(__spreadArray([], (entity.downvotes || []), true), [user.id], false), upvotes: (entity.upvotes || []).filter(function (id) { return id !== user.id; }) }));
169
+ setIsUpdating(true);
170
+ _a.label = 1;
171
+ case 1:
172
+ _a.trys.push([1, 3, 4, 5]);
173
+ return [4 /*yield*/, downvoteEntityRequest({
174
+ entityId: entity.id,
175
+ })];
176
+ case 2:
177
+ updatedEntity = _a.sent();
178
+ setEntity(updatedEntity);
179
+ return [3 /*break*/, 5];
180
+ case 3:
181
+ err_3 = _a.sent();
182
+ revertToPreviousState();
183
+ handleError(err_3, "Failed to update entity vote: ");
184
+ return [3 /*break*/, 5];
185
+ case 4:
186
+ setIsUpdating(false);
187
+ return [7 /*endfinally*/];
188
+ case 5: return [2 /*return*/];
189
+ }
190
+ });
191
+ }); };
192
+ var handleRemoveDownvote = function () { return __awaiter(_this, void 0, void 0, function () {
193
+ var updatedEntity, err_4;
194
+ return __generator(this, function (_a) {
195
+ switch (_a.label) {
196
+ case 0:
197
+ if (!user)
198
+ throw new Error("No authenticated user");
199
+ if (!entity)
200
+ throw new Error("No entity provided");
201
+ if (isUpdating)
202
+ return [2 /*return*/];
203
+ // Optimistic update: remove user's downvote
204
+ updateEntityState(__assign(__assign({}, entity), { downvotes: (entity.downvotes || []).filter(function (id) { return id !== user.id; }) }));
205
+ setIsUpdating(true);
206
+ _a.label = 1;
207
+ case 1:
208
+ _a.trys.push([1, 3, 4, 5]);
209
+ return [4 /*yield*/, removeEntityDownvoteRequest({
210
+ entityId: entity.id,
211
+ })];
212
+ case 2:
213
+ updatedEntity = _a.sent();
214
+ setEntity(updatedEntity);
215
+ return [3 /*break*/, 5];
216
+ case 3:
217
+ err_4 = _a.sent();
218
+ revertToPreviousState();
219
+ handleError(err_4, "Failed to remove downvote from entity: ");
220
+ return [3 /*break*/, 5];
221
+ case 4:
222
+ setIsUpdating(false);
223
+ return [7 /*endfinally*/];
224
+ case 5: return [2 /*return*/];
225
+ }
226
+ });
227
+ }); };
147
228
  return {
148
229
  upvoteEntity: handleUpvote,
149
230
  removeEntityUpvote: handleRemoveUpvote,
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityVotes.js","sourceRoot":"","sources":["../../../../src/hooks/entities/useEntityVotes.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useEntityVotes.js","sourceRoot":"","sources":["../../../../src/hooks/entities/useEntityVotes.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare function useRemoveEntityDownvote(): ({ entityId }: {
2
+ entityId: string;
3
+ }) => Promise<any>;
4
+ export default useRemoveEntityDownvote;
@@ -0,0 +1,68 @@
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 } from "react";
38
+ import useAxiosPrivate from "../../config/useAxiosPrivate";
39
+ import useProject from "../projects/useProject";
40
+ function useRemoveEntityDownvote() {
41
+ var _this = this;
42
+ var axios = useAxiosPrivate();
43
+ var projectId = useProject().projectId;
44
+ var basePath = projectId ? "/".concat(projectId, "/entities") : null;
45
+ var removeEntityDownvote = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
46
+ var path, response;
47
+ var entityId = _b.entityId;
48
+ return __generator(this, function (_c) {
49
+ switch (_c.label) {
50
+ case 0:
51
+ if (!entityId) {
52
+ throw new Error("No entity ID provided");
53
+ }
54
+ if (!basePath) {
55
+ throw new Error("No projectId available");
56
+ }
57
+ path = [basePath, entityId, "remove-downvote"].join("/");
58
+ return [4 /*yield*/, axios.patch(path)];
59
+ case 1:
60
+ response = _c.sent();
61
+ return [2 /*return*/, response.data];
62
+ }
63
+ });
64
+ }); }, [axios, basePath]);
65
+ return removeEntityDownvote;
66
+ }
67
+ export default useRemoveEntityDownvote;
68
+ //# sourceMappingURL=useRemoveEntityDownvote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRemoveEntityDownvote.js","sourceRoot":"","sources":["../../../../src/hooks/entities/useRemoveEntityDownvote.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,SAAS,uBAAuB;IAAhC,iBAqBC;IApBC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IACxB,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,WAAI,SAAS,cAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,IAAM,oBAAoB,GAAG,WAAW,CACtC,gEAAO,EAAkC;;YAAhC,QAAQ,cAAA;;;;oBACf,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC3C,CAAC;oBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;oBAC5C,CAAC;oBACK,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC9C,qBAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAA;;oBAAlC,QAAQ,GAAG,SAAuB;oBACxC,sBAAO,QAAQ,CAAC,IAAI,EAAC;;;SACtB,EACD,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClB,CAAC;IAEF,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare function useRemoveEntityUpvote(): ({ entityId }: {
2
+ entityId: string;
3
+ }) => Promise<any>;
4
+ export default useRemoveEntityUpvote;