@webiny/app-aco 5.35.2 → 5.36.0-beta.1

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 (143) hide show
  1. package/components/Dialogs/DialogCreate.d.ts +2 -2
  2. package/components/Dialogs/DialogCreate.js +1 -1
  3. package/components/Dialogs/DialogCreate.js.map +1 -1
  4. package/components/Dialogs/DialogDelete.d.ts +3 -3
  5. package/components/Dialogs/DialogDelete.js +1 -1
  6. package/components/Dialogs/DialogDelete.js.map +1 -1
  7. package/components/Dialogs/DialogMove.d.ts +2 -2
  8. package/components/Dialogs/DialogMove.js +4 -3
  9. package/components/Dialogs/DialogMove.js.map +1 -1
  10. package/components/Dialogs/DialogUpdate.d.ts +2 -2
  11. package/components/Dialogs/DialogUpdate.js +1 -1
  12. package/components/Dialogs/DialogUpdate.js.map +1 -1
  13. package/components/Dialogs/index.d.ts +1 -0
  14. package/components/Dialogs/index.js +11 -0
  15. package/components/Dialogs/index.js.map +1 -1
  16. package/components/Dialogs/styled.js +1 -1
  17. package/components/Dialogs/styled.js.map +1 -1
  18. package/components/FolderGrid/ActionDelete.d.ts +6 -0
  19. package/components/FolderGrid/ActionDelete.js +25 -0
  20. package/components/FolderGrid/ActionDelete.js.map +1 -0
  21. package/components/FolderGrid/ActionEdit.d.ts +6 -0
  22. package/components/FolderGrid/ActionEdit.js +25 -0
  23. package/components/FolderGrid/ActionEdit.js.map +1 -0
  24. package/components/FolderGrid/Folder.d.ts +9 -0
  25. package/components/FolderGrid/Folder.js +42 -0
  26. package/components/FolderGrid/Folder.js.map +1 -0
  27. package/components/FolderGrid/FolderGrid.d.ts +8 -0
  28. package/components/FolderGrid/FolderGrid.js +60 -0
  29. package/components/FolderGrid/FolderGrid.js.map +1 -0
  30. package/components/FolderGrid/index.d.ts +1 -0
  31. package/components/FolderGrid/index.js +16 -0
  32. package/components/FolderGrid/index.js.map +1 -0
  33. package/components/FolderGrid/styled.d.ts +53 -0
  34. package/components/FolderGrid/styled.js +41 -0
  35. package/components/FolderGrid/styled.js.map +1 -0
  36. package/components/FolderTree/ButtonCreate/index.d.ts +6 -0
  37. package/components/FolderTree/ButtonCreate/index.js +23 -0
  38. package/components/FolderTree/ButtonCreate/index.js.map +1 -0
  39. package/components/FolderTree/ButtonCreate/styled.d.ts +18 -0
  40. package/components/FolderTree/ButtonCreate/styled.js +24 -0
  41. package/components/FolderTree/ButtonCreate/styled.js.map +1 -0
  42. package/components/FolderTree/Empty/index.d.ts +2 -0
  43. package/components/FolderTree/Empty/index.js +20 -0
  44. package/components/FolderTree/Empty/index.js.map +1 -0
  45. package/components/FolderTree/Empty/styled.d.ts +7 -0
  46. package/components/FolderTree/Empty/styled.js +13 -0
  47. package/components/FolderTree/Empty/styled.js.map +1 -0
  48. package/components/FolderTree/List/constants.d.ts +1 -0
  49. package/components/FolderTree/List/constants.js +8 -0
  50. package/components/FolderTree/List/constants.js.map +1 -0
  51. package/components/FolderTree/List/index.d.ts +15 -0
  52. package/components/FolderTree/List/index.js +195 -0
  53. package/components/FolderTree/List/index.js.map +1 -0
  54. package/components/FolderTree/List/utils.d.ts +21 -0
  55. package/components/FolderTree/List/utils.js +88 -0
  56. package/components/FolderTree/List/utils.js.map +1 -0
  57. package/components/FolderTree/Loader/index.d.ts +2 -0
  58. package/components/FolderTree/Loader/index.js +19 -0
  59. package/components/FolderTree/Loader/index.js.map +1 -0
  60. package/components/FolderTree/Loader/styled.d.ts +11 -0
  61. package/components/FolderTree/Loader/styled.js +18 -0
  62. package/components/FolderTree/Loader/styled.js.map +1 -0
  63. package/components/FolderTree/MenuActions/index.d.ts +9 -0
  64. package/components/FolderTree/MenuActions/index.js +45 -0
  65. package/components/FolderTree/MenuActions/index.js.map +1 -0
  66. package/components/FolderTree/MenuActions/styled.d.ts +10 -0
  67. package/components/FolderTree/MenuActions/styled.js +19 -0
  68. package/components/FolderTree/MenuActions/styled.js.map +1 -0
  69. package/components/FolderTree/Node/index.d.ts +21 -0
  70. package/components/FolderTree/Node/index.js +68 -0
  71. package/components/FolderTree/Node/index.js.map +1 -0
  72. package/components/FolderTree/Node/styled.d.ts +43 -0
  73. package/components/FolderTree/Node/styled.js +43 -0
  74. package/components/FolderTree/Node/styled.js.map +1 -0
  75. package/components/FolderTree/NodePreview/index.d.ts +8 -0
  76. package/components/FolderTree/NodePreview/index.js +18 -0
  77. package/components/FolderTree/NodePreview/index.js.map +1 -0
  78. package/components/FolderTree/NodePreview/styled.d.ts +7 -0
  79. package/components/FolderTree/NodePreview/styled.js +13 -0
  80. package/components/FolderTree/NodePreview/styled.js.map +1 -0
  81. package/components/FolderTree/Placeholder/index.d.ts +9 -0
  82. package/components/FolderTree/Placeholder/index.js +21 -0
  83. package/components/FolderTree/Placeholder/index.js.map +1 -0
  84. package/components/FolderTree/Placeholder/styled.d.ts +7 -0
  85. package/components/FolderTree/Placeholder/styled.js +13 -0
  86. package/components/FolderTree/Placeholder/styled.js.map +1 -0
  87. package/components/FolderTree/Title/index.d.ts +9 -0
  88. package/components/FolderTree/Title/index.js +24 -0
  89. package/components/FolderTree/Title/index.js.map +1 -0
  90. package/components/FolderTree/Title/styled.d.ts +16 -0
  91. package/components/FolderTree/Title/styled.js +24 -0
  92. package/components/FolderTree/Title/styled.js.map +1 -0
  93. package/components/FolderTree/index.d.ts +16 -0
  94. package/components/FolderTree/index.js +84 -0
  95. package/components/FolderTree/index.js.map +1 -0
  96. package/components/FolderTree/styled.d.ts +7 -0
  97. package/components/FolderTree/styled.js +13 -0
  98. package/components/FolderTree/styled.js.map +1 -0
  99. package/components/TagList/Empty.d.ts +6 -0
  100. package/components/TagList/Empty.js +22 -0
  101. package/components/TagList/Empty.js.map +1 -0
  102. package/components/TagList/Loader.d.ts +2 -0
  103. package/components/TagList/Loader.js +19 -0
  104. package/components/TagList/Loader.js.map +1 -0
  105. package/components/TagList/Tag.d.ts +9 -0
  106. package/components/TagList/Tag.js +28 -0
  107. package/components/TagList/Tag.js.map +1 -0
  108. package/components/TagList/TagList.d.ts +14 -0
  109. package/components/TagList/TagList.js +65 -0
  110. package/components/TagList/TagList.js.map +1 -0
  111. package/components/TagList/index.d.ts +1 -0
  112. package/components/TagList/index.js +16 -0
  113. package/components/TagList/index.js.map +1 -0
  114. package/components/TagList/styled.d.ts +27 -0
  115. package/components/TagList/styled.js +35 -0
  116. package/components/TagList/styled.js.map +1 -0
  117. package/components/index.d.ts +3 -1
  118. package/components/index.js +26 -4
  119. package/components/index.js.map +1 -1
  120. package/contexts/records.d.ts +15 -2
  121. package/contexts/records.js +155 -42
  122. package/contexts/records.js.map +1 -1
  123. package/graphql/records.gql.d.ts +1 -0
  124. package/graphql/records.gql.js +7 -5
  125. package/graphql/records.gql.js.map +1 -1
  126. package/hooks/index.d.ts +1 -0
  127. package/hooks/index.js +11 -0
  128. package/hooks/index.js.map +1 -1
  129. package/hooks/useAcoList.d.ts +19 -4
  130. package/hooks/useAcoList.js +31 -18
  131. package/hooks/useAcoList.js.map +1 -1
  132. package/hooks/useRecords.d.ts +4 -1
  133. package/hooks/useRecords.js +2 -4
  134. package/hooks/useRecords.js.map +1 -1
  135. package/hooks/useTags.d.ts +19 -0
  136. package/hooks/useTags.js +47 -0
  137. package/hooks/useTags.js.map +1 -0
  138. package/index.d.ts +2 -2
  139. package/index.js +24 -24
  140. package/index.js.map +1 -1
  141. package/package.json +9 -9
  142. package/types.d.ts +37 -2
  143. package/types.js.map +1 -1
