@webiny/app-aco 5.36.2 → 5.37.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 (219) hide show
  1. package/Folders.d.ts +2 -0
  2. package/Folders.js +22 -0
  3. package/Folders.js.map +1 -0
  4. package/components/Dialogs/DialogCreate.d.ts +2 -3
  5. package/components/Dialogs/DialogCreate.js +32 -35
  6. package/components/Dialogs/DialogCreate.js.map +1 -1
  7. package/components/Dialogs/DialogDelete.d.ts +3 -3
  8. package/components/Dialogs/DialogDelete.js +1 -1
  9. package/components/Dialogs/DialogDelete.js.map +1 -1
  10. package/components/Dialogs/DialogMove.d.ts +4 -5
  11. package/components/Dialogs/DialogMove.js +22 -30
  12. package/components/Dialogs/DialogMove.js.map +1 -1
  13. package/components/Dialogs/DialogUpdate.d.ts +2 -2
  14. package/components/Dialogs/DialogUpdate.js +9 -13
  15. package/components/Dialogs/DialogUpdate.js.map +1 -1
  16. package/components/Dialogs/index.js.map +1 -1
  17. package/components/Dialogs/styled.js.map +1 -1
  18. package/components/FolderGrid/ActionDelete.js.map +1 -1
  19. package/components/FolderGrid/ActionEdit.js.map +1 -1
  20. package/components/FolderGrid/Folder.js.map +1 -1
  21. package/components/FolderGrid/FolderGrid.js.map +1 -1
  22. package/components/FolderGrid/index.js.map +1 -1
  23. package/components/FolderGrid/styled.js.map +1 -1
  24. package/components/FolderTree/ButtonCreate/index.js +1 -1
  25. package/components/FolderTree/ButtonCreate/index.js.map +1 -1
  26. package/components/FolderTree/ButtonCreate/styled.js.map +1 -1
  27. package/components/FolderTree/Empty/index.js.map +1 -1
  28. package/components/FolderTree/Empty/styled.js.map +1 -1
  29. package/components/FolderTree/List/index.d.ts +4 -8
  30. package/components/FolderTree/List/index.js +27 -30
  31. package/components/FolderTree/List/index.js.map +1 -1
  32. package/components/FolderTree/List/utils.d.ts +3 -3
  33. package/components/FolderTree/List/utils.js +6 -18
  34. package/components/FolderTree/List/utils.js.map +1 -1
  35. package/components/FolderTree/Loader/index.d.ts +4 -2
  36. package/components/FolderTree/Loader/index.js +3 -2
  37. package/components/FolderTree/Loader/index.js.map +1 -1
  38. package/components/FolderTree/Loader/styled.js +2 -2
  39. package/components/FolderTree/Loader/styled.js.map +1 -1
  40. package/components/FolderTree/MenuActions/index.js.map +1 -1
  41. package/components/FolderTree/MenuActions/styled.js.map +1 -1
  42. package/components/FolderTree/Node/index.d.ts +7 -6
  43. package/components/FolderTree/Node/index.js +25 -10
  44. package/components/FolderTree/Node/index.js.map +1 -1
  45. package/components/FolderTree/Node/styled.js +1 -1
  46. package/components/FolderTree/Node/styled.js.map +1 -1
  47. package/components/FolderTree/NodePreview/index.d.ts +2 -2
  48. package/components/FolderTree/NodePreview/index.js +2 -1
  49. package/components/FolderTree/NodePreview/index.js.map +1 -1
  50. package/components/FolderTree/NodePreview/styled.js.map +1 -1
  51. package/components/FolderTree/Placeholder/index.d.ts +2 -2
  52. package/components/FolderTree/Placeholder/index.js.map +1 -1
  53. package/components/FolderTree/Placeholder/styled.js.map +1 -1
  54. package/components/FolderTree/index.d.ts +7 -10
  55. package/components/FolderTree/index.js +30 -30
  56. package/components/FolderTree/index.js.map +1 -1
  57. package/components/FolderTree/styled.js +1 -1
  58. package/components/FolderTree/styled.js.map +1 -1
  59. package/components/Search/Search.d.ts +7 -0
  60. package/components/Search/Search.js +19 -0
  61. package/components/Search/Search.js.map +1 -0
  62. package/components/Search/index.d.ts +1 -0
  63. package/components/{TagList → Search}/index.js +4 -4
  64. package/components/Search/index.js.map +1 -0
  65. package/components/Search/styled.d.ts +7 -0
  66. package/components/Search/styled.js +13 -0
  67. package/components/Search/styled.js.map +1 -0
  68. package/components/index.d.ts +1 -1
  69. package/components/index.js +4 -4
  70. package/components/index.js.map +1 -1
  71. package/constants.d.ts +1 -0
  72. package/constants.js +8 -0
  73. package/constants.js.map +1 -0
  74. package/contexts/DisplayError/index.d.ts +6 -0
  75. package/contexts/DisplayError/index.js +38 -0
  76. package/contexts/DisplayError/index.js.map +1 -0
  77. package/contexts/FoldersApi/FoldersApiProvider.d.ts +23 -0
  78. package/contexts/FoldersApi/FoldersApiProvider.js +332 -0
  79. package/contexts/FoldersApi/FoldersApiProvider.js.map +1 -0
  80. package/contexts/FoldersApi/index.d.ts +2 -0
  81. package/contexts/FoldersApi/index.js +27 -0
  82. package/contexts/FoldersApi/index.js.map +1 -0
  83. package/contexts/FoldersApi/useFoldersApi.d.ts +2 -0
  84. package/contexts/FoldersApi/useFoldersApi.js +15 -0
  85. package/contexts/FoldersApi/useFoldersApi.js.map +1 -0
  86. package/contexts/acoList.d.ts +34 -0
  87. package/contexts/acoList.js +298 -0
  88. package/contexts/acoList.js.map +1 -0
  89. package/contexts/app.d.ts +35 -0
  90. package/contexts/app.js +197 -0
  91. package/contexts/app.js.map +1 -0
  92. package/contexts/folders.d.ts +8 -6
  93. package/contexts/folders.js +142 -240
  94. package/contexts/folders.js.map +1 -1
  95. package/contexts/index.d.ts +1 -2
  96. package/contexts/index.js +12 -12
  97. package/contexts/index.js.map +1 -1
  98. package/contexts/navigateFolder.d.ts +18 -0
  99. package/contexts/navigateFolder.js +72 -0
  100. package/contexts/navigateFolder.js.map +1 -0
  101. package/contexts/navigateFolderWithRouter.d.ts +8 -0
  102. package/contexts/navigateFolderWithRouter.js +92 -0
  103. package/contexts/navigateFolderWithRouter.js.map +1 -0
  104. package/contexts/records.d.ts +17 -26
  105. package/contexts/records.js +524 -383
  106. package/contexts/records.js.map +1 -1
  107. package/dialogs/Dialog.d.ts +15 -0
  108. package/dialogs/Dialog.js +43 -0
  109. package/dialogs/Dialog.js.map +1 -0
  110. package/dialogs/dialogs.d.ts +31 -0
  111. package/dialogs/dialogs.js +120 -0
  112. package/dialogs/dialogs.js.map +1 -0
  113. package/dialogs/index.d.ts +4 -0
  114. package/dialogs/index.js +49 -0
  115. package/dialogs/index.js.map +1 -0
  116. package/dialogs/styled.d.ts +18 -0
  117. package/dialogs/styled.js +24 -0
  118. package/dialogs/styled.js.map +1 -0
  119. package/dialogs/useDialogsContext.d.ts +2 -0
  120. package/dialogs/useDialogsContext.js +16 -0
  121. package/dialogs/useDialogsContext.js.map +1 -0
  122. package/dialogs/useMoveToFolderDialog.d.ts +22 -0
  123. package/dialogs/useMoveToFolderDialog.js +74 -0
  124. package/dialogs/useMoveToFolderDialog.js.map +1 -0
  125. package/graphql/app.gql.d.ts +17 -0
  126. package/graphql/app.gql.js +14 -0
  127. package/graphql/app.gql.js.map +1 -0
  128. package/graphql/folders.gql.js +1 -1
  129. package/graphql/folders.gql.js.map +1 -1
  130. package/graphql/records/common.d.ts +4 -0
  131. package/graphql/records/common.js +47 -0
  132. package/graphql/records/common.js.map +1 -0
  133. package/graphql/records/createRecord.d.ts +2 -0
  134. package/graphql/records/createRecord.js +19 -0
  135. package/graphql/records/createRecord.js.map +1 -0
  136. package/graphql/records/deleteRecord.d.ts +2 -0
  137. package/graphql/records/deleteRecord.js +19 -0
  138. package/graphql/records/deleteRecord.js.map +1 -0
  139. package/graphql/records/getRecord.d.ts +2 -0
  140. package/graphql/records/getRecord.js +20 -0
  141. package/graphql/records/getRecord.js.map +1 -0
  142. package/graphql/records/listRecords.d.ts +2 -0
  143. package/graphql/records/listRecords.js +29 -0
  144. package/graphql/records/listRecords.js.map +1 -0
  145. package/graphql/records/listTags.d.ts +2 -0
  146. package/graphql/records/listTags.js +19 -0
  147. package/graphql/records/listTags.js.map +1 -0
  148. package/graphql/records/moveRecord.d.ts +2 -0
  149. package/graphql/records/moveRecord.js +19 -0
  150. package/graphql/records/moveRecord.js.map +1 -0
  151. package/graphql/records/types.d.ts +108 -0
  152. package/graphql/records/types.js +5 -0
  153. package/graphql/records/types.js.map +1 -0
  154. package/graphql/records/updateRecord.d.ts +2 -0
  155. package/graphql/records/updateRecord.js +19 -0
  156. package/graphql/records/updateRecord.js.map +1 -0
  157. package/graphql/records.gql.d.ts +7 -6
  158. package/graphql/records.gql.js +77 -20
  159. package/graphql/records.gql.js.map +1 -1
  160. package/handlers.d.ts +7 -2
  161. package/handlers.js +36 -2
  162. package/handlers.js.map +1 -1
  163. package/hooks/index.d.ts +3 -0
  164. package/hooks/index.js +39 -1
  165. package/hooks/index.js.map +1 -1
  166. package/hooks/useAcoApp.d.ts +2 -0
  167. package/hooks/useAcoApp.js +25 -0
  168. package/hooks/useAcoApp.js.map +1 -0
  169. package/hooks/useAcoList.d.ts +3 -33
  170. package/hooks/useAcoList.js +6 -141
  171. package/hooks/useAcoList.js.map +1 -1
  172. package/hooks/useFolders.d.ts +8 -8
  173. package/hooks/useFolders.js +15 -25
  174. package/hooks/useFolders.js.map +1 -1
  175. package/hooks/useNavigateFolder.d.ts +2 -0
  176. package/hooks/useNavigateFolder.js +16 -0
  177. package/hooks/useNavigateFolder.js.map +1 -0
  178. package/hooks/useRecords.d.ts +12 -18
  179. package/hooks/useRecords.js +33 -16
  180. package/hooks/useRecords.js.map +1 -1
  181. package/hooks/useTags.d.ts +1 -6
  182. package/hooks/useTags.js +10 -19
  183. package/hooks/useTags.js.map +1 -1
  184. package/index.d.ts +5 -2
  185. package/index.js +51 -32
  186. package/index.js.map +1 -1
  187. package/package.json +22 -16
  188. package/sorting.d.ts +9 -3
  189. package/sorting.js +38 -12
  190. package/sorting.js.map +1 -1
  191. package/types.d.ts +40 -114
  192. package/types.js +11 -13
  193. package/types.js.map +1 -1
  194. package/components/FolderTree/List/constants.d.ts +0 -1
  195. package/components/FolderTree/List/constants.js +0 -8
  196. package/components/FolderTree/List/constants.js.map +0 -1
  197. package/components/FolderTree/Title/index.d.ts +0 -9
  198. package/components/FolderTree/Title/index.js +0 -24
  199. package/components/FolderTree/Title/index.js.map +0 -1
  200. package/components/FolderTree/Title/styled.d.ts +0 -16
  201. package/components/FolderTree/Title/styled.js +0 -24
  202. package/components/FolderTree/Title/styled.js.map +0 -1
  203. package/components/TagList/Empty.d.ts +0 -6
  204. package/components/TagList/Empty.js +0 -22
  205. package/components/TagList/Empty.js.map +0 -1
  206. package/components/TagList/Loader.d.ts +0 -2
  207. package/components/TagList/Loader.js +0 -19
  208. package/components/TagList/Loader.js.map +0 -1
  209. package/components/TagList/Tag.d.ts +0 -9
  210. package/components/TagList/Tag.js +0 -28
  211. package/components/TagList/Tag.js.map +0 -1
  212. package/components/TagList/TagList.d.ts +0 -14
  213. package/components/TagList/TagList.js +0 -65
  214. package/components/TagList/TagList.js.map +0 -1
  215. package/components/TagList/index.d.ts +0 -1
  216. package/components/TagList/index.js.map +0 -1
  217. package/components/TagList/styled.d.ts +0 -27
  218. package/components/TagList/styled.js +0 -35
  219. package/components/TagList/styled.js.map +0 -1
