@webiny/app-aco 5.34.8 → 5.35.0-beta.0

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 (107) hide show
  1. package/README.md +107 -47
  2. package/components/Dialogs/DialogCreate.d.ts +1 -1
  3. package/components/Dialogs/DialogCreate.js +82 -83
  4. package/components/Dialogs/DialogCreate.js.map +1 -1
  5. package/components/Dialogs/DialogDelete.js +46 -77
  6. package/components/Dialogs/DialogDelete.js.map +1 -1
  7. package/components/Dialogs/DialogMove.d.ts +11 -0
  8. package/components/Dialogs/DialogMove.js +115 -0
  9. package/components/Dialogs/DialogMove.js.map +1 -0
  10. package/components/Dialogs/DialogUpdate.js +60 -111
  11. package/components/Dialogs/DialogUpdate.js.map +1 -1
  12. package/components/Dialogs/index.js +0 -6
  13. package/components/Dialogs/index.js.map +1 -1
  14. package/components/Dialogs/styled.d.ts +15 -5
  15. package/components/Dialogs/styled.js +8 -7
  16. package/components/Dialogs/styled.js.map +1 -1
  17. package/components/Tree/ButtonCreate/index.js +0 -10
  18. package/components/Tree/ButtonCreate/index.js.map +1 -1
  19. package/components/Tree/ButtonCreate/styled.d.ts +12 -12
  20. package/components/Tree/ButtonCreate/styled.js +1 -5
  21. package/components/Tree/ButtonCreate/styled.js.map +1 -1
  22. package/components/Tree/Empty/index.js +0 -10
  23. package/components/Tree/Empty/index.js.map +1 -1
  24. package/components/Tree/Empty/styled.d.ts +5 -2
  25. package/components/Tree/Empty/styled.js +0 -3
  26. package/components/Tree/Empty/styled.js.map +1 -1
  27. package/components/Tree/List/constants.js.map +1 -1
  28. package/components/Tree/List/index.d.ts +3 -1
  29. package/components/Tree/List/index.js +60 -99
  30. package/components/Tree/List/index.js.map +1 -1
  31. package/components/Tree/List/utils.d.ts +2 -1
  32. package/components/Tree/List/utils.js +15 -20
  33. package/components/Tree/List/utils.js.map +1 -1
  34. package/components/Tree/Loader/index.js +2 -7
  35. package/components/Tree/Loader/index.js.map +1 -1
  36. package/components/Tree/Loader/styled.d.ts +9 -3
  37. package/components/Tree/Loader/styled.js +0 -3
  38. package/components/Tree/Loader/styled.js.map +1 -1
  39. package/components/Tree/MenuActions/index.js +12 -18
  40. package/components/Tree/MenuActions/index.js.map +1 -1
  41. package/components/Tree/MenuActions/styled.d.ts +8 -2
  42. package/components/Tree/MenuActions/styled.js +8 -5
  43. package/components/Tree/MenuActions/styled.js.map +1 -1
  44. package/components/Tree/Node/index.d.ts +4 -2
  45. package/components/Tree/Node/index.js +18 -29
  46. package/components/Tree/Node/index.js.map +1 -1
  47. package/components/Tree/Node/styled.d.ts +29 -24
  48. package/components/Tree/Node/styled.js +4 -8
  49. package/components/Tree/Node/styled.js.map +1 -1
  50. package/components/Tree/NodePreview/index.js +0 -6
  51. package/components/Tree/NodePreview/index.js.map +1 -1
  52. package/components/Tree/NodePreview/styled.d.ts +5 -2
  53. package/components/Tree/NodePreview/styled.js +0 -3
  54. package/components/Tree/NodePreview/styled.js.map +1 -1
  55. package/components/Tree/Placeholder/index.js +0 -5
  56. package/components/Tree/Placeholder/index.js.map +1 -1
  57. package/components/Tree/Placeholder/styled.d.ts +5 -2
  58. package/components/Tree/Placeholder/styled.js +0 -3
  59. package/components/Tree/Placeholder/styled.js.map +1 -1
  60. package/components/Tree/Title/index.js +2 -9
  61. package/components/Tree/Title/index.js.map +1 -1
  62. package/components/Tree/Title/styled.d.ts +9 -3
  63. package/components/Tree/Title/styled.js +1 -4
  64. package/components/Tree/Title/styled.js.map +1 -1
  65. package/components/Tree/index.d.ts +3 -0
  66. package/components/Tree/index.js +21 -36
  67. package/components/Tree/index.js.map +1 -1
  68. package/components/Tree/styled.d.ts +5 -2
  69. package/components/Tree/styled.js +1 -4
  70. package/components/Tree/styled.js.map +1 -1
  71. package/components/index.js +0 -4
  72. package/components/index.js.map +1 -1
  73. package/contexts/folders.js +193 -267
  74. package/contexts/folders.js.map +1 -1
  75. package/contexts/index.js +2 -8
  76. package/contexts/index.js.map +1 -1
  77. package/contexts/records.d.ts +24 -0
  78. package/contexts/records.js +363 -0
  79. package/contexts/records.js.map +1 -0
  80. package/graphql/folders.gql.js +7 -16
  81. package/graphql/folders.gql.js.map +1 -1
  82. package/graphql/records.gql.d.ts +5 -0
  83. package/graphql/records.gql.js +23 -0
  84. package/graphql/records.gql.js.map +1 -0
  85. package/handlers.js +13 -27
  86. package/handlers.js.map +1 -1
  87. package/hooks/index.d.ts +2 -1
  88. package/hooks/index.js +15 -8
  89. package/hooks/index.js.map +1 -1
  90. package/hooks/useAcoList.d.ts +18 -0
  91. package/hooks/useAcoList.js +137 -0
  92. package/hooks/useAcoList.js.map +1 -0
  93. package/hooks/useFolders.js +6 -12
  94. package/hooks/useFolders.js.map +1 -1
  95. package/hooks/useRecords.d.ts +24 -0
  96. package/hooks/useRecords.js +69 -0
  97. package/hooks/useRecords.js.map +1 -0
  98. package/index.d.ts +1 -1
  99. package/index.js +8 -5
  100. package/index.js.map +1 -1
  101. package/package.json +14 -12
  102. package/sorting.d.ts +3 -0
  103. package/sorting.js +32 -0
  104. package/sorting.js.map +1 -0
  105. package/types.d.ts +63 -38
  106. package/types.js +14 -1
  107. package/types.js.map +1 -1