@@ -9,11 +9,12 @@ exports.SearchRecordsProvider = exports.SearchRecordsContext = void 0;
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- var _objectSpread5 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
+ var _objectSpread18 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
15
  var _react = _interopRequireWildcard(require("react"));
16
16
  var _reactHooks = require("@apollo/react-hooks");
17
+ var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
17
18
  var _unionBy = _interopRequireDefault(require("lodash/unionBy"));
18
19
  var _handlers = require("../handlers");
19
20
  var _records = require("../graphql/records.gql");
@@ -29,52 +30,70 @@ var defaultLoading = {
29
30
  UPDATE: false,
30
31
  DELETE: false
31
32
  };
33
+ var mergeAndSortTags = function mergeAndSortTags(oldTagItems, newTags) {
34
+ if (!newTags.length) {
35
+ return oldTagItems;
36
+ }
37
+ var newTagItems = newTags.map(function (tag) {
38
+ return {
39
+ tag: tag
40
+ };
41
+ }); // create TagItem[] from array of strings
42
+ var mergedTagItems = (0, _unionBy.default)(oldTagItems, newTagItems, "tag"); // merge the two arrays
43
+
44
+ return (0, _sortBy.default)(mergedTagItems, ["tag"]);
45
+ };
32
46
  var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
33
47
  var children = _ref.children;
