@micromag/data 0.2.286
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.
- package/es/index.js +897 -0
- package/lib/index.js +930 -0
- package/package.json +62 -0
package/lib/index.js
ADDED
|
@@ -0,0 +1,930 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
6
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
7
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
8
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
9
|
+
var React = require('react');
|
|
10
|
+
var PropTypes = require('prop-types');
|
|
11
|
+
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
12
|
+
var _inherits = require('@babel/runtime/helpers/inherits');
|
|
13
|
+
var _createSuper = require('@babel/runtime/helpers/createSuper');
|
|
14
|
+
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
15
|
+
var fetch = require('@folklore/fetch');
|
|
16
|
+
var reactRouter = require('react-router');
|
|
17
|
+
var queryString = require('query-string');
|
|
18
|
+
|
|
19
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
|
+
|
|
21
|
+
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
|
22
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
23
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
24
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
25
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
26
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
27
|
+
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
28
|
+
var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
|
|
29
|
+
var _createSuper__default = /*#__PURE__*/_interopDefaultLegacy(_createSuper);
|
|
30
|
+
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
31
|
+
|
|
32
|
+
var Base = /*#__PURE__*/function () {
|
|
33
|
+
function Base() {
|
|
34
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
35
|
+
|
|
36
|
+
_classCallCheck__default['default'](this, Base);
|
|
37
|
+
|
|
38
|
+
this.options = _objectSpread__default['default'](_objectSpread__default['default']({
|
|
39
|
+
routes: {}
|
|
40
|
+
}, opts), {}, {
|
|
41
|
+
baseUrl: opts.baseUrl || 'https://micromag.ca/api'
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
_createClass__default['default'](Base, [{
|
|
46
|
+
key: "requestGet",
|
|
47
|
+
value: function requestGet(path) {
|
|
48
|
+
var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
49
|
+
var queryString$1 = query !== null ? queryString.stringify(query, {
|
|
50
|
+
arrayFormat: 'bracket'
|
|
51
|
+
}) : null;
|
|
52
|
+
return fetch.getJSON("".concat(this.getFullUrl(path)).concat(queryString$1 !== null && queryString$1.length > 0 ? "?".concat(queryString$1) : ''), {
|
|
53
|
+
credentials: 'include',
|
|
54
|
+
headers: fetch.getCSRFHeaders()
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}, {
|
|
58
|
+
key: "requestPost",
|
|
59
|
+
value: function requestPost(path, data) {
|
|
60
|
+
return fetch.postJSON(this.getFullUrl(path), data, {
|
|
61
|
+
credentials: 'include',
|
|
62
|
+
headers: fetch.getCSRFHeaders()
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}, {
|
|
66
|
+
key: "requestPut",
|
|
67
|
+
value: function requestPut(path, data) {
|
|
68
|
+
return fetch.postJSON(this.getFullUrl(path), _objectSpread__default['default']({
|
|
69
|
+
_method: 'PUT'
|
|
70
|
+
}, data), {
|
|
71
|
+
credentials: 'include',
|
|
72
|
+
headers: fetch.getCSRFHeaders()
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "requestDelete",
|
|
77
|
+
value: function requestDelete(path) {
|
|
78
|
+
return this.requestPost(path, {
|
|
79
|
+
_method: 'DELETE'
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
key: "route",
|
|
84
|
+
value: function route(_route, params) {
|
|
85
|
+
var routes = this.options.routes;
|
|
86
|
+
return reactRouter.generatePath(routes[_route] || _route, params);
|
|
87
|
+
}
|
|
88
|
+
}, {
|
|
89
|
+
key: "getFullUrl",
|
|
90
|
+
value: function getFullUrl(path) {
|
|
91
|
+
var baseUrl = this.options.baseUrl;
|
|
92
|
+
return "".concat(baseUrl.replace(/\/$/, ''), "/").concat(path.replace(/^\//, ''));
|
|
93
|
+
}
|
|
94
|
+
}]);
|
|
95
|
+
|
|
96
|
+
return Base;
|
|
97
|
+
}();
|
|
98
|
+
|
|
99
|
+
var MediasApi = /*#__PURE__*/function (_Base) {
|
|
100
|
+
_inherits__default['default'](MediasApi, _Base);
|
|
101
|
+
|
|
102
|
+
var _super = _createSuper__default['default'](MediasApi);
|
|
103
|
+
|
|
104
|
+
function MediasApi() {
|
|
105
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
106
|
+
|
|
107
|
+
_classCallCheck__default['default'](this, MediasApi);
|
|
108
|
+
|
|
109
|
+
return _super.call(this, _objectSpread__default['default'](_objectSpread__default['default']({}, opts), {}, {
|
|
110
|
+
routes: _objectSpread__default['default']({
|
|
111
|
+
index: 'medias',
|
|
112
|
+
tags: 'medias/tags',
|
|
113
|
+
show: 'medias/:media',
|
|
114
|
+
store: 'medias',
|
|
115
|
+
update: 'medias/:media',
|
|
116
|
+
"delete": 'medias/:media'
|
|
117
|
+
}, opts.routes || null)
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
_createClass__default['default'](MediasApi, [{
|
|
122
|
+
key: "find",
|
|
123
|
+
value: function find(id) {
|
|
124
|
+
return this.requestGet(this.route('show', {
|
|
125
|
+
media: id
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
}, {
|
|
129
|
+
key: "get",
|
|
130
|
+
value: function get() {
|
|
131
|
+
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
132
|
+
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
133
|
+
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
134
|
+
|
|
135
|
+
var finalQuery = _objectSpread__default['default']({}, query);
|
|
136
|
+
|
|
137
|
+
if (page !== null) {
|
|
138
|
+
finalQuery.page = page;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (count !== null) {
|
|
142
|
+
finalQuery.count = count;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return this.requestGet(this.route('index'), finalQuery);
|
|
146
|
+
}
|
|
147
|
+
}, {
|
|
148
|
+
key: "getTags",
|
|
149
|
+
value: function getTags() {
|
|
150
|
+
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
151
|
+
var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
|
|
152
|
+
|
|
153
|
+
var finalQuery = _objectSpread__default['default']({}, query);
|
|
154
|
+
|
|
155
|
+
if (count !== null) {
|
|
156
|
+
finalQuery.count = count;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return this.requestGet(this.route('tags'), finalQuery);
|
|
160
|
+
}
|
|
161
|
+
}, {
|
|
162
|
+
key: "create",
|
|
163
|
+
value: function create(data) {
|
|
164
|
+
return this.requestPost(this.route('store'), data);
|
|
165
|
+
}
|
|
166
|
+
}, {
|
|
167
|
+
key: "update",
|
|
168
|
+
value: function update(id, data) {
|
|
169
|
+
return this.requestPut(this.route('update', {
|
|
170
|
+
media: id
|
|
171
|
+
}), data);
|
|
172
|
+
}
|
|
173
|
+
}, {
|
|
174
|
+
key: "delete",
|
|
175
|
+
value: function _delete(id) {
|
|
176
|
+
return this.requestDelete(this.route('delete', {
|
|
177
|
+
media: id
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
}]);
|
|
181
|
+
|
|
182
|
+
return MediasApi;
|
|
183
|
+
}(Base);
|
|
184
|
+
|
|
185
|
+
var ContributionsApi = /*#__PURE__*/function (_Base) {
|
|
186
|
+
_inherits__default['default'](ContributionsApi, _Base);
|
|
187
|
+
|
|
188
|
+
var _super = _createSuper__default['default'](ContributionsApi);
|
|
189
|
+
|
|
190
|
+
function ContributionsApi() {
|
|
191
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
192
|
+
|
|
193
|
+
_classCallCheck__default['default'](this, ContributionsApi);
|
|
194
|
+
|
|
195
|
+
return _super.call(this, _objectSpread__default['default'](_objectSpread__default['default']({}, opts), {}, {
|
|
196
|
+
routes: _objectSpread__default['default']({
|
|
197
|
+
index: '/contributions/:screen',
|
|
198
|
+
store: '/contributions',
|
|
199
|
+
update: '/contributions/:contribution',
|
|
200
|
+
"delete": '/contributions/:contribution'
|
|
201
|
+
}, opts.routes || null)
|
|
202
|
+
}));
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
_createClass__default['default'](ContributionsApi, [{
|
|
206
|
+
key: "get",
|
|
207
|
+
value: function get(id) {
|
|
208
|
+
var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
209
|
+
var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
210
|
+
var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;
|
|
211
|
+
|
|
212
|
+
var finalQuery = _objectSpread__default['default']({}, query);
|
|
213
|
+
|
|
214
|
+
if (page !== null) {
|
|
215
|
+
finalQuery.page = page;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (count !== null) {
|
|
219
|
+
finalQuery.count = count;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return this.requestGet(this.route('index', {
|
|
223
|
+
screen: id
|
|
224
|
+
}), finalQuery);
|
|
225
|
+
}
|
|
226
|
+
}, {
|
|
227
|
+
key: "create",
|
|
228
|
+
value: function create(data) {
|
|
229
|
+
return this.requestPost(this.route('store'), data);
|
|
230
|
+
}
|
|
231
|
+
}]);
|
|
232
|
+
|
|
233
|
+
return ContributionsApi;
|
|
234
|
+
}(Base);
|
|
235
|
+
|
|
236
|
+
var QuizApi = /*#__PURE__*/function (_Base) {
|
|
237
|
+
_inherits__default['default'](QuizApi, _Base);
|
|
238
|
+
|
|
239
|
+
var _super = _createSuper__default['default'](QuizApi);
|
|
240
|
+
|
|
241
|
+
function QuizApi() {
|
|
242
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
243
|
+
|
|
244
|
+
_classCallCheck__default['default'](this, QuizApi);
|
|
245
|
+
|
|
246
|
+
return _super.call(this, _objectSpread__default['default'](_objectSpread__default['default']({}, opts), {}, {
|
|
247
|
+
routes: _objectSpread__default['default']({
|
|
248
|
+
results: '/quiz/:screen',
|
|
249
|
+
store: '/quiz',
|
|
250
|
+
update: '/quiz/:quiz',
|
|
251
|
+
"delete": '/quiz/:quiz'
|
|
252
|
+
}, opts.routes || null)
|
|
253
|
+
}));
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
_createClass__default['default'](QuizApi, [{
|
|
257
|
+
key: "results",
|
|
258
|
+
value: function results(screenId) {
|
|
259
|
+
return this.requestGet(this.route('results', {
|
|
260
|
+
screen: screenId
|
|
261
|
+
}));
|
|
262
|
+
}
|
|
263
|
+
}, {
|
|
264
|
+
key: "create",
|
|
265
|
+
value: function create(data) {
|
|
266
|
+
return this.requestPost(this.route('store'), data);
|
|
267
|
+
}
|
|
268
|
+
}]);
|
|
269
|
+
|
|
270
|
+
return QuizApi;
|
|
271
|
+
}(Base);
|
|
272
|
+
|
|
273
|
+
var Api = /*#__PURE__*/function (_Base) {
|
|
274
|
+
_inherits__default['default'](Api, _Base);
|
|
275
|
+
|
|
276
|
+
var _super = _createSuper__default['default'](Api);
|
|
277
|
+
|
|
278
|
+
function Api() {
|
|
279
|
+
var _this;
|
|
280
|
+
|
|
281
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
282
|
+
|
|
283
|
+
_classCallCheck__default['default'](this, Api);
|
|
284
|
+
|
|
285
|
+
_this = _super.call(this, opts);
|
|
286
|
+
_this.medias = new MediasApi(opts);
|
|
287
|
+
_this.contributions = new ContributionsApi(opts);
|
|
288
|
+
_this.quiz = new QuizApi(opts);
|
|
289
|
+
return _this;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
return Api;
|
|
293
|
+
}(Base);
|
|
294
|
+
|
|
295
|
+
/* eslint-disable react/jsx-props-no-spreading */
|
|
296
|
+
var ApiContext = /*#__PURE__*/React__default['default'].createContext(null);
|
|
297
|
+
var useApi = function useApi() {
|
|
298
|
+
return React.useContext(ApiContext);
|
|
299
|
+
};
|
|
300
|
+
var propTypes$1 = {
|
|
301
|
+
api: PropTypes__default['default'].instanceOf(Api),
|
|
302
|
+
baseUrl: PropTypes__default['default'].string,
|
|
303
|
+
children: PropTypes__default['default'].node.isRequired
|
|
304
|
+
};
|
|
305
|
+
var defaultProps$1 = {
|
|
306
|
+
api: null,
|
|
307
|
+
baseUrl: undefined
|
|
308
|
+
};
|
|
309
|
+
var ApiProvider = function ApiProvider(_ref) {
|
|
310
|
+
var initialApi = _ref.api,
|
|
311
|
+
baseUrl = _ref.baseUrl,
|
|
312
|
+
children = _ref.children;
|
|
313
|
+
var previousApi = useApi();
|
|
314
|
+
var api = React.useMemo(function () {
|
|
315
|
+
return initialApi || previousApi || new Api({
|
|
316
|
+
baseUrl: baseUrl // baseUrl: 'https://micromag.studio.homestead.flklr.ca/api',
|
|
317
|
+
|
|
318
|
+
});
|
|
319
|
+
}, [previousApi, initialApi, baseUrl]);
|
|
320
|
+
return /*#__PURE__*/React__default['default'].createElement(ApiContext.Provider, {
|
|
321
|
+
value: api
|
|
322
|
+
}, children);
|
|
323
|
+
};
|
|
324
|
+
ApiProvider.propTypes = propTypes$1;
|
|
325
|
+
ApiProvider.defaultProps = defaultProps$1;
|
|
326
|
+
|
|
327
|
+
var useData = function useData(loadData) {
|
|
328
|
+
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
329
|
+
_ref$initialData = _ref.initialData,
|
|
330
|
+
initialData = _ref$initialData === void 0 ? null : _ref$initialData,
|
|
331
|
+
_ref$autoload = _ref.autoload,
|
|
332
|
+
autoload = _ref$autoload === void 0 ? true : _ref$autoload;
|
|
333
|
+
|
|
334
|
+
var _useState = React.useState(false),
|
|
335
|
+
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
|
336
|
+
loading = _useState2[0],
|
|
337
|
+
setLoading = _useState2[1];
|
|
338
|
+
|
|
339
|
+
var _useState3 = React.useState(false),
|
|
340
|
+
_useState4 = _slicedToArray__default['default'](_useState3, 2),
|
|
341
|
+
error = _useState4[0],
|
|
342
|
+
setError = _useState4[1];
|
|
343
|
+
|
|
344
|
+
var _useState5 = React.useState(initialData),
|
|
345
|
+
_useState6 = _slicedToArray__default['default'](_useState5, 2),
|
|
346
|
+
data = _useState6[0],
|
|
347
|
+
setData = _useState6[1];
|
|
348
|
+
|
|
349
|
+
var load = React.useCallback(function () {
|
|
350
|
+
var canceled = false;
|
|
351
|
+
setLoading(true);
|
|
352
|
+
var promise = loadData.apply(void 0, arguments).then(function (newData) {
|
|
353
|
+
if (!canceled) {
|
|
354
|
+
setData(newData);
|
|
355
|
+
setLoading(false);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
return newData;
|
|
359
|
+
})["catch"](function (newError) {
|
|
360
|
+
setError(newError);
|
|
361
|
+
setLoading(false);
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
promise.cancel = function () {
|
|
365
|
+
canceled = true;
|
|
366
|
+
setLoading(false);
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
return promise;
|
|
370
|
+
}, [loadData, setLoading, setData]);
|
|
371
|
+
React.useEffect(function () {
|
|
372
|
+
var loader = null;
|
|
373
|
+
|
|
374
|
+
if (autoload) {
|
|
375
|
+
loader = load();
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
return function () {
|
|
379
|
+
if (loader !== null) {
|
|
380
|
+
loader.cancel();
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
}, [autoload, load]);
|
|
384
|
+
return {
|
|
385
|
+
data: data,
|
|
386
|
+
load: load,
|
|
387
|
+
loading: loading,
|
|
388
|
+
error: error
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
|
|
392
|
+
var useContributions = function useContributions() {
|
|
393
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
394
|
+
screenId = _ref.screenId,
|
|
395
|
+
_ref$opts = _ref.opts,
|
|
396
|
+
opts = _ref$opts === void 0 ? {} : _ref$opts;
|
|
397
|
+
|
|
398
|
+
var api = useApi();
|
|
399
|
+
|
|
400
|
+
var _useState = React.useState(_toConsumableArray__default['default'](new Array(10)).map(function (el, i) {
|
|
401
|
+
return {
|
|
402
|
+
name: "Nom ".concat(i + 1),
|
|
403
|
+
message: "Message ".concat(i + 1)
|
|
404
|
+
};
|
|
405
|
+
})),
|
|
406
|
+
_useState2 = _slicedToArray__default['default'](_useState, 1),
|
|
407
|
+
defaultContributions = _useState2[0];
|
|
408
|
+
|
|
409
|
+
var loader = React.useCallback(function () {
|
|
410
|
+
return api !== null ? api.contributions.get(screenId) : null;
|
|
411
|
+
}, [api, screenId]);
|
|
412
|
+
|
|
413
|
+
var _ref2 = api !== null ? useData(loader, opts) : {
|
|
414
|
+
data: null
|
|
415
|
+
},
|
|
416
|
+
data = _ref2.data,
|
|
417
|
+
request = _objectWithoutProperties__default['default'](_ref2, ["data"]);
|
|
418
|
+
|
|
419
|
+
return _objectSpread__default['default']({
|
|
420
|
+
contributions: data || defaultContributions
|
|
421
|
+
}, request);
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
var useContributionCreate = function useContributionCreate() {
|
|
425
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
426
|
+
screenId = _ref.screenId,
|
|
427
|
+
_ref$onSuccess = _ref.onSuccess,
|
|
428
|
+
onSuccess = _ref$onSuccess === void 0 ? null : _ref$onSuccess;
|
|
429
|
+
|
|
430
|
+
var api = useApi();
|
|
431
|
+
|
|
432
|
+
var _useState = React.useState(false),
|
|
433
|
+
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
|
434
|
+
creating = _useState2[0],
|
|
435
|
+
setCreating = _useState2[1];
|
|
436
|
+
|
|
437
|
+
var create = React.useCallback(function (data) {
|
|
438
|
+
if (api === null) {
|
|
439
|
+
return null;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
setCreating(true);
|
|
443
|
+
return api.contributions.create(_objectSpread__default['default']({
|
|
444
|
+
screen_id: screenId
|
|
445
|
+
}, data)).then(function (response) {
|
|
446
|
+
setCreating(false);
|
|
447
|
+
|
|
448
|
+
if (onSuccess !== null) {
|
|
449
|
+
onSuccess(response);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
return response;
|
|
453
|
+
});
|
|
454
|
+
}, [api, setCreating, onSuccess, screenId]);
|
|
455
|
+
return {
|
|
456
|
+
create: create,
|
|
457
|
+
creating: creating
|
|
458
|
+
};
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
var useItems = function useItems(_ref) {
|
|
462
|
+
var _ref$getPage = _ref.getPage,
|
|
463
|
+
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
464
|
+
_ref$getItems = _ref.getItems,
|
|
465
|
+
getItems = _ref$getItems === void 0 ? null : _ref$getItems,
|
|
466
|
+
_ref$page = _ref.page,
|
|
467
|
+
page = _ref$page === void 0 ? null : _ref$page,
|
|
468
|
+
_ref$count = _ref.count,
|
|
469
|
+
count = _ref$count === void 0 ? 10 : _ref$count,
|
|
470
|
+
_ref$items = _ref.items,
|
|
471
|
+
providedItems = _ref$items === void 0 ? null : _ref$items,
|
|
472
|
+
_ref$pages = _ref.pages,
|
|
473
|
+
initialPages = _ref$pages === void 0 ? null : _ref$pages,
|
|
474
|
+
_ref$getPageFromRespo = _ref.getPageFromResponse,
|
|
475
|
+
getPageFromResponse = _ref$getPageFromRespo === void 0 ? function (_ref2) {
|
|
476
|
+
var _ref2$meta = _ref2.meta,
|
|
477
|
+
currentPage = _ref2$meta.current_page,
|
|
478
|
+
lastPage = _ref2$meta.last_page,
|
|
479
|
+
total = _ref2$meta.total,
|
|
480
|
+
items = _ref2.data;
|
|
481
|
+
return {
|
|
482
|
+
page: parseInt(currentPage, 10),
|
|
483
|
+
lastPage: parseInt(lastPage, 10),
|
|
484
|
+
total: parseInt(total, 10),
|
|
485
|
+
items: items
|
|
486
|
+
};
|
|
487
|
+
} : _ref$getPageFromRespo,
|
|
488
|
+
_ref$getItemsFromResp = _ref.getItemsFromResponse,
|
|
489
|
+
getItemsFromResponse = _ref$getItemsFromResp === void 0 ? function (data) {
|
|
490
|
+
return data;
|
|
491
|
+
} : _ref$getItemsFromResp,
|
|
492
|
+
_ref$onItemsLoaded = _ref.onItemsLoaded,
|
|
493
|
+
onItemsLoaded = _ref$onItemsLoaded === void 0 ? null : _ref$onItemsLoaded,
|
|
494
|
+
_ref$onPageLoaded = _ref.onPageLoaded,
|
|
495
|
+
onPageLoaded = _ref$onPageLoaded === void 0 ? null : _ref$onPageLoaded,
|
|
496
|
+
_ref$onLoaded = _ref.onLoaded,
|
|
497
|
+
onLoaded = _ref$onLoaded === void 0 ? null : _ref$onLoaded,
|
|
498
|
+
_ref$onError = _ref.onError,
|
|
499
|
+
onError = _ref$onError === void 0 ? null : _ref$onError;
|
|
500
|
+
var isPaginated = getPage !== null || initialPages !== null;
|
|
501
|
+
var lastState = React.useRef(null);
|
|
502
|
+
var initialState = React.useMemo(function () {
|
|
503
|
+
var finalInitialPages = initialPages !== null ? initialPages.map(function (it) {
|
|
504
|
+
return getPageFromResponse(it);
|
|
505
|
+
}) : null;
|
|
506
|
+
return {
|
|
507
|
+
lastPage: finalInitialPages !== null ? finalInitialPages.reduce(function (currentLastPage, _ref3) {
|
|
508
|
+
var initialLastPage = _ref3.lastPage;
|
|
509
|
+
return initialLastPage > currentLastPage ? initialLastPage : currentLastPage;
|
|
510
|
+
}, -1) : -1,
|
|
511
|
+
total: finalInitialPages !== null ? finalInitialPages[0].total : (providedItems || []).length,
|
|
512
|
+
loaded: providedItems !== null,
|
|
513
|
+
loading: false,
|
|
514
|
+
pages: finalInitialPages !== null ? finalInitialPages : null,
|
|
515
|
+
items: null
|
|
516
|
+
};
|
|
517
|
+
}, [initialPages, providedItems]);
|
|
518
|
+
|
|
519
|
+
var _useState = React.useState(initialState),
|
|
520
|
+
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
|
521
|
+
state = _useState2[0],
|
|
522
|
+
setState = _useState2[1];
|
|
523
|
+
|
|
524
|
+
var lastPage = state.lastPage,
|
|
525
|
+
loaded = state.loaded,
|
|
526
|
+
loading = state.loading,
|
|
527
|
+
stateItems = state.items,
|
|
528
|
+
pages = state.pages,
|
|
529
|
+
total = state.total;
|
|
530
|
+
var items = providedItems || (isPaginated && pages !== null ? pages.reduce(function (pagesItems, _ref4) {
|
|
531
|
+
var pageItems = _ref4.items;
|
|
532
|
+
return pagesItems.concat(pageItems);
|
|
533
|
+
}, []) : stateItems) || null;
|
|
534
|
+
|
|
535
|
+
var updateState = function updateState(update) {
|
|
536
|
+
return setState(_objectSpread__default['default'](_objectSpread__default['default']({}, state), update));
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
var updateFromResponse = function updateFromResponse(response) {
|
|
540
|
+
var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
541
|
+
var reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
542
|
+
|
|
543
|
+
if (error !== null) {
|
|
544
|
+
updateState({
|
|
545
|
+
loaded: false,
|
|
546
|
+
loading: false
|
|
547
|
+
});
|
|
548
|
+
throw error;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
if (isPaginated) {
|
|
552
|
+
var newPage = getPageFromResponse(response);
|
|
553
|
+
var newPages = (reset ? [newPage] : [].concat(_toConsumableArray__default['default']((pages || []).filter(function (it) {
|
|
554
|
+
return it.page !== newPage.page;
|
|
555
|
+
})), [newPage])).sort(function (a, b) {
|
|
556
|
+
if (a === b) {
|
|
557
|
+
return 0;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
return a > b ? 1 : -1;
|
|
561
|
+
});
|
|
562
|
+
updateState({
|
|
563
|
+
loaded: true,
|
|
564
|
+
loading: false,
|
|
565
|
+
lastPage: newPage.lastPage,
|
|
566
|
+
total: newPage.total,
|
|
567
|
+
pages: newPages
|
|
568
|
+
});
|
|
569
|
+
return newPage;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
var newItems = _toConsumableArray__default['default'](getItemsFromResponse(response));
|
|
573
|
+
|
|
574
|
+
updateState({
|
|
575
|
+
loaded: true,
|
|
576
|
+
loading: false,
|
|
577
|
+
items: newItems,
|
|
578
|
+
total: newItems.length
|
|
579
|
+
});
|
|
580
|
+
return newItems;
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
var getNextPage = function getNextPage() {
|
|
584
|
+
var allPages = lastPage !== -1 ? Array.call.apply(Array, [null].concat(_toConsumableArray__default['default'](Array(lastPage)))).map(function (it, index) {
|
|
585
|
+
return index + 1;
|
|
586
|
+
}) : [];
|
|
587
|
+
var remainingPages = allPages.filter(function (pageNumber) {
|
|
588
|
+
return pages.findIndex(function (it) {
|
|
589
|
+
return it.page === pageNumber;
|
|
590
|
+
}) === -1;
|
|
591
|
+
});
|
|
592
|
+
var firstItem = remainingPages.length > 0 ? remainingPages.shift() : null;
|
|
593
|
+
return firstItem !== null ? firstItem : null;
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
var loadItems = function loadItems(requestPage) {
|
|
597
|
+
updateState({
|
|
598
|
+
loading: true
|
|
599
|
+
});
|
|
600
|
+
var canceled = false;
|
|
601
|
+
var request = isPaginated ? getPage(requestPage, count) : getItems();
|
|
602
|
+
var promise = request.then(function (response) {
|
|
603
|
+
return !canceled ? updateFromResponse(response) : Promise.reject();
|
|
604
|
+
})["catch"](function (error) {
|
|
605
|
+
return !canceled ? updateFromResponse(null, error) : Promise.reject();
|
|
606
|
+
}).then(function (response) {
|
|
607
|
+
if (isPaginated && onPageLoaded !== null) {
|
|
608
|
+
onPageLoaded(response);
|
|
609
|
+
} else if (!isPaginated && onItemsLoaded !== null) {
|
|
610
|
+
onItemsLoaded(response);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
if (onLoaded !== null) {
|
|
614
|
+
onLoaded(response);
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
return response;
|
|
618
|
+
})["catch"](function (error) {
|
|
619
|
+
if (!canceled && onError !== null) {
|
|
620
|
+
onError(error);
|
|
621
|
+
}
|
|
622
|
+
});
|
|
623
|
+
|
|
624
|
+
promise.cancel = function () {
|
|
625
|
+
canceled = true;
|
|
626
|
+
};
|
|
627
|
+
|
|
628
|
+
return promise;
|
|
629
|
+
};
|
|
630
|
+
|
|
631
|
+
var loadPage = function loadPage(pageToLoad) {
|
|
632
|
+
if (loading) {
|
|
633
|
+
return Promise.reject();
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
if (pages.find(function (it) {
|
|
637
|
+
return it.page === pageToLoad;
|
|
638
|
+
}) !== -1) {
|
|
639
|
+
return Promise.reject();
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
return loadItems(pageToLoad);
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
var loadNextPage = function loadNextPage() {
|
|
646
|
+
if (loading) {
|
|
647
|
+
return Promise.reject();
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
var nextPage = getNextPage();
|
|
651
|
+
return nextPage !== null ? loadItems(nextPage) : Promise.resolve();
|
|
652
|
+
};
|
|
653
|
+
|
|
654
|
+
React.useEffect(function () {
|
|
655
|
+
var hadState = lastState.current !== null;
|
|
656
|
+
lastState.current = initialState;
|
|
657
|
+
|
|
658
|
+
if (hadState) {
|
|
659
|
+
setState(initialState);
|
|
660
|
+
}
|
|
661
|
+
}, [initialState]);
|
|
662
|
+
React.useEffect(function () {
|
|
663
|
+
if (getPage === null && getItems === null || providedItems !== null) {
|
|
664
|
+
return function () {};
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
var loadPromise = null;
|
|
668
|
+
var pageToLoad = isPaginated && initialPages === null && page === null ? 1 : page;
|
|
669
|
+
|
|
670
|
+
if (!isPaginated || pageToLoad !== null) {
|
|
671
|
+
loadPromise = loadItems(pageToLoad);
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
return function () {
|
|
675
|
+
if (loadPromise !== null) {
|
|
676
|
+
loadPromise.cancel();
|
|
677
|
+
}
|
|
678
|
+
};
|
|
679
|
+
}, [getPage, getItems, page]);
|
|
680
|
+
var currentPage = isPaginated && pages !== null ? pages.find(function (_ref5) {
|
|
681
|
+
var pageNumber = _ref5.page;
|
|
682
|
+
return parseInt(pageNumber, 10) === parseInt(page, 10);
|
|
683
|
+
}) || null : null;
|
|
684
|
+
return {
|
|
685
|
+
items: items,
|
|
686
|
+
pages: pages,
|
|
687
|
+
pageItems: currentPage !== null ? currentPage.items : null,
|
|
688
|
+
total: total,
|
|
689
|
+
lastPage: lastPage,
|
|
690
|
+
loaded: loaded,
|
|
691
|
+
allLoaded: !isPaginated && loaded || lastPage !== -1 && isPaginated && pages.length === lastPage,
|
|
692
|
+
loading: loading,
|
|
693
|
+
loadNextPage: loadNextPage,
|
|
694
|
+
loadPage: loadPage
|
|
695
|
+
};
|
|
696
|
+
};
|
|
697
|
+
|
|
698
|
+
var useMedias = function useMedias() {
|
|
699
|
+
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
700
|
+
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
701
|
+
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
702
|
+
var opts = arguments.length > 3 ? arguments[3] : undefined;
|
|
703
|
+
var api = useApi();
|
|
704
|
+
var getItems = React.useCallback(function () {
|
|
705
|
+
var requestedPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
706
|
+
return api.medias.get(query, requestedPage, count);
|
|
707
|
+
}, [api, query, count]);
|
|
708
|
+
|
|
709
|
+
var _useItems = useItems(_objectSpread__default['default']({
|
|
710
|
+
getPage: page !== null ? getItems : null,
|
|
711
|
+
getItems: page === null ? getItems : null,
|
|
712
|
+
page: page
|
|
713
|
+
}, opts)),
|
|
714
|
+
items = _useItems.items,
|
|
715
|
+
pageItems = _useItems.pageItems,
|
|
716
|
+
request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]); // console.log('medias', items);
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
return _objectSpread__default['default']({
|
|
720
|
+
medias: page !== null ? pageItems : items,
|
|
721
|
+
allMedias: items
|
|
722
|
+
}, request);
|
|
723
|
+
};
|
|
724
|
+
|
|
725
|
+
var useMediasRecent = function useMediasRecent(opts) {
|
|
726
|
+
var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'media-gallery-recent-searches';
|
|
727
|
+
var createSearch = React.useCallback(function (value) {
|
|
728
|
+
if (window !== undefined && value) {
|
|
729
|
+
var recent = window.localStorage.getItem(key) || null;
|
|
730
|
+
var current = recent !== null ? JSON.parse(recent || '[]') : [];
|
|
731
|
+
var encoded = JSON.stringify([value].concat(_toConsumableArray__default['default'](current)));
|
|
732
|
+
window.localStorage.setItem(key, encoded);
|
|
733
|
+
return true;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
return false;
|
|
737
|
+
}, [key]);
|
|
738
|
+
var getSearches = React.useCallback(function () {
|
|
739
|
+
var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;
|
|
740
|
+
|
|
741
|
+
if (window !== undefined) {
|
|
742
|
+
var recent = window.localStorage.getItem(key) || null;
|
|
743
|
+
var current = recent !== null ? JSON.parse(recent || '[]') : [];
|
|
744
|
+
return current.slice(0, count);
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
return [];
|
|
748
|
+
}, [key]);
|
|
749
|
+
return {
|
|
750
|
+
createSearch: createSearch,
|
|
751
|
+
getSearches: getSearches
|
|
752
|
+
};
|
|
753
|
+
};
|
|
754
|
+
|
|
755
|
+
var useMedia = function useMedia(id, opts) {
|
|
756
|
+
var api = useApi();
|
|
757
|
+
var loader = React.useCallback(function () {
|
|
758
|
+
return api.medias.find(id);
|
|
759
|
+
}, [api, id]);
|
|
760
|
+
|
|
761
|
+
var _useData = useData(loader, opts),
|
|
762
|
+
data = _useData.data,
|
|
763
|
+
request = _objectWithoutProperties__default['default'](_useData, ["data"]);
|
|
764
|
+
|
|
765
|
+
return _objectSpread__default['default']({
|
|
766
|
+
story: data
|
|
767
|
+
}, request);
|
|
768
|
+
};
|
|
769
|
+
|
|
770
|
+
var useMediaCreate = function useMediaCreate() {
|
|
771
|
+
var _useState = React.useState(false),
|
|
772
|
+
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
|
773
|
+
creating = _useState2[0],
|
|
774
|
+
setCreating = _useState2[1];
|
|
775
|
+
|
|
776
|
+
var api = useApi();
|
|
777
|
+
var create = React.useCallback(function (data) {
|
|
778
|
+
setCreating(true);
|
|
779
|
+
return api.medias.create(data).then(function (response) {
|
|
780
|
+
setCreating(false);
|
|
781
|
+
return response;
|
|
782
|
+
});
|
|
783
|
+
}, [api, setCreating]);
|
|
784
|
+
return {
|
|
785
|
+
create: create,
|
|
786
|
+
creating: creating
|
|
787
|
+
};
|
|
788
|
+
};
|
|
789
|
+
|
|
790
|
+
var useMediaTags = function useMediaTags() {
|
|
791
|
+
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
792
|
+
var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
|
|
793
|
+
var opts = arguments.length > 2 ? arguments[2] : undefined;
|
|
794
|
+
var api = useApi();
|
|
795
|
+
var getItems = React.useCallback(function () {
|
|
796
|
+
return api.medias.getTags(query, count);
|
|
797
|
+
}, [api, query, count]);
|
|
798
|
+
|
|
799
|
+
var _useItems = useItems(_objectSpread__default['default']({
|
|
800
|
+
getItems: getItems
|
|
801
|
+
}, opts)),
|
|
802
|
+
items = _useItems.items,
|
|
803
|
+
request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]);
|
|
804
|
+
|
|
805
|
+
return _objectSpread__default['default']({
|
|
806
|
+
tags: items
|
|
807
|
+
}, request);
|
|
808
|
+
};
|
|
809
|
+
|
|
810
|
+
var useMediaUpdate = function useMediaUpdate() {
|
|
811
|
+
var _useState = React.useState(false),
|
|
812
|
+
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
|
813
|
+
updating = _useState2[0],
|
|
814
|
+
setUpdating = _useState2[1];
|
|
815
|
+
|
|
816
|
+
var api = useApi();
|
|
817
|
+
var update = React.useCallback(function (id, data) {
|
|
818
|
+
setUpdating(true);
|
|
819
|
+
return api.medias.update(id, data).then(function (response) {
|
|
820
|
+
setUpdating(false);
|
|
821
|
+
return response;
|
|
822
|
+
});
|
|
823
|
+
}, [api, setUpdating]);
|
|
824
|
+
return {
|
|
825
|
+
update: update,
|
|
826
|
+
updating: updating
|
|
827
|
+
};
|
|
828
|
+
};
|
|
829
|
+
|
|
830
|
+
var useQuiz = function useQuiz() {
|
|
831
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
832
|
+
screenId = _ref.screenId,
|
|
833
|
+
_ref$opts = _ref.opts,
|
|
834
|
+
opts = _ref$opts === void 0 ? {} : _ref$opts;
|
|
835
|
+
|
|
836
|
+
var api = useApi();
|
|
837
|
+
var loader = React.useCallback(function () {
|
|
838
|
+
return api !== null ? api.quiz.results(screenId) : null;
|
|
839
|
+
}, [api, screenId]);
|
|
840
|
+
|
|
841
|
+
var _ref2 = api !== null ? useData(loader, opts) : {
|
|
842
|
+
data: null
|
|
843
|
+
},
|
|
844
|
+
data = _ref2.data,
|
|
845
|
+
request = _objectWithoutProperties__default['default'](_ref2, ["data"]);
|
|
846
|
+
|
|
847
|
+
return _objectSpread__default['default']({
|
|
848
|
+
quiz: data || []
|
|
849
|
+
}, request);
|
|
850
|
+
};
|
|
851
|
+
|
|
852
|
+
var useQuizCreate = function useQuizCreate() {
|
|
853
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
854
|
+
screenId = _ref.screenId,
|
|
855
|
+
_ref$onSuccess = _ref.onSuccess,
|
|
856
|
+
onSuccess = _ref$onSuccess === void 0 ? null : _ref$onSuccess;
|
|
857
|
+
|
|
858
|
+
var api = useApi();
|
|
859
|
+
|
|
860
|
+
var _useState = React.useState(false),
|
|
861
|
+
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
|
862
|
+
creating = _useState2[0],
|
|
863
|
+
setCreating = _useState2[1];
|
|
864
|
+
|
|
865
|
+
var create = React.useCallback(function (data) {
|
|
866
|
+
if (api === null) {
|
|
867
|
+
return null;
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
setCreating(true);
|
|
871
|
+
return api.quiz.create(_objectSpread__default['default']({
|
|
872
|
+
screen_id: screenId
|
|
873
|
+
}, data)).then(function (response) {
|
|
874
|
+
setCreating(false);
|
|
875
|
+
|
|
876
|
+
if (onSuccess !== null) {
|
|
877
|
+
onSuccess(response);
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
return response;
|
|
881
|
+
});
|
|
882
|
+
}, [api, setCreating, onSuccess, screenId]);
|
|
883
|
+
return {
|
|
884
|
+
create: create,
|
|
885
|
+
creating: creating
|
|
886
|
+
};
|
|
887
|
+
};
|
|
888
|
+
|
|
889
|
+
/* eslint-disable react/jsx-props-no-spreading */
|
|
890
|
+
var propTypes = {
|
|
891
|
+
api: PropTypes__default['default'].instanceOf(Api),
|
|
892
|
+
apiBaseUrl: PropTypes__default['default'].string,
|
|
893
|
+
children: PropTypes__default['default'].node
|
|
894
|
+
};
|
|
895
|
+
var defaultProps = {
|
|
896
|
+
api: null,
|
|
897
|
+
apiBaseUrl: undefined,
|
|
898
|
+
children: null
|
|
899
|
+
};
|
|
900
|
+
|
|
901
|
+
var DataProvider = function DataProvider(_ref) {
|
|
902
|
+
var api = _ref.api,
|
|
903
|
+
apiBaseUrl = _ref.apiBaseUrl,
|
|
904
|
+
children = _ref.children;
|
|
905
|
+
return /*#__PURE__*/React__default['default'].createElement(ApiProvider, {
|
|
906
|
+
api: api,
|
|
907
|
+
baseUrl: apiBaseUrl
|
|
908
|
+
}, children);
|
|
909
|
+
};
|
|
910
|
+
|
|
911
|
+
DataProvider.propTypes = propTypes;
|
|
912
|
+
DataProvider.defaultProps = defaultProps;
|
|
913
|
+
|
|
914
|
+
exports.Api = Api;
|
|
915
|
+
exports.ApiProvider = ApiProvider;
|
|
916
|
+
exports.BaseApi = Base;
|
|
917
|
+
exports.DataProvider = DataProvider;
|
|
918
|
+
exports.useApi = useApi;
|
|
919
|
+
exports.useContributionCreate = useContributionCreate;
|
|
920
|
+
exports.useContributions = useContributions;
|
|
921
|
+
exports.useData = useData;
|
|
922
|
+
exports.useItems = useItems;
|
|
923
|
+
exports.useMedia = useMedia;
|
|
924
|
+
exports.useMediaCreate = useMediaCreate;
|
|
925
|
+
exports.useMediaTags = useMediaTags;
|
|
926
|
+
exports.useMediaUpdate = useMediaUpdate;
|
|
927
|
+
exports.useMedias = useMedias;
|
|
928
|
+
exports.useMediasRecentSearches = useMediasRecent;
|
|
929
|
+
exports.useQuiz = useQuiz;
|
|
930
|
+
exports.useQuizCreate = useQuizCreate;
|