@@ -0,0 +1,24 @@
1
+ import React, { ReactNode } from "react";
2
+ import { SearchRecordItem, ListMeta, Loading, LoadingActions, Meta, ListDbSort } from "../types";
3
+ interface SearchRecordsContext {
4
+ records: SearchRecordItem[];
5
+ loading: Loading<LoadingActions>;
6
+ meta: Meta<ListMeta>;
7
+ listRecords: (params: {
8
+ type?: string;
9
+ folderId?: string;
10
+ limit?: number;
11
+ after?: string;
12
+ sort?: ListDbSort;
13
+ }) => Promise<SearchRecordItem[]>;
14
+ getRecord: (id: string) => Promise<SearchRecordItem>;
15
+ createRecord: (record: Omit<SearchRecordItem, "id">) => Promise<SearchRecordItem>;
16
+ updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;
17
+ deleteRecord(record: SearchRecordItem): Promise<true>;
18
+ }
19
+ export declare const SearchRecordsContext: React.Context<SearchRecordsContext | undefined>;
20
+ interface Props {
21
+ children: ReactNode;
22
+ }
23
+ export declare const SearchRecordsProvider: ({ children }: Props) => JSX.Element;
24
+ export {};
@@ -0,0 +1,363 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SearchRecordsProvider = exports.SearchRecordsContext = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _objectSpread5 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _reactHooks = require("@apollo/react-hooks");
17
+ var _unionBy = _interopRequireDefault(require("lodash/unionBy"));
18
+ var _handlers = require("../handlers");
19
+ var _records = require("../graphql/records.gql");
20
+ var _sorting = require("../sorting");
21
+ var SearchRecordsContext = /*#__PURE__*/_react.default.createContext(undefined);
22
+ exports.SearchRecordsContext = SearchRecordsContext;
23
+ var defaultLoading = {
24
+ INIT: true,
25
+ LIST: false,
26
+ LIST_MORE: false,
27
+ GET: false,
28
+ CREATE: false,
29
+ UPDATE: false,
30
+ DELETE: false
31
+ };
32
+ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
33
+ var children = _ref.children;
34
+ var client = (0, _reactHooks.useApolloClient)();
35
+ var _useState = (0, _react.useState)([]),
36
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
+ records = _useState2[0],
38
+ setRecords = _useState2[1];
39
+ var _useState3 = (0, _react.useState)(defaultLoading),
40
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
41
+ loading = _useState4[0],
42
+ setLoading = _useState4[1];
43
+ var _useState5 = (0, _react.useState)(Object.create(null)),
44
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
45
+ meta = _useState6[0],
46
+ setMeta = _useState6[1];
47
+ var context = {
48
+ records: records,
49
+ loading: loading,
50
+ meta: meta,
51
+ listRecords: function listRecords(params) {
52
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
53
+ var _meta$folderId;
54
+ var type, folderId, after, limit, sorting, recordsCount, totalCount, action, sort, _yield$apolloFetching, response, _response$search$list, data, responseMeta, error;
55
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
56
+ while (1) switch (_context.prev = _context.next) {
57
+ case 0:
58
+ type = params.type, folderId = params.folderId, after = params.after, limit = params.limit, sorting = params.sort;
59
+ /**
60
+ * Both folderId and type are optional to init `useRecords` but required to list records:
61
+ * this allows us to use `useRecords` methods like `getRecord` without passing useless params.
62
+ * But still, we need these params to list records.
63
+ */
64
+ if (!(!folderId || !type)) {
65
+ _context.next = 3;
66
+ break;
67
+ }
68
+ throw new Error("`folderId` and `type` are mandatory");
69
+ case 3:
70
+ /**
71
+ * Avoiding to fetch records in case they have already been fetched.
72
+ * This happens when visiting a list with all records loaded and receives "after" param.
73
+ */
74
+ recordsCount = records.filter(function (record) {
75
+ return record.location.folderId === folderId;
76
+ }).length;
77
+ totalCount = ((_meta$folderId = meta[folderId]) === null || _meta$folderId === void 0 ? void 0 : _meta$folderId.totalCount) || 0;
78
+ if (!(after && recordsCount === totalCount)) {
79
+ _context.next = 7;
80
+ break;
81
+ }
82
+ return _context.abrupt("return");
83
+ case 7:
84
+ // Remove records in case of sorting change and not a paginated request.
85
+ if (sorting && !after) {
86
+ setRecords([]);
87
+ }
88
+ action = after ? "LIST_MORE" : "LIST";
89
+ sort = (0, _sorting.validateOrGetDefaultDbSort)(sorting);
90
+ _context.next = 12;
91
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)(action, setLoading), function () {
92
+ return client.query({
93
+ query: _records.LIST_RECORDS,
94
+ variables: {
95
+ type: type,
96
+ location: {
97
+ folderId: folderId
98
+ },
99
+ limit: limit,
100
+ after: after,
101
+ sort: sort
102
+ },
103
+ fetchPolicy: "network-only"
104
+ });
105
+ });
106
+ case 12:
107
+ _yield$apolloFetching = _context.sent;
108
+ response = _yield$apolloFetching.data;
109
+ _response$search$list = response.search.listRecords, data = _response$search$list.data, responseMeta = _response$search$list.meta, error = _response$search$list.error;
110
+ if (!(!data || !responseMeta)) {
111
+ _context.next = 17;
112
+ break;
113
+ }
114
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch records");
115
+ case 17:
116
+ // Adjusting sorting while merging records with data received from the server.
117
+ setRecords(function (records) {
118
+ return (0, _sorting.sortTableItems)((0, _unionBy.default)(data, records, "id"), sort);
119
+ });
120
+ setMeta(function (meta) {
121
+ return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, responseMeta));
122
+ });
123
+ setLoading(function (prev) {
124
+ return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), {}, {
125
+ INIT: false
126
+ });
127
+ });
128
+ return _context.abrupt("return", data);
129
+ case 21:
130
+ case "end":
131
+ return _context.stop();
132
+ }
133
+ }, _callee);
134
+ }))();
135
+ },
136
+ getRecord: function getRecord(id) {
137
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
138
+ var _yield$apolloFetching2, response, _response$search$getR, data, error;
139
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
140
+ while (1) switch (_context2.prev = _context2.next) {
141
+ case 0:
142
+ if (id) {
143
+ _context2.next = 2;
144
+ break;
145
+ }
146
+ throw new Error("Record `id` is mandatory");
147
+ case 2:
148
+ _context2.next = 4;
149
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("GET", setLoading), function () {
150
+ return client.query({
151
+ query: _records.GET_RECORD,
152
+ variables: {
153
+ id: id
154
+ },
155
+ fetchPolicy: "network-only"
156
+ });
157
+ });
158
+ case 4:
159
+ _yield$apolloFetching2 = _context2.sent;
160
+ response = _yield$apolloFetching2.data;
161
+ _response$search$getR = response.search.getRecord, data = _response$search$getR.data, error = _response$search$getR.error;
162
+ if (!(error && error.code !== "NOT_FOUND")) {
163
+ _context2.next = 9;
164
+ break;
165
+ }
166
+ throw new Error("Network error while syncing record");
167
+ case 9:
168
+ if (!data) {
169
+ // No record found - must be deleted by previous operation
170
+ setRecords(function (records) {
171
+ return records.filter(function (record) {
172
+ return record.id !== id;
173
+ });
174
+ });
175
+ } else {
176
+ setRecords(function (prevRecords) {
177
+ var recordIndex = prevRecords.findIndex(function (record) {
178
+ return record.id === id;
179
+ });
180
+
181
+ // No record found in the list - must be added by previous operation
182
+ if (recordIndex === -1) {
183
+ return [].concat((0, _toConsumableArray2.default)(prevRecords), [data]);
184
+ }
185
+
186
+ // Updating record found in the list
187
+ var result = [].concat((0, _toConsumableArray2.default)(prevRecords.slice(0, recordIndex)), [(0, _objectSpread5.default)((0, _objectSpread5.default)({}, prevRecords[recordIndex]), data)], (0, _toConsumableArray2.default)(prevRecords.slice(recordIndex + 1)));
188
+ return result;
189
+ });
190
+ }
191
+ return _context2.abrupt("return", data);
192
+ case 11:
193
+ case "end":
194
+ return _context2.stop();
195
+ }
196
+ }, _callee2);
197
+ }))();
198
+ },
199
+ createRecord: function createRecord(record) {
200
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
201
+ var location, folderId, _yield$apolloFetching3, response, _response$search$crea, data, error;
202
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
203
+ while (1) switch (_context3.prev = _context3.next) {
204
+ case 0:
205
+ location = record.location;
206
+ folderId = location.folderId;
207
+ _context3.next = 4;
208
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("CREATE", setLoading), function () {
209
+ return client.mutate({
210
+ mutation: _records.CREATE_RECORD,
211
+ variables: {
212
+ data: record
213
+ }
214
+ });
215
+ });
216
+ case 4:
217
+ _yield$apolloFetching3 = _context3.sent;
218
+ response = _yield$apolloFetching3.data;
219
+ if (response) {
220
+ _context3.next = 8;
221
+ break;
222
+ }
223
+ throw new Error("Network error while creating search record");
224
+ case 8:
225
+ _response$search$crea = response.search.createRecord, data = _response$search$crea.data, error = _response$search$crea.error;
226
+ if (data) {
227
+ _context3.next = 11;
228
+ break;
229
+ }
230
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not create record");
231
+ case 11:
232
+ setRecords(function (records) {
233
+ return [].concat((0, _toConsumableArray2.default)(records), [data]);
234
+ });
235
+ setMeta(function (meta) {
236
+ return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta[folderId]), {}, {
237
+ totalCount: ++meta[folderId].totalCount
238
+ })));
239
+ });
240
+ return _context3.abrupt("return", data);
241
+ case 14:
242
+ case "end":
243
+ return _context3.stop();
244
+ }
245
+ }, _callee3);
246
+ }))();
247
+ },
248
+ updateRecord: function updateRecord(record, contextFolderId) {
249
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
250
+ var id, location, data, title, content, _yield$apolloFetching4, response, _response$search$upda, result, error;
251
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
252
+ while (1) switch (_context4.prev = _context4.next) {
253
+ case 0:
254
+ if (contextFolderId) {
255
+ _context4.next = 2;
256
+ break;
257
+ }
258
+ throw new Error("`folderId` is mandatory");
259
+ case 2:
260
+ id = record.id, location = record.location, data = record.data, title = record.title, content = record.content;
261
+ _context4.next = 5;
262
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("UPDATE", setLoading), function () {
263
+ return client.mutate({
264
+ mutation: _records.UPDATE_RECORD,
265
+ variables: {
266
+ id: id,
267
+ data: {
268
+ title: title,
269
+ content: content,
270
+ location: location,
271
+ data: data
272
+ }
273
+ }
274
+ });
275
+ });
276
+ case 5:
277
+ _yield$apolloFetching4 = _context4.sent;
278
+ response = _yield$apolloFetching4.data;
279
+ if (response) {
280
+ _context4.next = 9;
281
+ break;
282
+ }
283
+ throw new Error("Network error while updating record");
284
+ case 9:
285
+ _response$search$upda = response.search.updateRecord, result = _response$search$upda.data, error = _response$search$upda.error;
286
+ if (result) {
287
+ _context4.next = 12;
288
+ break;
289
+ }
290
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not update record");
291
+ case 12:
292
+ setRecords(function (records) {
293
+ return records.map(function (record) {
294
+ return record.id === id ? result : record;
295
+ }).filter(function (record) {
296
+ return record.location.folderId === contextFolderId;
297
+ });
298
+ });
299
+ return _context4.abrupt("return", result);
300
+ case 14:
301
+ case "end":
302
+ return _context4.stop();
303
+ }
304
+ }, _callee4);
305
+ }))();
306
+ },
307
+ deleteRecord: function deleteRecord(record) {
308
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
309
+ var id, location, folderId, _yield$apolloFetching5, response, _response$search$dele, data, error;
310
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
311
+ while (1) switch (_context5.prev = _context5.next) {
312
+ case 0:
313
+ id = record.id, location = record.location;
314
+ folderId = location.folderId;
315
+ _context5.next = 4;
316
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("DELETE", setLoading), function () {
317
+ return client.mutate({
318
+ mutation: _records.DELETE_RECORD,
319
+ variables: {
320
+ id: id
321
+ }
322
+ });
323
+ });
324
+ case 4:
325
+ _yield$apolloFetching5 = _context5.sent;
326
+ response = _yield$apolloFetching5.data;
327
+ if (response) {
328
+ _context5.next = 8;
329
+ break;
330
+ }
331
+ throw new Error("Network error while deleting record");
332
+ case 8:
333
+ _response$search$dele = response.search.deleteRecord, data = _response$search$dele.data, error = _response$search$dele.error;
334
+ if (data) {
335
+ _context5.next = 11;
336
+ break;
337
+ }
338
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not delete record");
339
+ case 11:
340
+ setRecords(function (records) {
341
+ return records.filter(function (record) {
342
+ return record.id !== id;
343
+ });
344
+ });
345
+ setMeta(function (meta) {
346
+ return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta[folderId]), {}, {
347
+ totalCount: --meta[folderId].totalCount
348
+ })));
349
+ });
350
+ return _context5.abrupt("return", true);
351
+ case 14:
352
+ case "end":
353
+ return _context5.stop();
354
+ }
355
+ }, _callee5);
356
+ }))();
357
+ }
358
+ };
359
+ return /*#__PURE__*/_react.default.createElement(SearchRecordsContext.Provider, {
360
+ value: context
361
+ }, children);
362
+ };
363
+ exports.SearchRecordsProvider = SearchRecordsProvider;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SearchRecordsContext","React","createContext","undefined","defaultLoading","INIT","LIST","LIST_MORE","GET","CREATE","UPDATE","DELETE","SearchRecordsProvider","children","client","useApolloClient","useState","records","setRecords","loading","setLoading","Object","create","meta","setMeta","context","listRecords","params","type","folderId","after","limit","sorting","sort","Error","recordsCount","filter","record","location","length","totalCount","action","validateOrGetDefaultDbSort","apolloFetchingHandler","loadingHandler","query","LIST_RECORDS","variables","fetchPolicy","response","data","search","responseMeta","error","message","sortTableItems","unionBy","prev","getRecord","id","GET_RECORD","code","prevRecords","recordIndex","findIndex","result","slice","createRecord","mutate","mutation","CREATE_RECORD","updateRecord","contextFolderId","title","content","UPDATE_RECORD","map","deleteRecord","DELETE_RECORD"],"sources":["records.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport unionBy from \"lodash/unionBy\";\n\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers\";\n\nimport {\n CREATE_RECORD,\n DELETE_RECORD,\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD\n} from \"~/graphql/records.gql\";\n\nimport {\n CreateSearchRecordResponse,\n CreateSearchRecordVariables,\n DeleteSearchRecordResponse,\n DeleteSearchRecordVariables,\n GetSearchRecordQueryVariables,\n GetSearchRecordResponse,\n SearchRecordItem,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsResponse,\n ListMeta,\n Loading,\n LoadingActions,\n Meta,\n UpdateSearchRecordResponse,\n UpdateSearchRecordVariables,\n ListDbSort\n} from \"~/types\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\n\ninterface SearchRecordsContext {\n records: SearchRecordItem[];\n loading: Loading<LoadingActions>;\n meta: Meta<ListMeta>;\n listRecords: (params: {\n type?: string;\n folderId?: string;\n limit?: number;\n after?: string;\n sort?: ListDbSort;\n }) => Promise<SearchRecordItem[]>;\n getRecord: (id: string) => Promise<SearchRecordItem>;\n createRecord: (record: Omit<SearchRecordItem, \"id\">) => Promise<SearchRecordItem>;\n updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;\n deleteRecord(record: SearchRecordItem): Promise<true>;\n}\n\nexport const SearchRecordsContext = React.createContext<SearchRecordsContext | undefined>(\n undefined\n);\n\ninterface Props {\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nexport const SearchRecordsProvider = ({ children }: Props) => {\n const client = useApolloClient();\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [loading, setLoading] = useState<Loading<LoadingActions>>(defaultLoading);\n const [meta, setMeta] = useState<Meta<ListMeta>>(Object.create(null));\n\n const context: SearchRecordsContext = {\n records,\n loading,\n meta,\n async listRecords(params) {\n const { type, folderId, after, limit, sort: sorting } = params;\n\n /**\n * Both folderId and type are optional to init `useRecords` but required to list records:\n * this allows us to use `useRecords` methods like `getRecord` without passing useless params.\n * But still, we need these params to list records.\n */\n if (!folderId || !type) {\n throw new Error(\"`folderId` and `type` are mandatory\");\n }\n\n /**\n * Avoiding to fetch records in case they have already been fetched.\n * This happens when visiting a list with all records loaded and receives \"after\" param.\n */\n const recordsCount = records.filter(\n record => record.location.folderId === folderId\n ).length;\n const totalCount = meta[folderId]?.totalCount || 0;\n if (after && recordsCount === totalCount) {\n return;\n }\n\n // Remove records in case of sorting change and not a paginated request.\n if (sorting && !after) {\n setRecords([]);\n }\n\n const action = after ? \"LIST_MORE\" : \"LIST\";\n const sort = validateOrGetDefaultDbSort(sorting);\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(action, setLoading),\n () =>\n client.query<ListSearchRecordsResponse, ListSearchRecordsQueryVariables>({\n query: LIST_RECORDS,\n variables: { type, location: { folderId }, limit, after, sort },\n fetchPolicy: \"network-only\"\n })\n );\n\n const { data, meta: responseMeta, error } = response.search.listRecords;\n\n if (!data || !responseMeta) {\n throw new Error(error?.message || \"Could not fetch records\");\n }\n\n // Adjusting sorting while merging records with data received from the server.\n setRecords(records => sortTableItems(unionBy(data, records, \"id\"), sort));\n\n setMeta(meta => ({\n ...meta,\n [folderId]: responseMeta\n }));\n\n setLoading(prev => {\n return {\n ...prev,\n INIT: false\n };\n });\n\n return data;\n },\n\n async getRecord(id) {\n if (!id) {\n throw new Error(\"Record `id` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetSearchRecordResponse, GetSearchRecordQueryVariables>({\n query: GET_RECORD,\n variables: { id },\n fetchPolicy: \"network-only\"\n })\n );\n\n const { data, error } = response.search.getRecord;\n\n if (error && error.code !== \"NOT_FOUND\") {\n throw new Error(\"Network error while syncing record\");\n }\n\n if (!data) {\n // No record found - must be deleted by previous operation\n setRecords(records => records.filter(record => record.id !== id));\n } else {\n setRecords(prevRecords => {\n const recordIndex = prevRecords.findIndex(record => record.id === id);\n\n // No record found in the list - must be added by previous operation\n if (recordIndex === -1) {\n return [...prevRecords, data];\n }\n\n // Updating record found in the list\n const result = [\n ...prevRecords.slice(0, recordIndex),\n {\n ...prevRecords[recordIndex],\n ...data\n },\n ...prevRecords.slice(recordIndex + 1)\n ];\n\n return result;\n });\n }\n\n return data;\n },\n\n async createRecord(record) {\n const { location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateSearchRecordResponse, CreateSearchRecordVariables>({\n mutation: CREATE_RECORD,\n variables: { data: record }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating search record\");\n }\n\n const { data, error } = response.search.createRecord;\n\n if (!data) {\n throw new Error(error?.message || \"Could not create record\");\n }\n\n setRecords(records => [...records, data]);\n\n setMeta(meta => ({\n ...meta,\n [folderId]: {\n ...meta[folderId],\n totalCount: ++meta[folderId].totalCount\n }\n }));\n\n return data;\n },\n\n async updateRecord(record, contextFolderId) {\n if (!contextFolderId) {\n throw new Error(\"`folderId` is mandatory\");\n }\n\n const { id, location, data, title, content } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateSearchRecordResponse, UpdateSearchRecordVariables>({\n mutation: UPDATE_RECORD,\n variables: { id, data: { title, content, location, data } }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating record\");\n }\n\n const { data: result, error } = response.search.updateRecord;\n\n if (!result) {\n throw new Error(error?.message || \"Could not update record\");\n }\n\n setRecords(records =>\n records\n .map(record => (record.id === id ? result : record))\n .filter(record => record.location.folderId === contextFolderId)\n );\n\n return result;\n },\n\n async deleteRecord(record) {\n const { id, location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteSearchRecordResponse, DeleteSearchRecordVariables>({\n mutation: DELETE_RECORD,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting record\");\n }\n\n const { data, error } = response.search.deleteRecord;\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete record\");\n }\n\n setRecords(records => records.filter(record => record.id !== id));\n\n setMeta(meta => ({\n ...meta,\n [folderId]: {\n ...meta[folderId],\n totalCount: --meta[folderId].totalCount\n }\n }));\n\n return true;\n }\n };\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -1,31 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.UPDATE_FOLDER = exports.LIST_FOLDERS = exports.GET_FOLDER = exports.DELETE_FOLDER = exports.CREATE_FOLDER = void 0;
9
-
10
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
13
-
14
10
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
15
-
16
- var ERROR_FIELD =
17
- /* GraphQL */
18
- "\n {\n code\n data\n message\n }\n";
19
- var DATA_FIELD =
20
- /* GraphQL */
21
- "\n {\n id\n name\n slug\n parentId\n type\n createdOn\n createdBy {\n id\n displayName\n }\n }\n";
22
- var CREATE_FOLDER = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n mutation CreateFolder($data: FolderCreateInput!) {\n folders {\n createFolder(data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
11
+ var ERROR_FIELD = /* GraphQL */"\n {\n code\n data\n message\n }\n";
12
+ var DATA_FIELD = /* GraphQL */"\n {\n id\n title\n slug\n parentId\n type\n savedOn\n createdOn\n createdBy {\n id\n displayName\n }\n }\n";
13
+ var CREATE_FOLDER = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n mutation CreateFolder($data: FolderCreateInput!) {\n aco {\n createFolder(data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
23
14
  exports.CREATE_FOLDER = CREATE_FOLDER;
24
- var LIST_FOLDERS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListFolders ($type: String!) {\n folders {\n listFolders(where: { type: $type }) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
15
+ var LIST_FOLDERS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListFolders ($type: String!) {\n aco {\n listFolders(where: { type: $type }) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
25
16
  exports.LIST_FOLDERS = LIST_FOLDERS;
26
- var GET_FOLDER = (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n query GetFolder ($id: ID!) {\n folders {\n getFolder(id: $id) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
17
+ var GET_FOLDER = (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n query GetFolder ($id: ID!) {\n aco {\n getFolder(id: $id) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
27
18
  exports.GET_FOLDER = GET_FOLDER;
28
- var UPDATE_FOLDER = (0, _graphqlTag.default)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n mutation UpdateFolder($id: ID!, $data: FolderUpdateInput!) {\n folders {\n updateFolder(id: $id, data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
19
+ var UPDATE_FOLDER = (0, _graphqlTag.default)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n mutation UpdateFolder($id: ID!, $data: FolderUpdateInput!) {\n aco {\n updateFolder(id: $id, data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
29
20
  exports.UPDATE_FOLDER = UPDATE_FOLDER;
30
- var DELETE_FOLDER = (0, _graphqlTag.default)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n mutation DeleteFolder($id: ID!) {\n folders {\n deleteFolder(id: $id) {\n data\n error ", "\n }\n }\n }\n"])), ERROR_FIELD);
21
+ var DELETE_FOLDER = (0, _graphqlTag.default)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n mutation DeleteFolder($id: ID!) {\n aco {\n deleteFolder(id: $id) {\n data\n error ", "\n }\n }\n }\n"])), ERROR_FIELD);
31
22
  exports.DELETE_FOLDER = DELETE_FOLDER;
@@ -1 +1 @@
1
- {"version":3,"names":["ERROR_FIELD","DATA_FIELD","CREATE_FOLDER","gql","LIST_FOLDERS","GET_FOLDER","UPDATE_FOLDER","DELETE_FOLDER"],"sources":["folders.gql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst ERROR_FIELD = /* GraphQL */ `\n {\n code\n data\n message\n }\n`;\n\nconst DATA_FIELD = /* GraphQL */ `\n {\n id\n name\n slug\n parentId\n type\n createdOn\n createdBy {\n id\n displayName\n }\n }\n`;\n\nexport const CREATE_FOLDER = gql`\n mutation CreateFolder($data: FolderCreateInput!) {\n folders {\n createFolder(data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const LIST_FOLDERS = gql`\n query ListFolders ($type: String!) {\n folders {\n listFolders(where: { type: $type }) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const GET_FOLDER = gql`\n query GetFolder ($id: ID!) {\n folders {\n getFolder(id: $id) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const UPDATE_FOLDER = gql`\n mutation UpdateFolder($id: ID!, $data: FolderUpdateInput!) {\n folders {\n updateFolder(id: $id, data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const DELETE_FOLDER = gql`\n mutation DeleteFolder($id: ID!) {\n folders {\n deleteFolder(id: $id) {\n data\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AAEA,IAAMA,WAAW;AAAG;AAAH,+DAAjB;AAQA,IAAMC,UAAU;AAAG;AAAH,sLAAhB;AAeO,IAAMC,aAAa,OAAGC,mBAAH,mSAIHF,UAJG,EAKFD,WALE,CAAnB;;AAWA,IAAMI,YAAY,OAAGD,mBAAH,iSAIFF,UAJE,EAKDD,WALC,CAAlB;;AAWA,IAAMK,UAAU,OAAGF,mBAAH,wQAIAF,UAJA,EAKCD,WALD,CAAhB;;AAWA,IAAMM,aAAa,OAAGH,mBAAH,wTAIHF,UAJG,EAKFD,WALE,CAAnB;;AAWA,IAAMO,aAAa,OAAGJ,mBAAH,2QAKFH,WALE,CAAnB"}
1
+ {"version":3,"names":["ERROR_FIELD","DATA_FIELD","CREATE_FOLDER","gql","LIST_FOLDERS","GET_FOLDER","UPDATE_FOLDER","DELETE_FOLDER"],"sources":["folders.gql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst ERROR_FIELD = /* GraphQL */ `\n {\n code\n data\n message\n }\n`;\n\nconst DATA_FIELD = /* GraphQL */ `\n {\n id\n title\n slug\n parentId\n type\n savedOn\n createdOn\n createdBy {\n id\n displayName\n }\n }\n`;\n\nexport const CREATE_FOLDER = gql`\n mutation CreateFolder($data: FolderCreateInput!) {\n aco {\n createFolder(data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const LIST_FOLDERS = gql`\n query ListFolders ($type: String!) {\n aco {\n listFolders(where: { type: $type }) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const GET_FOLDER = gql`\n query GetFolder ($id: ID!) {\n aco {\n getFolder(id: $id) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const UPDATE_FOLDER = gql`\n mutation UpdateFolder($id: ID!, $data: FolderUpdateInput!) {\n aco {\n updateFolder(id: $id, data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const DELETE_FOLDER = gql`\n mutation DeleteFolder($id: ID!) {\n aco {\n deleteFolder(id: $id) {\n data\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,WAAW,GAAG,4EAMnB;AAED,IAAMC,UAAU,GAAG,qNAclB;AAEM,IAAMC,aAAa,OAAGC,mBAAG,+RAITF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMI,YAAY,OAAGD,mBAAG,6RAIRF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMK,UAAU,OAAGF,mBAAG,oQAINF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMM,aAAa,OAAGH,mBAAG,oTAITF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMO,aAAa,OAAGJ,mBAAG,uQAKRH,WAAW,CAIlC;AAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const CREATE_RECORD: import("graphql").DocumentNode;
2
+ export declare const LIST_RECORDS: import("graphql").DocumentNode;
3
+ export declare const GET_RECORD: import("graphql").DocumentNode;
4
+ export declare const UPDATE_RECORD: import("graphql").DocumentNode;
5
+ export declare const DELETE_RECORD: import("graphql").DocumentNode;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.UPDATE_RECORD = exports.LIST_RECORDS = exports.GET_RECORD = exports.DELETE_RECORD = exports.CREATE_RECORD = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
11
+ var ERROR_FIELD = /* GraphQL */"\n {\n code\n data\n message\n }\n";
12
+ var DATA_FIELD = /* GraphQL */"\n {\n id\n type\n location {\n folderId\n }\n title\n content\n data\n savedOn\n }\n";
13
+ var LIST_META_FIELD = /* GraphQL */"\n {\n cursor\n totalCount\n hasMoreItems\n }\n";
14
+ var CREATE_RECORD = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n mutation CreateRecord($data: SearchRecordCreateInput!) {\n search {\n createRecord(data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
15
+ exports.CREATE_RECORD = CREATE_RECORD;
16
+ var LIST_RECORDS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListRecords ($type: String!, $location: SearchLocationInput!, $limit: Int, $after: String, $sort: AcoSort!) {\n search {\n listRecords(where: { type: $type, location: $location }, limit: $limit, after: $after, sort: $sort) {\n data ", "\n meta ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, LIST_META_FIELD, ERROR_FIELD);
17
+ exports.LIST_RECORDS = LIST_RECORDS;
18
+ var GET_RECORD = (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n query GetRecord ($id: ID!) {\n search {\n getRecord(id: $id) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
19
+ exports.GET_RECORD = GET_RECORD;
20
+ var UPDATE_RECORD = (0, _graphqlTag.default)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n mutation UpdateRecord($id: ID!, $data: SearchRecordUpdateInput!) {\n search {\n updateRecord(id: $id, data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
21
+ exports.UPDATE_RECORD = UPDATE_RECORD;
22
+ var DELETE_RECORD = (0, _graphqlTag.default)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n mutation DeleteRecord($id: ID!) {\n search {\n deleteRecord(id: $id) {\n data\n error ", "\n }\n }\n }\n"])), ERROR_FIELD);
23
+ exports.DELETE_RECORD = DELETE_RECORD;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ERROR_FIELD","DATA_FIELD","LIST_META_FIELD","CREATE_RECORD","gql","LIST_RECORDS","GET_RECORD","UPDATE_RECORD","DELETE_RECORD"],"sources":["records.gql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst ERROR_FIELD = /* GraphQL */ `\n {\n code\n data\n message\n }\n`;\n\nconst DATA_FIELD = /* GraphQL */ `\n {\n id\n type\n location {\n folderId\n }\n title\n content\n data\n savedOn\n }\n`;\n\nconst LIST_META_FIELD = /* GraphQL */ `\n {\n cursor\n totalCount\n hasMoreItems\n }\n`;\n\nexport const CREATE_RECORD = gql`\n mutation CreateRecord($data: SearchRecordCreateInput!) {\n search {\n createRecord(data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const LIST_RECORDS = gql`\n query ListRecords ($type: String!, $location: SearchLocationInput!, $limit: Int, $after: String, $sort: AcoSort!) {\n search {\n listRecords(where: { type: $type, location: $location }, limit: $limit, after: $after, sort: $sort) {\n data ${DATA_FIELD}\n meta ${LIST_META_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const GET_RECORD = gql`\n query GetRecord ($id: ID!) {\n search {\n getRecord(id: $id) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const UPDATE_RECORD = gql`\n mutation UpdateRecord($id: ID!, $data: SearchRecordUpdateInput!) {\n search {\n updateRecord(id: $id, data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const DELETE_RECORD = gql`\n mutation DeleteRecord($id: ID!) {\n search {\n deleteRecord(id: $id) {\n data\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,WAAW,GAAG,4EAMnB;AAED,IAAMC,UAAU,GAAG,6KAYlB;AAED,IAAMC,eAAe,GAAG,yFAMvB;AAEM,IAAMC,aAAa,OAAGC,mBAAG,wSAITH,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMK,YAAY,OAAGD,mBAAG,0cAIRH,UAAU,EACVC,eAAe,EACdF,WAAW,CAIlC;AAAC;AAEK,IAAMM,UAAU,OAAGF,mBAAG,uQAINH,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMO,aAAa,OAAGH,mBAAG,6TAITH,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMQ,aAAa,OAAGJ,mBAAG,0QAKRJ,WAAW,CAIlC;AAAC"}
package/handlers.js CHANGED
@@ -1,20 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.loadingHandler = exports.apolloFetchingHandler = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
-
14
10
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
15
-
16
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
12
  /**
19
13
  * A simple wrapper for Apollo fetching operations that handles the `loading` state as side effect.
20
14
  *
@@ -25,40 +19,33 @@ var apolloFetchingHandler = /*#__PURE__*/function () {
25
19
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(loadingHandler, apolloQuery) {
26
20
  var response;
27
21
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
28
- while (1) {
29
- switch (_context.prev = _context.next) {
30
- case 0:
31
- loadingHandler(true);
32
- _context.next = 3;
33
- return apolloQuery();
34
-
35
- case 3:
36
- response = _context.sent;
37
- loadingHandler(false);
38
- return _context.abrupt("return", response);
39
-
40
- case 6:
41
- case "end":
42
- return _context.stop();
43
- }
22
+ while (1) switch (_context.prev = _context.next) {
23
+ case 0:
24
+ loadingHandler(true);
25
+ _context.next = 3;
26
+ return apolloQuery();
27
+ case 3:
28
+ response = _context.sent;
29
+ loadingHandler(false);
30
+ return _context.abrupt("return", response);
31
+ case 6:
32
+ case "end":
33
+ return _context.stop();
44
34
  }
45
35
  }, _callee);
46
36
  }));
47
-
48
37
  return function apolloFetchingHandler(_x, _x2) {
49
38
  return _ref.apply(this, arguments);
50
39
  };
51
40
  }();
41
+
52
42
  /**
53
43
  * A simple function to handle `loading` state.
54
44
  *
55
45
  * @param action: the `action` that has been performed.
56
46
  * @param setState: the logic to update the loading state.
57
47
  */
58
-
59
-
60
48
  exports.apolloFetchingHandler = apolloFetchingHandler;
61
-
62
49
  var loadingHandler = function loadingHandler(action, setState) {
63
50
  return function (flag) {
64
51
  setState(function (state) {
@@ -66,5 +53,4 @@ var loadingHandler = function loadingHandler(action, setState) {
66
53
  });
67
54
  };
68
55
  };
69
-
70
56
  exports.loadingHandler = loadingHandler;
package/handlers.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["apolloFetchingHandler","loadingHandler","apolloQuery","response","action","setState","flag","state"],"sources":["handlers.tsx"],"sourcesContent":["import { Dispatch, SetStateAction } from \"react\";\nimport { ApolloQueryResult } from \"apollo-client/core/types\";\nimport { FetchResult } from \"apollo-link\";\nimport { Loading, LoadingActions } from \"~/types\";\n\n/**\n * A simple wrapper for Apollo fetching operations that handles the `loading` state as side effect.\n *\n * @param loadingHandler: function that handle the loading state.\n * @param apolloQuery: Apollo Query or Mutation\n */\nexport const apolloFetchingHandler = async (\n loadingHandler: (flag: boolean) => void,\n apolloQuery: () => Promise<ApolloQueryResult<any> | FetchResult<any>>\n) => {\n loadingHandler(true);\n\n const response = await apolloQuery();\n loadingHandler(false);\n\n return response;\n};\n\n/**\n * A simple function to handle `loading` state.\n *\n * @param action: the `action` that has been performed.\n * @param setState: the logic to update the loading state.\n */\nexport const loadingHandler = (\n action: LoadingActions,\n setState: Dispatch<SetStateAction<Loading<LoadingActions>>>\n) => {\n return (flag: boolean) => {\n setState(state => {\n return {\n ...state,\n [action]: flag\n };\n });\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,qBAAqB;EAAA,kGAAG,iBACjCC,cADiC,EAEjCC,WAFiC;IAAA;IAAA;MAAA;QAAA;UAAA;YAIjCD,cAAc,CAAC,IAAD,CAAd;YAJiC;YAAA,OAMVC,WAAW,EAND;;UAAA;YAM3BC,QAN2B;YAOjCF,cAAc,CAAC,KAAD,CAAd;YAPiC,iCAS1BE,QAT0B;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAAH;;EAAA,gBAArBH,qBAAqB;IAAA;EAAA;AAAA,GAA3B;AAYP;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAC1BG,MAD0B,EAE1BC,QAF0B,EAGzB;EACD,OAAO,UAACC,IAAD,EAAmB;IACtBD,QAAQ,CAAC,UAAAE,KAAK,EAAI;MACd,mEACOA,KADP,yCAEKH,MAFL,EAEcE,IAFd;IAIH,CALO,CAAR;EAMH,CAPD;AAQH,CAZM"}
1
+ {"version":3,"names":["apolloFetchingHandler","loadingHandler","apolloQuery","response","action","setState","flag","state"],"sources":["handlers.tsx"],"sourcesContent":["import { Dispatch, SetStateAction } from \"react\";\nimport { ApolloQueryResult } from \"apollo-client/core/types\";\nimport { FetchResult } from \"apollo-link\";\nimport { Loading, LoadingActions } from \"~/types\";\n\n/**\n * A simple wrapper for Apollo fetching operations that handles the `loading` state as side effect.\n *\n * @param loadingHandler: function that handle the loading state.\n * @param apolloQuery: Apollo Query or Mutation\n */\nexport const apolloFetchingHandler = async (\n loadingHandler: (flag: boolean) => void,\n apolloQuery: () => Promise<ApolloQueryResult<any> | FetchResult<any>>\n) => {\n loadingHandler(true);\n\n const response = await apolloQuery();\n loadingHandler(false);\n\n return response;\n};\n\n/**\n * A simple function to handle `loading` state.\n *\n * @param action: the `action` that has been performed.\n * @param setState: the logic to update the loading state.\n */\nexport const loadingHandler = (\n action: LoadingActions,\n setState: Dispatch<SetStateAction<Loading<LoadingActions>>>\n) => {\n return (flag: boolean) => {\n setState(state => {\n return {\n ...state,\n [action]: flag\n };\n });\n };\n};\n"],"mappings":";;;;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,qBAAqB;EAAA,kGAAG,iBACjCC,cAAuC,EACvCC,WAAqE;IAAA;IAAA;MAAA;QAAA;UAErED,cAAc,CAAC,IAAI,CAAC;UAAC;UAAA,OAEEC,WAAW,EAAE;QAAA;UAA9BC,QAAQ;UACdF,cAAc,CAAC,KAAK,CAAC;UAAC,iCAEfE,QAAQ;QAAA;QAAA;UAAA;MAAA;IAAA;EAAA,CAClB;EAAA,gBAVYH,qBAAqB;IAAA;EAAA;AAAA,GAUjC;;AAED;AACA;AACA;AACA;AACA;AACA;AALA;AAMO,IAAMC,cAAc,GAAG,SAAjBA,cAAc,CACvBG,MAAsB,EACtBC,QAA2D,EAC1D;EACD,OAAO,UAACC,IAAa,EAAK;IACtBD,QAAQ,CAAC,UAAAE,KAAK,EAAI;MACd,mEACOA,KAAK,yCACPH,MAAM,EAAGE,IAAI;IAEtB,CAAC,CAAC;EACN,CAAC;AACL,CAAC;AAAC"}
package/hooks/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ export * from "./useAcoList";
1
2
  export * from "./useFolders";
2
- export * from "./useLinks";
3
+ export * from "./useRecords";