34
48
  var client = (0, _reactHooks.useApolloClient)();
35
- var _useState = (0, _react.useState)([]),
49
+ var _useState = (0, _react.useState)(Object.create(null)),
36
50
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
51
  records = _useState2[0],
38
52
  setRecords = _useState2[1];
39
- var _useState3 = (0, _react.useState)(defaultLoading),
53
+ var _useState3 = (0, _react.useState)(Object.create(null)),
40
54
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
41
- loading = _useState4[0],
42
- setLoading = _useState4[1];
43
- var _useState5 = (0, _react.useState)(Object.create(null)),
55
+ tags = _useState4[0],
56
+ setTags = _useState4[1];
57
+ var _useState5 = (0, _react.useState)(defaultLoading),
44
58
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
45
- meta = _useState6[0],
46
- setMeta = _useState6[1];
59
+ loading = _useState6[0],
60
+ setLoading = _useState6[1];
61
+ var _useState7 = (0, _react.useState)(Object.create(null)),
62
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
63
+ meta = _useState8[0],
64
+ setMeta = _useState8[1];
47
65
  var context = {
48
66
  records: records,
67
+ tags: tags,
49
68
  loading: loading,
50
69
  meta: meta,
51
70
  listRecords: function listRecords(params) {
52
71
  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;
72
+ var _meta;
73
+ var type, folderId, after, limit, sorting, search, createdBy, tags_in, tags_startsWith, tags_not_startsWith, AND, OR, recordsCount, totalCount, action, sort, _yield$apolloFetching, response, _response$search$list, data, responseMeta, error;
55
74
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
56
75
  while (1) switch (_context.prev = _context.next) {
57
76
  case 0:
58
- type = params.type, folderId = params.folderId, after = params.after, limit = params.limit, sorting = params.sort;
77
+ type = params.type, folderId = params.folderId, after = params.after, limit = params.limit, sorting = params.sort, search = params.search, createdBy = params.createdBy, tags_in = params.tags_in, tags_startsWith = params.tags_startsWith, tags_not_startsWith = params.tags_not_startsWith, AND = params.AND, OR = params.OR;
59
78
  /**
60
79
  * Both folderId and type are optional to init `useRecords` but required to list records:
61
80
  * this allows us to use `useRecords` methods like `getRecord` without passing useless params.
62
81
  * But still, we need these params to list records.
63
82
  */
64
- if (!(!folderId || !type)) {
83
+ if (type) {
65
84
  _context.next = 3;
66
85
  break;
67
86
  }
68
- throw new Error("`folderId` and `type` are mandatory");
87
+ throw new Error("`type` are mandatory");
69
88
  case 3:
70
89
  /**
71
90
  * Avoiding to fetch records in case they have already been fetched.
72
91
  * This happens when visiting a list with all records loaded and receives "after" param.
73
92
  */
74
- recordsCount = records.filter(function (record) {
93
+ recordsCount = records[type] && records[type].filter(function (record) {
75
94
  return record.location.folderId === folderId;
76
95
  }).length;
77
- totalCount = ((_meta$folderId = meta[folderId]) === null || _meta$folderId === void 0 ? void 0 : _meta$folderId.totalCount) || 0;
96
+ totalCount = ((_meta = meta[folderId || "search"]) === null || _meta === void 0 ? void 0 : _meta.totalCount) || 0;
78
97
  if (!(after && recordsCount === totalCount)) {
79
98
  _context.next = 7;
80
99
  break;
@@ -83,7 +102,9 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
83
102
  case 7:
84
103
  // Remove records in case of sorting change and not a paginated request.
85
104
  if (sorting && !after) {
86
- setRecords([]);
105
+ setRecords(function (records) {
106
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, []));
107
+ });
87
108
  }
88
109
  action = after ? "LIST_MORE" : "LIST";
89
110
  sort = (0, _sorting.validateOrGetDefaultDbSort)(sorting);
@@ -92,10 +113,21 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
92
113
  return client.query({
93
114
  query: _records.LIST_RECORDS,
94
115
  variables: {
95
- type: type,
96
- location: {
97
- folderId: folderId
98
- },
116
+ where: (0, _objectSpread18.default)((0, _objectSpread18.default)({
117
+ type: type
118
+ }, folderId && {
119
+ location: {
120
+ folderId: folderId
121
+ }
122
+ }), {}, {
123
+ tags_in: tags_in,
124
+ tags_startsWith: tags_startsWith,
125
+ tags_not_startsWith: tags_not_startsWith,
126
+ createdBy: createdBy,
127
+ AND: AND,
128
+ OR: OR
129
+ }),
130
+ search: search,
99
131
  limit: limit,
100
132
  after: after,
101
133
  sort: sort
@@ -113,15 +145,20 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
113
145
  }
114
146
  throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch records");
115
147
  case 17:
116
- // Adjusting sorting while merging records with data received from the server.
117
148
  setRecords(function (records) {
118
- return (0, _sorting.sortTableItems)((0, _unionBy.default)(data, records, "id"), sort);
149
+ // In case of paginated request, we merge the fetched records with the existing ones, after sorting them.
150
+ if (after) {
151
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, (0, _sorting.sortTableItems)((0, _unionBy.default)(data, records[type], "id"), sort)));
152
+ }
153
+
154
+ // Otherwise, we return the fetched records after sorting them.
155
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, (0, _sorting.sortTableItems)(data, sort)));
119
156
  });
120
157
  setMeta(function (meta) {
121
- return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, responseMeta));
158
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId || "search", responseMeta));
122
159
  });