@@ -6,19 +6,20 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.SearchRecordsProvider = exports.SearchRecordsContext = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- var _objectSpread18 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
14
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
14
  var _react = _interopRequireWildcard(require("react"));
16
- var _reactHooks = require("@apollo/react-hooks");
15
+ var _dotPropImmutable = _interopRequireDefault(require("dot-prop-immutable"));
17
16
  var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
18
17
  var _unionBy = _interopRequireDefault(require("lodash/unionBy"));
19
18
  var _handlers = require("../handlers");
20
19
  var _records = require("../graphql/records.gql");
21
20
  var _sorting = require("../sorting");
21
+ var _hooks = require("../hooks");
22
+ var _utils = require("@webiny/utils");
22
23
  var SearchRecordsContext = /*#__PURE__*/_react.default.createContext(undefined);
23
24
  exports.SearchRecordsContext = SearchRecordsContext;
24
25
  var defaultLoading = {
@@ -26,10 +27,37 @@ var defaultLoading = {
26
27
  LIST: false,
27
28
  LIST_MORE: false,
28
29
  GET: false,
30
+ MOVE: false,
29
31
  CREATE: false,
30
32
  UPDATE: false,
31
33
  DELETE: false
32
34
  };
35
+ var mergeRecords = function mergeRecords(oldRecords, newRecords) {
36
+ if (!newRecords.length) {
37
+ return oldRecords;
38
+ }
39
+ var mergedRecords = newRecords.reduce(function (items, record) {
40
+ var index = items.findIndex(function (item) {
41
+ return item.id === record.id;
42
+ });
43
+ if (index === -1) {
44
+ items.push(record);
45
+ return items;
46
+ }
47
+ items[index] = record;
48
+ return items;
49
+ }, (0, _toConsumableArray2.default)(oldRecords)); // merge the two arrays
50
+
51
+ return (0, _sortBy.default)(mergedRecords, ["title"]);
52
+ };
53
+ var getRecordCount = function getRecordCount(records, folderIdPath, folderId) {
54
+ if (!folderId) {
55
+ return records.length;
56
+ }
57
+ return records.filter(function (record) {
58
+ return _dotPropImmutable.default.get(record, folderIdPath) === folderId;
59
+ }).length;
60
+ };
33
61
  var mergeAndSortTags = function mergeAndSortTags(oldTagItems, newTags) {
34
62
  if (!newTags.length) {
35
63
  return oldTagItems;
@@ -43,14 +71,31 @@ var mergeAndSortTags = function mergeAndSortTags(oldTagItems, newTags) {
43
71
 
44
72
  return (0, _sortBy.default)(mergedTagItems, ["tag"]);
45
73
  };
74
+ var getResponseData = function getResponseData(response, mode) {
75
+ var _response$search;
76
+ if (mode === "cms") {
77
+ return (response === null || response === void 0 ? void 0 : response.content) || {};
78
+ }
79
+ return ((_response$search = response.search) === null || _response$search === void 0 ? void 0 : _response$search.content) || {};
80
+ };
81
+ var defaultMeta = {
82
+ totalCount: 0,
83
+ hasMoreItems: false,
84
+ cursor: null
85
+ };
46
86
  var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
47
87
  var children = _ref.children;
48
- var client = (0, _reactHooks.useApolloClient)();
49
- var _useState = (0, _react.useState)(Object.create(null)),
88
+ var _useAcoApp = (0, _hooks.useAcoApp)(),
89
+ app = _useAcoApp.app,
90
+ client = _useAcoApp.client,
91
+ mode = _useAcoApp.mode,
92
+ folderIdPath = _useAcoApp.folderIdPath;
93
+ var model = app.model;
94
+ var _useState = (0, _react.useState)([]),
50
95
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
96
  records = _useState2[0],
52
97
  setRecords = _useState2[1];
53
- var _useState3 = (0, _react.useState)(Object.create(null)),
98
+ var _useState3 = (0, _react.useState)([]),
54
99
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
55
100
  tags = _useState4[0],
56
101
  setTags = _useState4[1];
@@ -58,417 +103,513 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
58
103
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
59
104
  loading = _useState6[0],
60
105
  setLoading = _useState6[1];
61
- var _useState7 = (0, _react.useState)(Object.create(null)),
106
+ var _useState7 = (0, _react.useState)(Object.create(defaultMeta)),
62
107
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
63
108
  meta = _useState8[0],
64
109
  setMeta = _useState8[1];
65
- var context = {
66
- records: records,
67
- tags: tags,
68
- loading: loading,
69
- meta: meta,
70
- listRecords: function listRecords(params) {
71
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
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;
74
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
75
- while (1) switch (_context.prev = _context.next) {
76
- case 0:
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;
78
- /**
79
- * Both folderId and type are optional to init `useRecords` but required to list records:
80
- * this allows us to use `useRecords` methods like `getRecord` without passing useless params.
81
- * But still, we need these params to list records.
82
- */
83
- if (type) {
84
- _context.next = 3;
85
- break;
86
- }
87
- throw new Error("`type` are mandatory");
88
- case 3:
89
- /**
90
- * Avoiding to fetch records in case they have already been fetched.
91
- * This happens when visiting a list with all records loaded and receives "after" param.
92
- */
93
- recordsCount = records[type] && records[type].filter(function (record) {
94
- return record.location.folderId === folderId;
95
- }).length;
96
- totalCount = ((_meta = meta[folderId || "search"]) === null || _meta === void 0 ? void 0 : _meta.totalCount) || 0;
97
- if (!(after && recordsCount === totalCount)) {
98
- _context.next = 7;
99
- break;
100
- }
101
- return _context.abrupt("return");
102
- case 7:
103
- // Remove records in case of sorting change and not a paginated request.
104
- if (sorting && !after) {
105
- setRecords(function (records) {
106
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, []));
107
- });
108
- }
109
- action = after ? "LIST_MORE" : "LIST";
110
- sort = (0, _sorting.validateOrGetDefaultDbSort)(sorting);
111
- _context.next = 12;
112
- return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)(action, setLoading), function () {
113
- return client.query({
114
- query: _records.LIST_RECORDS,
115
- variables: {
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
- }),
110
+ var _useMemo = (0, _react.useMemo)(function () {
111
+ return {
112
+ LIST_RECORDS: (0, _records.createListRecords)(model, mode),
113
+ UPDATE_RECORD: (0, _records.createUpdateRecord)(model, mode),
114
+ MOVE_RECORD: (0, _records.createMoveRecord)(model, mode),
115
+ GET_RECORD: (0, _records.createGetRecord)(model, mode),
116
+ LIST_TAGS: (0, _records.createListTags)(model, mode),
117
+ DELETE_RECORD: (0, _records.createDeleteRecord)(model, mode),
118
+ CREATE_RECORD: (0, _records.createCreateRecord)(model, mode)
119
+ };
120
+ }, [app.id, model.modelId]),
121
+ GET_RECORD = _useMemo.GET_RECORD,
122
+ LIST_RECORDS = _useMemo.LIST_RECORDS,
123
+ UPDATE_RECORD = _useMemo.UPDATE_RECORD,
124
+ MOVE_RECORD = _useMemo.MOVE_RECORD,
125
+ DELETE_RECORD = _useMemo.DELETE_RECORD,
126
+ CREATE_RECORD = _useMemo.CREATE_RECORD,
127
+ LIST_TAGS = _useMemo.LIST_TAGS;
128
+ var context = (0, _react.useMemo)(function () {
129
+ return {
130
+ records: records,
131
+ tags: tags,
132
+ loading: loading,
133
+ meta: meta,
134
+ addRecordToCache: function addRecordToCache(record) {
135
+ setRecords(function (prev) {
136
+ return [record].concat((0, _toConsumableArray2.default)(prev));
137
+ });
138
+ },
139
+ updateRecordInCache: function updateRecordInCache(record) {
140
+ var _parseIdentifier = (0, _utils.parseIdentifier)(record.id),
141
+ recordId = _parseIdentifier.id;
142
+ var index = records.findIndex(function (item) {
143
+ var _parseIdentifier2 = (0, _utils.parseIdentifier)(item.id),
144
+ itemId = _parseIdentifier2.id;
145
+ return itemId === recordId;
146
+ });
147
+ if (index === -1) {
148
+ return;
149
+ }
150
+ setRecords(function (prev) {
151
+ var next = (0, _toConsumableArray2.default)(prev);
152
+ next[index] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev[index]), record);
153
+ return next;
154
+ });
155
+ },
156
+ removeRecordFromCache: function removeRecordFromCache(id) {
157
+ setRecords(function (prev) {
158
+ return prev.filter(function (record) {
159
+ return record.id !== id;
160
+ });
161
+ });
162
+ },
163
+ listRecords: function listRecords(params) {
164
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
165
+ var after, limit, sorting, search, where, folderId, recordsCount, totalCount, action, sort, _yield$apolloFetching, response, _getResponseData, data, responseMeta, error;
166
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
167
+ while (1) switch (_context.prev = _context.next) {
168
+ case 0:
169
+ after = params.after, limit = params.limit, sorting = params.sort, search = params.search, where = params.where;
170
+ folderId = _dotPropImmutable.default.get(where, folderIdPath);
171
+ /**
172
+ * Avoiding to fetch records in case they have already been fetched.
173
+ * This happens when visiting a list with all records loaded and receives "after" param.
174
+ */
175
+ recordsCount = getRecordCount(records, folderIdPath, folderId);
176
+ totalCount = (meta === null || meta === void 0 ? void 0 : meta.totalCount) || 0;
177
+ if (!(after && recordsCount === totalCount)) {
178
+ _context.next = 6;
179
+ break;
180
+ }
181
+ return _context.abrupt("return", records);
182
+ case 6:
183
+ // Remove records in case of sorting change and not a paginated request.
184
+ if (sorting && !after) {
185
+ setRecords([]);
186
+ }
187
+ action = after ? "LIST_MORE" : "LIST";
188
+ sort = (0, _sorting.validateOrGetDefaultDbSort)(sorting);
189
+ _context.next = 11;
190
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)(action, setLoading), function () {
191
+ var variables = {
192
+ where: where,
130
193
  search: search,
131
194
  limit: limit,
132
195
  after: after,
133
196
  sort: sort
134
- },
135
- fetchPolicy: "network-only"
197
+ };
198
+ return client.query({
199
+ query: LIST_RECORDS,
200
+ variables: variables,
201
+ fetchPolicy: "network-only"
202
+ });
136
203
  });
137
- });
138
- case 12:
139
- _yield$apolloFetching = _context.sent;
140
- response = _yield$apolloFetching.data;
141
- _response$search$list = response.search.listRecords, data = _response$search$list.data, responseMeta = _response$search$list.meta, error = _response$search$list.error;
142
- if (!(!data || !responseMeta)) {
143
- _context.next = 17;
144
- break;
145
- }
146
- throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch records");
147
- case 17:
148
- setRecords(function (records) {
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)));
204
+ case 11:
205
+ _yield$apolloFetching = _context.sent;
206
+ response = _yield$apolloFetching.data;
207
+ if (response) {
208
+ _context.next = 15;
209
+ break;
152
210
  }
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)));
156
- });
157
- setMeta(function (meta) {
158
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId || "search", responseMeta));
159
- });
160
- setLoading(function (prev) {
161
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, prev), {}, {
162
- INIT: false
211
+ throw new Error("Could not fetch records - no response.");
212
+ case 15:
213
+ _getResponseData = getResponseData(response, mode), data = _getResponseData.data, responseMeta = _getResponseData.meta, error = _getResponseData.error;
214
+ if (!(!data || !responseMeta)) {
215
+ _context.next = 18;
216
+ break;
217
+ }
218
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch records.");
219
+ case 18:
220
+ setRecords(function (prev) {
221
+ /**
222
+ * In case of paginated request, we merge the fetched records with the existing ones, and then sort them.
223
+ * Otherwise, we sort the fetched records and set them as the new records.
224
+ */
225
+ return (0, _sorting.sortTableItems)(mergeRecords(after ? prev : [], data), sort);
163
226
  });
164
- });
165
- return _context.abrupt("return", data);
166
- case 21:
167
- case "end":
168
- return _context.stop();
169
- }
170
- }, _callee);
171
- }))();
172
- },
173
- getRecord: function getRecord(id) {
174
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
175
- var _yield$apolloFetching2, response, _response$search$getR, data, error;
176
- return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
177
- while (1) switch (_context2.prev = _context2.next) {
178
- case 0:
179
- if (id) {
180
- _context2.next = 2;
181
- break;
182
- }
183
- throw new Error("Record `id` is mandatory");
184
- case 2:
185
- _context2.next = 4;
186
- return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("GET", setLoading), function () {
187
- return client.query({
188
- query: _records.GET_RECORD,
189
- variables: {
190
- id: id
191
- },
192
- fetchPolicy: "network-only"
227
+ setMeta(function () {
228
+ return responseMeta;
193
229
  });
194
- });
195
- case 4:
196
- _yield$apolloFetching2 = _context2.sent;
197
- response = _yield$apolloFetching2.data;
198
- _response$search$getR = response.search.getRecord, data = _response$search$getR.data, error = _response$search$getR.error;
199
- if (!(error && error.code !== "NOT_FOUND")) {
200
- _context2.next = 9;
201
- break;
202
- }
203
- throw new Error("Network error while syncing record");
204
- case 9:
205
- if (!data) {
206
- // No record found - must be deleted by previous operation
207
- setRecords(function (records) {
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;
230
+ setLoading(function (prev) {
231
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev), {}, {
232
+ INIT: false
212
233
  });
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) {
234
+ });
235
+ return _context.abrupt("return", data);
236
+ case 22:
237
+ case "end":
238
+ return _context.stop();
239
+ }
240
+ }, _callee);
241
+ }))();
242
+ },
243
+ getRecord: function getRecord(id) {
244
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
245
+ var _yield$apolloFetching2, response, _getResponseData2, data, error;
246
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
247
+ while (1) switch (_context2.prev = _context2.next) {
248
+ case 0:
249
+ if (id) {
250
+ _context2.next = 2;
251
+ break;
252
+ }
253
+ throw new Error("Record `id` is mandatory");
254
+ case 2:
255
+ _context2.next = 4;
256
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("GET", setLoading), function () {
257
+ return client.query({
258
+ query: GET_RECORD,
259
+ variables: {
260
+ id: id
261
+ },
262
+ fetchPolicy: "network-only"
263
+ });
264
+ });
265
+ case 4:
266
+ _yield$apolloFetching2 = _context2.sent;
267
+ response = _yield$apolloFetching2.data;
268
+ if (response) {
269
+ _context2.next = 8;
270
+ break;
271
+ }
272
+ throw new Error("Could not fetch record \"".concat(id, "\" - no response."));
273
+ case 8:
274
+ _getResponseData2 = getResponseData(response, mode), data = _getResponseData2.data, error = _getResponseData2.error;
275
+ if (!(error && error.code !== "NOT_FOUND")) {
276
+ _context2.next = 11;
277
+ break;
278
+ }
279
+ throw new Error("Network error while syncing record");
280
+ case 11:
281
+ if (data) {
282
+ _context2.next = 14;
283
+ break;
284
+ }
285
+ // No record found - must be deleted by previous operation
286
+ setRecords(function (prev) {
287
+ return prev.filter(function (record) {
217
288
  return record.id !== id;
218
- })));
289
+ });
219
290
  });