123
160
  setLoading(function (prev) {
124
- return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), {}, {
161
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, prev), {}, {
125
162
  INIT: false
126
163
  });
127
164
  });
@@ -168,25 +205,42 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
168
205
  if (!data) {
169
206
  // No record found - must be deleted by previous operation
170
207
  setRecords(function (records) {
171
- return records.filter(function (record) {
172
- return record.id !== id;
208
+ var currentRecord = Object.keys(records).reduce(function (accumulator, current) {
209
+ return [].concat((0, _toConsumableArray2.default)(accumulator), (0, _toConsumableArray2.default)(records[current]));
210
+ }, []).find(function (record) {
211
+ return record.id === id;
173
212
  });
213
+ if (!currentRecord) {
214
+ return records;
215
+ }
216
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, currentRecord.type, records[currentRecord.type].filter(function (record) {
217
+ return record.id !== id;
218
+ })));
174
219
  });
175
220
  } else {
176
221
  setRecords(function (prevRecords) {
177
- var recordIndex = prevRecords.findIndex(function (record) {
222
+ var prevRecordsByType = prevRecords[data.type];
223
+ var recordIndex = prevRecordsByType.findIndex(function (record) {
178
224
  return record.id === id;
179
225
  });
180
226
 
181
227
  // No record found in the list - must be added by previous operation
182
228
  if (recordIndex === -1) {
183
- return [].concat((0, _toConsumableArray2.default)(prevRecords), [data]);
229
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, prevRecords), {}, (0, _defineProperty2.default)({}, data.type, [data].concat((0, _toConsumableArray2.default)(prevRecordsByType))));
184
230
  }
185
231
 
186
232
  // 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)));
233
+ var result = (0, _objectSpread18.default)((0, _objectSpread18.default)({}, prevRecords), {}, (0, _defineProperty2.default)({}, data.type, [].concat((0, _toConsumableArray2.default)(prevRecordsByType.slice(0, recordIndex)), [(0, _objectSpread18.default)((0, _objectSpread18.default)({}, prevRecordsByType[recordIndex]), data)], (0, _toConsumableArray2.default)(prevRecordsByType.slice(recordIndex + 1)))));
188
234
  return result;
189
235
  });
236
+ setTags(function (tags) {
237
+ if (!data.tags || data.tags.length === 0) {
238
+ return tags;
239
+ }
240
+ var tagsByType = tags[data.type]; // get existing tags
241
+
242
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, tags), {}, (0, _defineProperty2.default)({}, data.type, mergeAndSortTags(tagsByType, data.tags)));
243
+ });
190
244
  }
191
245
  return _context2.abrupt("return", data);
192
246
  case 11:
@@ -230,15 +284,23 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
230
284
  throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not create record");
231
285
  case 11:
232
286
  setRecords(function (records) {
233
- return [].concat((0, _toConsumableArray2.default)(records), [data]);
287
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, data.type, [].concat((0, _toConsumableArray2.default)(records[data.type]), [data])));
234
288
  });
235
289
  setMeta(function (meta) {
236
- return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta[folderId]), {}, {
290
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta[folderId]), {}, {
237
291
  totalCount: ++meta[folderId].totalCount
238
292
  })));
239
293
  });
294
+ setTags(function (tags) {
295
+ if (!data.tags || data.tags.length === 0) {
296
+ return tags;
297
+ }
298
+ var tagsByType = tags[data.type]; // get existing tags
299
+
300
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, tags), {}, (0, _defineProperty2.default)({}, data.type, mergeAndSortTags(tagsByType, data.tags)));
301
+ });
240
302
  return _context3.abrupt("return", data);
241
- case 14:
303
+ case 15:
242
304
  case "end":
243
305
  return _context3.stop();
244
306
  }
@@ -247,7 +309,7 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
247
309
  },
248
310
  updateRecord: function updateRecord(record, contextFolderId) {
249
311
  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;
312
+ var id, location, data, title, content, type, _yield$apolloFetching4, response, _response$search$upda, result, error;
251
313
  return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
252
314
  while (1) switch (_context4.prev = _context4.next) {
253
315
  case 0:
@@ -257,7 +319,7 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
257
319
  }
258
320
  throw new Error("`folderId` is mandatory");
259
321
  case 2:
260
- id = record.id, location = record.location, data = record.data, title = record.title, content = record.content;
322
+ id = record.id, location = record.location, data = record.data, title = record.title, content = record.content, type = record.type;
261
323
  _context4.next = 5;
262
324
  return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("UPDATE", setLoading), function () {
263
325
  return client.mutate({
@@ -290,14 +352,22 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
290
352
  throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not update record");
291
353
  case 12:
292
354
  setRecords(function (records) {
293
- return records.map(function (record) {
355
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, records[type].map(function (record) {
294
356
  return record.id === id ? result : record;
295
357
  }).filter(function (record) {
296
358
  return record.location.folderId === contextFolderId;
297
- });
359
+ })));
360
+ });
361
+ setTags(function (tags) {
362
+ if (!data.tags || data.tags.length === 0) {
363
+ return tags;
364
+ }
365
+ var tagsByType = tags[data.type]; // get existing tags
366
+
367
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, tags), {}, (0, _defineProperty2.default)({}, data.type, mergeAndSortTags(tagsByType, data.tags)));
298
368
  });
299
369
  return _context4.abrupt("return", result);
300
- case 14:
370
+ case 15:
301
371
  case "end":
302
372
  return _context4.stop();
303
373
  }
@@ -306,11 +376,11 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
306
376
  },
307
377
  deleteRecord: function deleteRecord(record) {
308
378
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
309
- var id, location, folderId, _yield$apolloFetching5, response, _response$search$dele, data, error;
379
+ var id, location, type, folderId, _yield$apolloFetching5, response, _response$search$dele, data, error;
310
380
  return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
311
381
  while (1) switch (_context5.prev = _context5.next) {
312
382
  case 0:
313
- id = record.id, location = record.location;
383
+ id = record.id, location = record.location, type = record.type;
314
384
  folderId = location.folderId;
315
385
  _context5.next = 4;
316
386
  return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("DELETE", setLoading), function () {
@@ -338,12 +408,12 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
338
408
  throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not delete record");
339
409
  case 11:
340
410
  setRecords(function (records) {
341
- return records.filter(function (record) {
411
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, records[type].filter(function (record) {
342
412
  return record.id !== id;
343
- });
413
+ })));
344
414
  });
345
415
  setMeta(function (meta) {
346
- return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread5.default)((0, _objectSpread5.default)({}, meta[folderId]), {}, {
416
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta[folderId]), {}, {
347
417
  totalCount: --meta[folderId].totalCount
348
418
  })));
349
419
  });
@@ -354,6 +424,49 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
354
424
  }
355
425
  }, _callee5);
356
426
  }))();