220
- } else {
221
- setRecords(function (prevRecords) {
222
- var prevRecordsByType = prevRecords[data.type];
223
- var recordIndex = prevRecordsByType.findIndex(function (record) {
291
+ return _context2.abrupt("return", data);
292
+ case 14:
293
+ setRecords(function (prev) {
294
+ var index = prev.findIndex(function (record) {
224
295
  return record.id === id;
225
296
  });
226
297
 
227
298
  // No record found in the list - must be added by previous operation
228
- if (recordIndex === -1) {
229
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, prevRecords), {}, (0, _defineProperty2.default)({}, data.type, [data].concat((0, _toConsumableArray2.default)(prevRecordsByType))));
299
+ if (index === -1) {
300
+ return [data].concat((0, _toConsumableArray2.default)(prev));
230
301
  }
231
-
232
- // Updating record found in the list
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)))));
234
- return result;
302
+ var next = (0, _toConsumableArray2.default)(prev);
303
+ next[index] = data;
304
+ return next;
235
305
  });
236
306
  setTags(function (tags) {
237
307
  if (!data.tags || data.tags.length === 0) {
238
308
  return tags;
239
309
  }
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)));
310
+ return mergeAndSortTags(tags, data.tags);
311
+ });
312
+ return _context2.abrupt("return", data);
313
+ case 17:
314
+ case "end":
315
+ return _context2.stop();
316
+ }
317
+ }, _callee2);
318
+ }))();
319
+ },
320
+ createRecord: function createRecord(record) {
321
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
322
+ var _yield$apolloFetching3, response, _getResponseData3, data, error;
323
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
324
+ while (1) switch (_context3.prev = _context3.next) {
325
+ case 0:
326
+ if (CREATE_RECORD) {
327
+ _context3.next = 2;
328
+ break;
329
+ }
330
+ throw new Error("Missing CREATE_RECORD operation.");
331
+ case 2:
332
+ _context3.next = 4;
333
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("CREATE", setLoading), function () {
334
+ return client.mutate({
335
+ mutation: CREATE_RECORD,
336
+ variables: {
337
+ data: record
338
+ }
339
+ });
243
340
  });
244
- }
245
- return _context2.abrupt("return", data);
246
- case 11:
247
- case "end":
248
- return _context2.stop();
249
- }
250
- }, _callee2);
251
- }))();
252
- },
253
- createRecord: function createRecord(record) {
254
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
255
- var location, folderId, _yield$apolloFetching3, response, _response$search$crea, data, error;
256
- return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
257
- while (1) switch (_context3.prev = _context3.next) {
258
- case 0:
259
- location = record.location;
260
- folderId = location.folderId;
261
- _context3.next = 4;
262
- return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("CREATE", setLoading), function () {
263
- return client.mutate({
264
- mutation: _records.CREATE_RECORD,
265
- variables: {
266
- data: record
341
+ case 4:
342
+ _yield$apolloFetching3 = _context3.sent;
343
+ response = _yield$apolloFetching3.data;
344
+ if (response) {
345
+ _context3.next = 8;
346
+ break;
347
+ }
348
+ throw new Error("Network error while creating search record.");
349
+ case 8:
350
+ _getResponseData3 = getResponseData(response, mode), data = _getResponseData3.data, error = _getResponseData3.error;
351
+ if (data) {
352
+ _context3.next = 11;
353
+ break;
354
+ }
355
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not create record");
356
+ case 11:
357
+ setRecords(function (prev) {
358
+ return [].concat((0, _toConsumableArray2.default)(prev), [data]);
359
+ });
360
+ setMeta(function (meta) {
361
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, meta), {}, {
362
+ totalCount: ++meta.totalCount
363
+ });
364
+ });
365
+ setTags(function (tags) {
366
+ if (!data.tags || data.tags.length === 0) {
367
+ return tags;
267
368
  }
369
+ return mergeAndSortTags(tags, data.tags);
268
370
  });
269
- });
270
- case 4:
271
- _yield$apolloFetching3 = _context3.sent;
272
- response = _yield$apolloFetching3.data;
273
- if (response) {
274
- _context3.next = 8;
275
- break;
276
- }
277
- throw new Error("Network error while creating search record");
278
- case 8:
279
- _response$search$crea = response.search.createRecord, data = _response$search$crea.data, error = _response$search$crea.error;
280
- if (data) {
281
- _context3.next = 11;
282
- break;
283
- }
284
- throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not create record");
285
- case 11:
286
- setRecords(function (records) {
287
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, data.type, [].concat((0, _toConsumableArray2.default)(records[data.type]), [data])));
288
- });
289
- setMeta(function (meta) {
290
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta[folderId]), {}, {
291
- totalCount: ++meta[folderId].totalCount
292
- })));
293
- });
294
- setTags(function (tags) {
295
- if (!data.tags || data.tags.length === 0) {
296
- return tags;
371
+ return _context3.abrupt("return", data);
372
+ case 15:
373
+ case "end":
374
+ return _context3.stop();
375
+ }
376
+ }, _callee3);
377
+ }))();
378
+ },
379
+ updateRecord: function updateRecord(record, contextFolderId) {
380
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
381
+ var id, location, data, title, content, _yield$apolloFetching4, response, _getResponseData4, result, error;
382
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
383
+ while (1) switch (_context4.prev = _context4.next) {
384
+ case 0:
385
+ if (contextFolderId) {
386
+ _context4.next = 2;
387
+ break;
297
388
  }
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
- });
302
- return _context3.abrupt("return", data);
303
- case 15:
304
- case "end":
305
- return _context3.stop();
306
- }
307
- }, _callee3);
308
- }))();
309
- },
310
- updateRecord: function updateRecord(record, contextFolderId) {
311
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
312
- var id, location, data, title, content, type, _yield$apolloFetching4, response, _response$search$upda, result, error;
313
- return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
314
- while (1) switch (_context4.prev = _context4.next) {
315
- case 0:
316
- if (contextFolderId) {
317
- _context4.next = 2;
318
- break;
319
- }
320
- throw new Error("`folderId` is mandatory");
321
- case 2:
322
- id = record.id, location = record.location, data = record.data, title = record.title, content = record.content, type = record.type;
323
- _context4.next = 5;
324
- return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("UPDATE", setLoading), function () {
325
- return client.mutate({
326
- mutation: _records.UPDATE_RECORD,
327
- variables: {
328
- id: id,
329
- data: {
330
- title: title,
331
- content: content,
332
- location: location,
333
- data: data
389
+ throw new Error("`folderId` is mandatory");
390
+ case 2:
391
+ if (UPDATE_RECORD) {
392
+ _context4.next = 4;
393
+ break;
394
+ }
395
+ throw new Error("Missing UPDATE_RECORD operation.");
396
+ case 4:
397
+ id = record.id, location = record.location, data = record.data, title = record.title, content = record.content;
398
+ _context4.next = 7;
399
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("UPDATE", setLoading), function () {
400
+ return client.mutate({
401
+ mutation: UPDATE_RECORD,
402
+ variables: {
403
+ id: id,
404
+ data: {
405
+ title: title,
406
+ content: content,
407
+ location: location,
408
+ data: data
409
+ }
334
410
  }
335
- }
411
+ });
336
412
  });
337
- });
338
- case 5:
339
- _yield$apolloFetching4 = _context4.sent;
340
- response = _yield$apolloFetching4.data;
341
- if (response) {
342
- _context4.next = 9;
343
- break;
344
- }
345
- throw new Error("Network error while updating record");
346
- case 9:
347
- _response$search$upda = response.search.updateRecord, result = _response$search$upda.data, error = _response$search$upda.error;
348
- if (result) {
349
- _context4.next = 12;
350
- break;
351
- }
352
- throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not update record");
353
- case 12:
354
- setRecords(function (records) {
355
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, records[type].map(function (record) {
356
- return record.id === id ? result : record;
357
- }).filter(function (record) {
358
- return record.location.folderId === contextFolderId;
359
- })));
360
- });
361
- setTags(function (tags) {
362
- if (!data.tags || data.tags.length === 0) {
363
- return tags;
413
+ case 7:
414
+ _yield$apolloFetching4 = _context4.sent;
415
+ response = _yield$apolloFetching4.data;
416
+ if (response) {
417
+ _context4.next = 11;
418
+ break;
364
419
  }
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)));
368
- });
369
- return _context4.abrupt("return", result);
370
- case 15:
371
- case "end":
372
- return _context4.stop();
373
- }
374
- }, _callee4);
375
- }))();
376
- },
377
- deleteRecord: function deleteRecord(record) {
378
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
379
- var id, location, type, folderId, _yield$apolloFetching5, response, _response$search$dele, data, error;
380
- return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
381
- while (1) switch (_context5.prev = _context5.next) {
382
- case 0:
383
- id = record.id, location = record.location, type = record.type;
384
- folderId = location.folderId;
385
- _context5.next = 4;
386
- return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("DELETE", setLoading), function () {
387
- return client.mutate({
388
- mutation: _records.DELETE_RECORD,
389
- variables: {
390
- id: id
420
+ throw new Error("Network error while updating record");
421
+ case 11:
422
+ _getResponseData4 = getResponseData(response, mode), result = _getResponseData4.data, error = _getResponseData4.error;
423
+ if (result) {
424
+ _context4.next = 14;
425
+ break;
426
+ }
427
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not update record");
428
+ case 14:
429
+ setRecords(function (records) {
430
+ var index = records.findIndex(function (record) {
431
+ return record.id === id;
432
+ });
433
+ if (index === -1) {
434
+ return [result].concat((0, _toConsumableArray2.default)(records));
391
435
  }
436
+ var next = (0, _toConsumableArray2.default)(records);
437
+ next[index] = result;
438
+ return next;
392
439
  });
393
- });
394
- case 4:
395
- _yield$apolloFetching5 = _context5.sent;
396
- response = _yield$apolloFetching5.data;
397
- if (response) {
398
- _context5.next = 8;
399
- break;
400
- }
401
- throw new Error("Network error while deleting record");
402
- case 8:
403
- _response$search$dele = response.search.deleteRecord, data = _response$search$dele.data, error = _response$search$dele.error;
404
- if (data) {
405
- _context5.next = 11;
406
- break;
407
- }
408
- throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not delete record");
409
- case 11:
410
- setRecords(function (records) {
411
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, records), {}, (0, _defineProperty2.default)({}, type, records[type].filter(function (record) {
412
- return record.id !== id;
413
- })));
414
- });
415
- setMeta(function (meta) {
416
- return (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta), {}, (0, _defineProperty2.default)({}, folderId, (0, _objectSpread18.default)((0, _objectSpread18.default)({}, meta[folderId]), {}, {
417
- totalCount: --meta[folderId].totalCount
418
- })));
419
- });
420
- return _context5.abrupt("return", true);
421
- case 14:
422
- case "end":
423
- return _context5.stop();
424
- }
425
- }, _callee5);
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
440
+ setTags(function (tags) {
441
+ if (!data.tags || data.tags.length === 0) {
442
+ return tags;
447
443
  }
444
+ return mergeAndSortTags(tags, data.tags);
448
445
  });
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
- }))();
470
- }
471
- };
446
+ return _context4.abrupt("return", result);
447
+ case 17:
448
+ case "end":
449
+ return _context4.stop();
450
+ }
451
+ }, _callee4);
452
+ }))();
453
+ },
454
+ moveRecord: function () {
455
+ var _moveRecord = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5(record) {
456
+ var id, location, folderId, _yield$apolloFetching5, response, _getResponseData5, data, error;
457
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
458
+ while (1) switch (_context5.prev = _context5.next) {
459
+ case 0:
460
+ id = record.id, location = record.location;
461
+ folderId = location.folderId;
462
+ _context5.next = 4;
463
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("MOVE", setLoading), function () {
464
+ return client.mutate({
465
+ mutation: MOVE_RECORD,
466
+ variables: {
467
+ id: id,
468
+ folderId: folderId
469
+ }
470
+ });
471
+ });
472
+ case 4:
473
+ _yield$apolloFetching5 = _context5.sent;
474
+ response = _yield$apolloFetching5.data;
475
+ if (response) {
476
+ _context5.next = 8;
477
+ break;
478
+ }
479
+ throw new Error("Network error while moving record.");
480
+ case 8:
481
+ _getResponseData5 = getResponseData(response, mode), data = _getResponseData5.data, error = _getResponseData5.error;
482
+ if (data) {
483
+ _context5.next = 11;
484
+ break;
485
+ }
486
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not move record.");
487
+ case 11:
488
+ setRecords(function (prev) {
489
+ return prev.filter(function (record) {
490
+ return record.id !== id;
491
+ });
492
+ });
493
+ setMeta(function (meta) {
494
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, meta), {}, {
495
+ totalCount: --meta.totalCount
496
+ });
497
+ });
498
+ case 13:
499
+ case "end":
500
+ return _context5.stop();
501
+ }
502
+ }, _callee5);
503
+ }));
504
+ function moveRecord(_x) {
505
+ return _moveRecord.apply(this, arguments);
506
+ }
507
+ return moveRecord;
508
+ }(),
509
+ deleteRecord: function deleteRecord(record) {
510
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6() {
511
+ var id, _yield$apolloFetching6, response, _getResponseData6, data, error;
512
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
513
+ while (1) switch (_context6.prev = _context6.next) {
514
+ case 0:
515
+ if (DELETE_RECORD) {
516
+ _context6.next = 2;
517
+ break;
518
+ }
519
+ throw new Error("Missing DELETE_RECORD operation.");
520
+ case 2:
521
+ id = record.id;
522
+ _context6.next = 5;
523
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("DELETE", setLoading), function () {
524
+ return client.mutate({
525
+ mutation: DELETE_RECORD,
526
+ variables: {
527
+ id: id
528
+ }
529
+ });
530
+ });
531
+ case 5:
532
+ _yield$apolloFetching6 = _context6.sent;
533
+ response = _yield$apolloFetching6.data;
534
+ if (response) {
535
+ _context6.next = 9;
536
+ break;
537
+ }
538
+ throw new Error("Network error while deleting record.");
539
+ case 9:
540
+ _getResponseData6 = getResponseData(response, mode), data = _getResponseData6.data, error = _getResponseData6.error;
541
+ if (data) {
542
+ _context6.next = 12;
543
+ break;
544
+ }
545
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not delete record");
546
+ case 12:
547
+ setRecords(function (prev) {
548
+ return prev.filter(function (record) {
549
+ return record.id !== id;
550
+ });
551
+ });
552
+ setMeta(function (meta) {
553
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, meta), {}, {
554
+ totalCount: --meta.totalCount
555
+ });
556
+ });
557
+ return _context6.abrupt("return", true);
558
+ case 15:
559
+ case "end":
560
+ return _context6.stop();
561
+ }
562
+ }, _callee6);
563
+ }))();
564
+ },
565
+ listTags: function listTags(params) {
566
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee7() {
567
+ var _yield$apolloFetching7, response, _getResponseData7, data, error;
568
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee7$(_context7) {
569
+ while (1) switch (_context7.prev = _context7.next) {
570
+ case 0:
571
+ if (LIST_TAGS) {
572
+ _context7.next = 2;
573
+ break;
574
+ }
575
+ throw new Error("Missing LIST_TAGS operation.");
576
+ case 2:
577
+ _context7.next = 4;
578
+ return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("LIST", setLoading), function () {
579
+ return client.query({
580
+ query: LIST_TAGS,
581
+ variables: {
582
+ where: params.where
583
+ }
584
+ });
585
+ });
586
+ case 4:
587
+ _yield$apolloFetching7 = _context7.sent;
588
+ response = _yield$apolloFetching7.data;
589
+ if (response) {
590
+ _context7.next = 8;
591
+ break;
592
+ }
593
+ throw new Error("Network error while fetching tags.");
594
+ case 8:
595
+ _getResponseData7 = getResponseData(response, mode), data = _getResponseData7.data, error = _getResponseData7.error;
596
+ if (data) {
597
+ _context7.next = 11;
598
+ break;
599
+ }
600
+ throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch tags");
601
+ case 11:
602
+ setTags(data);
603
+ return _context7.abrupt("return", data);
604
+ case 13:
605
+ case "end":
606
+ return _context7.stop();
607
+ }
608
+ }, _callee7);
609
+ }))();
610
+ }
611
+ };
612
+ }, [app.id, model.modelId, records, setRecords, tags, meta, loading, GET_RECORD, LIST_RECORDS, UPDATE_RECORD, DELETE_RECORD, MOVE_RECORD, CREATE_RECORD, LIST_TAGS]);
472
613
  return /*#__PURE__*/_react.default.createElement(SearchRecordsContext.Provider, {
473
614
  value: context
474
615
  }, children);