427
+ },
428
+ listTags: function listTags(params) {
429
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6() {
430
+ var type, _yield$apolloFetching6, response, _response$search$list2, data, error;
431
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
432
+ while (1) switch (_context6.prev = _context6.next) {
433
+ case 0:
434
+ type = params.type;
435
+ if (type) {
436
+ _context6.next = 3;
437
+ break;
438
+ }
439
+ throw new Error("`type` is mandatory");
440
+ case 3:
441
+ _context6.next = 5;
442
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("LIST", setLoading), function () {
443
+ return client.query({
444
+ query: _records.LIST_TAGS,
445
+ variables: {
446
+ where: params
447
+ }
448
+ });
449
+ });
450
+ case 5:
451
+ _yield$apolloFetching6 = _context6.sent;
452
+ response = _yield$apolloFetching6.data;
453
+ _response$search$list2 = response.search.listTags, data = _response$search$list2.data, error = _response$search$list2.error;
454
+ if (data) {
455
+ _context6.next = 10;
456
+ break;
457
+ }
458
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch tags");
459
+ case 10:
460
+ setTags(function (tags) {
461
+ return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, tags), {}, (0, _defineProperty2.default)({}, type, data));
462
+ });
463
+ return _context6.abrupt("return", data);
464
+ case 12:
465
+ case "end":
466
+ return _context6.stop();
467
+ }
468
+ }, _callee6);
469
+ }))();
357
470
  }
358
471
  };
359
472
  return /*#__PURE__*/_react.default.createElement(SearchRecordsContext.Provider, {
@@ -1 +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
+ {"version":3,"names":["SearchRecordsContext","React","createContext","undefined","defaultLoading","INIT","LIST","LIST_MORE","GET","CREATE","UPDATE","DELETE","mergeAndSortTags","oldTagItems","newTags","length","newTagItems","map","tag","mergedTagItems","unionBy","sortBy","SearchRecordsProvider","children","client","useApolloClient","useState","Object","create","records","setRecords","tags","setTags","loading","setLoading","meta","setMeta","context","listRecords","params","type","folderId","after","limit","sorting","sort","search","createdBy","tags_in","tags_startsWith","tags_not_startsWith","AND","OR","Error","recordsCount","filter","record","location","totalCount","action","validateOrGetDefaultDbSort","apolloFetchingHandler","loadingHandler","query","LIST_RECORDS","variables","where","fetchPolicy","response","data","responseMeta","error","message","sortTableItems","prev","getRecord","id","GET_RECORD","code","currentRecord","keys","reduce","accumulator","current","find","prevRecords","prevRecordsByType","recordIndex","findIndex","result","slice","tagsByType","createRecord","mutate","mutation","CREATE_RECORD","updateRecord","contextFolderId","title","content","UPDATE_RECORD","deleteRecord","DELETE_RECORD","listTags","LIST_TAGS"],"sources":["records.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport sortBy from \"lodash/sortBy\";\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 LIST_TAGS,\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 ListTagsResponse,\n ListTagsQueryVariables,\n TagItem,\n ListSearchRecordsWhereQueryVariables,\n ListTagsWhereQueryVariables\n} from \"~/types\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\n\ninterface SearchRecordsContext {\n records: Record<string, SearchRecordItem[]>;\n tags: Record<string, TagItem[]>;\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 search?: string;\n createdBy?: string;\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n AND?: ListSearchRecordsWhereQueryVariables[];\n OR?: ListSearchRecordsWhereQueryVariables[];\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 listTags: (\n params: ListTagsWhereQueryVariables & {\n type: string;\n AND?: [ListTagsWhereQueryVariables];\n OR?: [ListTagsWhereQueryVariables];\n }\n ) => Promise<TagItem[]>;\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\nconst mergeAndSortTags = (oldTagItems: TagItem[], newTags: string[]): TagItem[] => {\n if (!newTags.length) {\n return oldTagItems;\n }\n\n const newTagItems = newTags.map((tag: string) => ({ tag })); // create TagItem[] from array of strings\n const mergedTagItems = unionBy(oldTagItems, newTagItems, \"tag\"); // merge the two arrays\n\n return sortBy(mergedTagItems, [\"tag\"]);\n};\n\nexport const SearchRecordsProvider = ({ children }: Props) => {\n const client = useApolloClient();\n const [records, setRecords] = useState<Record<string, SearchRecordItem[]>>(Object.create(null));\n const [tags, setTags] = useState<Record<string, TagItem[]>>(Object.create(null));\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 tags,\n loading,\n meta,\n async listRecords(params) {\n const {\n type,\n folderId,\n after,\n limit,\n sort: sorting,\n search,\n createdBy,\n tags_in,\n tags_startsWith,\n tags_not_startsWith,\n AND,\n OR\n } = 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 (!type) {\n throw new Error(\"`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 =\n records[type] &&\n records[type].filter(record => record.location.folderId === folderId).length;\n const totalCount = meta[folderId || \"search\"]?.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(records => ({\n ...records,\n [type]: []\n }));\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: {\n where: {\n type,\n ...(folderId && { location: { folderId } }),\n tags_in,\n tags_startsWith,\n tags_not_startsWith,\n createdBy,\n AND,\n OR\n },\n search,\n limit,\n after,\n sort\n },\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 setRecords(records => {\n // In case of paginated request, we merge the fetched records with the existing ones, after sorting them.\n if (after) {\n return {\n ...records,\n [type]: sortTableItems(unionBy(data, records[type], \"id\"), sort)\n };\n }\n\n // Otherwise, we return the fetched records after sorting them.\n return {\n ...records,\n [type]: sortTableItems(data, sort)\n };\n });\n\n setMeta(meta => ({\n ...meta,\n [folderId || \"search\"]: 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 => {\n const currentRecord = Object.keys(records)\n .reduce((accumulator, current) => {\n return [...accumulator, ...records[current]];\n }, [] as SearchRecordItem[])\n .find(record => record.id === id);\n\n if (!currentRecord) {\n return records;\n }\n\n return {\n ...records,\n [currentRecord.type]: records[currentRecord.type].filter(\n record => record.id !== id\n )\n };\n });\n } else {\n setRecords(prevRecords => {\n const prevRecordsByType = prevRecords[data.type];\n\n const recordIndex = prevRecordsByType.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.type]: [data, ...prevRecordsByType] };\n }\n\n // Updating record found in the list\n const result = {\n ...prevRecords,\n [data.type]: [\n ...prevRecordsByType.slice(0, recordIndex),\n {\n ...prevRecordsByType[recordIndex],\n ...data\n },\n ...prevRecordsByType.slice(recordIndex + 1)\n ]\n };\n\n return result;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n const tagsByType = tags[data.type]; // get existing tags\n\n return {\n ...tags,\n [data.type]: mergeAndSortTags(tagsByType, data.tags)\n };\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 => ({\n ...records,\n [data.type]: [...records[data.type], data]\n }));\n\n setMeta(meta => ({\n ...meta,\n [folderId]: {\n ...meta[folderId],\n totalCount: ++meta[folderId].totalCount\n }\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n const tagsByType = tags[data.type]; // get existing tags\n\n return {\n ...tags,\n [data.type]: mergeAndSortTags(tagsByType, data.tags)\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, type } = 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 [type]: records[type]\n .map(record => (record.id === id ? result : record))\n .filter(record => record.location.folderId === contextFolderId)\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n const tagsByType = tags[data.type]; // get existing tags\n\n return {\n ...tags,\n [data.type]: mergeAndSortTags(tagsByType, data.tags)\n };\n });\n\n return result;\n },\n\n async deleteRecord(record) {\n const { id, location, type } = 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 => ({\n ...records,\n [type]: records[type].filter(record => record.id !== id)\n }));\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 async listTags(params) {\n const { type } = params;\n\n if (!type) {\n throw new Error(\"`type` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListTagsResponse, ListTagsQueryVariables>({\n query: LIST_TAGS,\n variables: {\n where: params\n }\n })\n );\n\n const { data, error } = response.search.listTags;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch tags\");\n }\n\n setTags(tags => ({\n ...tags,\n [type]: data\n }));\n\n return data;\n }\n };\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -3,3 +3,4 @@ export declare const LIST_RECORDS: import("graphql").DocumentNode;
3
3
  export declare const GET_RECORD: import("graphql").DocumentNode;
4
4
  export declare const UPDATE_RECORD: import("graphql").DocumentNode;
5
5
  export declare const DELETE_RECORD: import("graphql").DocumentNode;
6
+ export declare const LIST_TAGS: import("graphql").DocumentNode;
@@ -4,20 +4,22 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.UPDATE_RECORD = exports.LIST_RECORDS = exports.GET_RECORD = exports.DELETE_RECORD = exports.CREATE_RECORD = void 0;
7
+ exports.UPDATE_RECORD = exports.LIST_TAGS = exports.LIST_RECORDS = exports.GET_RECORD = exports.DELETE_RECORD = exports.CREATE_RECORD = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
10
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
11
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";
12
+ var DATA_FIELD = /* GraphQL */"\n {\n id\n type\n location {\n folderId\n }\n title\n content\n data\n tags\n savedOn\n }\n";
13
13
  var LIST_META_FIELD = /* GraphQL */"\n {\n cursor\n totalCount\n hasMoreItems\n }\n";
14
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
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);
16
+ var LIST_RECORDS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListRecords ($where: SearchRecordListWhereInput, $limit: Int, $after: String, $sort: AcoSort!, $search: String) {\n search {\n listRecords(where: $where, limit: $limit, after: $after, sort: $sort, search: $search) {\n data ", "\n meta ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, LIST_META_FIELD, ERROR_FIELD);
17
17
  exports.LIST_RECORDS = LIST_RECORDS;
18
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
19
  exports.GET_RECORD = GET_RECORD;
20
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
21
  exports.UPDATE_RECORD = UPDATE_RECORD;
22
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;
23
+ exports.DELETE_RECORD = DELETE_RECORD;
24
+ var LIST_TAGS = (0, _graphqlTag.default)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n query ListTags($where: SearchRecordTagListWhereInput) {\n search {\n listTags(where: $where) {\n data {\n tag\n }\n meta ", "\n error ", "\n }\n }\n }\n"])), LIST_META_FIELD, ERROR_FIELD);
25
+ exports.LIST_TAGS = LIST_TAGS;
@@ -1 +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"}
1
+ {"version":3,"names":["ERROR_FIELD","DATA_FIELD","LIST_META_FIELD","CREATE_RECORD","gql","LIST_RECORDS","GET_RECORD","UPDATE_RECORD","DELETE_RECORD","LIST_TAGS"],"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 tags\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 ($where: SearchRecordListWhereInput, $limit: Int, $after: String, $sort: AcoSort!, $search: String) {\n search {\n listRecords(where: $where, limit: $limit, after: $after, sort: $sort, search: $search) {\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\nexport const LIST_TAGS = gql`\n query ListTags($where: SearchRecordTagListWhereInput) {\n search {\n listTags(where: $where) {\n data {\n tag\n }\n meta ${LIST_META_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,WAAW,GAAG,4EAMnB;AAED,IAAMC,UAAU,GAAG,2LAalB;AAED,IAAMC,eAAe,GAAG,yFAMvB;AAEM,IAAMC,aAAa,OAAGC,mBAAG,wSAITH,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMK,YAAY,OAAGD,mBAAG,icAIRH,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;AAEK,IAAMS,SAAS,OAAGL,mBAAG,2WAOLF,eAAe,EACdF,WAAW,CAIlC;AAAC"}
package/hooks/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./useAcoList";
2
2
  export * from "./useFolders";
3
3
  export * from "./useRecords";
4
+ export * from "./useTags";
package/hooks/index.js CHANGED
@@ -35,4 +35,15 @@ Object.keys(_useRecords).forEach(function (key) {
35
35
  return _useRecords[key];
36
36
  }
37
37
  });
38
+ });
39
+ var _useTags = require("./useTags");
40
+ Object.keys(_useTags).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _useTags[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _useTags[key];
47
+ }
48
+ });
38
49
  });
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./useAcoList\";\nexport * from \"./useFolders\";\nexport * from \"./useRecords\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./useAcoList\";\nexport * from \"./useFolders\";\nexport * from \"./useRecords\";\nexport * from \"./useTags\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1,18 +1,33 @@
1
- import { FolderItem, ListDbSort, SearchRecordItem } from "../types";
2
- export declare const useAcoList: (type: string, originalFolderId?: string) => {
1
+ import { FolderItem, ListDbSort, ListSearchRecordsWhereQueryVariables, SearchRecordItem } from "../types";
2
+ interface UseAcoListParams {
3
+ type: string;
4
+ folderId?: string;
5
+ tags_in?: string[];
6
+ tags_startsWith?: string;
7
+ tags_not_startsWith?: string;
8
+ }
9
+ export declare const useAcoList: (params: UseAcoListParams) => {
3
10
  folders: FolderItem[];
4
11
  records: SearchRecordItem<import("../types").GenericSearchData>[];
5
12
  listTitle: string | undefined;
6
- isListLoading: boolean | undefined;
7
- isListLoadingMore: boolean | undefined;
13
+ isListLoading: boolean;
14
+ isListLoadingMore: boolean;
8
15
  meta: {
9
16
  cursor: string | null;
10
17
  totalCount: number;
11
18
  hasMoreItems: boolean;
12
19
  };
13
20
  listItems(params: {
21
+ folderId?: string | undefined;
14
22
  after?: string | undefined;
15
23
  limit?: number | undefined;
16
24
  sort?: ListDbSort | undefined;
25
+ search?: string | undefined;
26
+ tags_in?: string[] | undefined;
27
+ tags_startsWith?: string | undefined;
28
+ tags_not_startsWith?: string | undefined;
29
+ AND?: ListSearchRecordsWhereQueryVariables[] | undefined;
30
+ OR?: ListSearchRecordsWhereQueryVariables[] | undefined;
17
31
  }): Promise<SearchRecordItem<import("../types").GenericSearchData>[]>;
18
32
  };
33
+ export {};