@prezly/theme-kit-nextjs 1.6.3 → 1.6.4-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/build/components-nextjs/PageSeo/PageSeo.d.ts +12 -0
- package/build/components-nextjs/PageSeo/PageSeo.js +89 -0
- package/build/components-nextjs/PageSeo/PageSeo.js.map +1 -0
- package/build/components-nextjs/PageSeo/index.d.ts +2 -0
- package/build/components-nextjs/PageSeo/index.js +17 -0
- package/build/components-nextjs/PageSeo/index.js.map +1 -0
- package/build/components-nextjs/PageSeo/lib/getAbsoluteUrl.d.ts +1 -0
- package/build/components-nextjs/PageSeo/lib/getAbsoluteUrl.js +11 -0
- package/build/components-nextjs/PageSeo/lib/getAbsoluteUrl.js.map +1 -0
- package/build/components-nextjs/PageSeo/lib/types.d.ts +4 -0
- package/build/components-nextjs/PageSeo/lib/types.js +3 -0
- package/build/components-nextjs/PageSeo/lib/types.js.map +1 -0
- package/build/components-nextjs/Sitemap/SitemapBuilder.d.ts +11 -0
- package/build/components-nextjs/Sitemap/SitemapBuilder.js +51 -0
- package/build/components-nextjs/Sitemap/SitemapBuilder.js.map +1 -0
- package/build/components-nextjs/Sitemap/createPaths.d.ts +2 -0
- package/build/components-nextjs/Sitemap/createPaths.js +50 -0
- package/build/components-nextjs/Sitemap/createPaths.js.map +1 -0
- package/build/components-nextjs/Sitemap/getInitialProps.d.ts +2 -0
- package/build/components-nextjs/Sitemap/getInitialProps.js +78 -0
- package/build/components-nextjs/Sitemap/getInitialProps.js.map +1 -0
- package/build/components-nextjs/Sitemap/index.d.ts +4 -0
- package/build/components-nextjs/Sitemap/index.js +21 -0
- package/build/components-nextjs/Sitemap/index.js.map +1 -0
- package/build/components-nextjs/Sitemap/types.d.ts +5 -0
- package/build/components-nextjs/Sitemap/types.js +3 -0
- package/build/components-nextjs/Sitemap/types.js.map +1 -0
- package/build/components-nextjs/StorySeo/StorySeo.d.ts +11 -0
- package/build/components-nextjs/StorySeo/StorySeo.js +47 -0
- package/build/components-nextjs/StorySeo/StorySeo.js.map +1 -0
- package/build/components-nextjs/StorySeo/index.d.ts +1 -0
- package/build/components-nextjs/StorySeo/index.js +6 -0
- package/build/components-nextjs/StorySeo/index.js.map +1 -0
- package/build/components-nextjs/index.d.ts +3 -0
- package/build/components-nextjs/index.js +19 -0
- package/build/components-nextjs/index.js.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/infinite-loading/apiHandlers/fetchGalleries.d.ts +2 -0
- package/build/infinite-loading/apiHandlers/fetchGalleries.js +73 -0
- package/build/infinite-loading/apiHandlers/fetchGalleries.js.map +1 -0
- package/build/infinite-loading/apiHandlers/fetchStories.d.ts +2 -0
- package/build/infinite-loading/apiHandlers/fetchStories.js +75 -0
- package/build/infinite-loading/apiHandlers/fetchStories.js.map +1 -0
- package/build/infinite-loading/apiHandlers/index.d.ts +2 -0
- package/build/infinite-loading/apiHandlers/index.js +8 -0
- package/build/infinite-loading/apiHandlers/index.js.map +1 -0
- package/build/infinite-loading/index.d.ts +5 -0
- package/build/infinite-loading/index.js +22 -0
- package/build/infinite-loading/index.js.map +1 -0
- package/build/infinite-loading/types.d.ts +5 -0
- package/build/infinite-loading/types.js +3 -0
- package/build/infinite-loading/types.js.map +1 -0
- package/build/infinite-loading/useInfiniteGalleriesLoading.d.ts +13 -0
- package/build/infinite-loading/useInfiniteGalleriesLoading.js +98 -0
- package/build/infinite-loading/useInfiniteGalleriesLoading.js.map +1 -0
- package/build/infinite-loading/useInfiniteLoading.d.ts +16 -0
- package/build/infinite-loading/useInfiniteLoading.js +115 -0
- package/build/infinite-loading/useInfiniteLoading.js.map +1 -0
- package/build/infinite-loading/useInfiniteStoriesLoading.d.ts +13 -0
- package/build/infinite-loading/useInfiniteStoriesLoading.js +116 -0
- package/build/infinite-loading/useInfiniteStoriesLoading.js.map +1 -0
- package/package.json +6 -3
- package/src/components-nextjs/PageSeo/PageSeo.tsx +123 -0
- package/src/components-nextjs/PageSeo/index.ts +2 -0
- package/src/components-nextjs/PageSeo/lib/getAbsoluteUrl.ts +7 -0
- package/src/components-nextjs/PageSeo/lib/types.ts +4 -0
- package/src/components-nextjs/Sitemap/SitemapBuilder.ts +56 -0
- package/src/components-nextjs/Sitemap/createPaths.ts +21 -0
- package/src/components-nextjs/Sitemap/getInitialProps.ts +37 -0
- package/src/components-nextjs/Sitemap/index.ts +5 -0
- package/src/components-nextjs/Sitemap/types.ts +5 -0
- package/src/components-nextjs/StorySeo/StorySeo.tsx +68 -0
- package/src/components-nextjs/StorySeo/index.ts +1 -0
- package/src/components-nextjs/index.ts +3 -0
- package/src/index.ts +2 -0
- package/src/infinite-loading/apiHandlers/fetchGalleries.ts +24 -0
- package/src/infinite-loading/apiHandlers/fetchStories.ts +26 -0
- package/src/infinite-loading/apiHandlers/index.ts +2 -0
- package/src/infinite-loading/index.ts +5 -0
- package/src/infinite-loading/types.ts +5 -0
- package/src/infinite-loading/useInfiniteGalleriesLoading.ts +53 -0
- package/src/infinite-loading/useInfiniteLoading.ts +66 -0
- package/src/infinite-loading/useInfiniteStoriesLoading.ts +81 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.fetchGalleries = void 0;
|
|
40
|
+
var data_fetching_1 = require("../../data-fetching");
|
|
41
|
+
function fetchGalleries(req, res) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var _a, page, pageSize, api, galleries, error_1;
|
|
44
|
+
return __generator(this, function (_b) {
|
|
45
|
+
switch (_b.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
if (req.method !== 'POST') {
|
|
48
|
+
res.status(405);
|
|
49
|
+
return [2 /*return*/];
|
|
50
|
+
}
|
|
51
|
+
_a = req.body, page = _a.page, pageSize = _a.pageSize;
|
|
52
|
+
_b.label = 1;
|
|
53
|
+
case 1:
|
|
54
|
+
_b.trys.push([1, 3, , 4]);
|
|
55
|
+
api = (0, data_fetching_1.getPrezlyApi)(req);
|
|
56
|
+
return [4 /*yield*/, api.getGalleries({ page: page, pageSize: pageSize })];
|
|
57
|
+
case 2:
|
|
58
|
+
galleries = (_b.sent()).galleries;
|
|
59
|
+
res.status(200).json({ galleries: galleries });
|
|
60
|
+
return [3 /*break*/, 4];
|
|
61
|
+
case 3:
|
|
62
|
+
error_1 = _b.sent();
|
|
63
|
+
res.status(500).send({
|
|
64
|
+
message: error_1.message,
|
|
65
|
+
});
|
|
66
|
+
return [3 /*break*/, 4];
|
|
67
|
+
case 4: return [2 /*return*/];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
exports.fetchGalleries = fetchGalleries;
|
|
73
|
+
//# sourceMappingURL=fetchGalleries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchGalleries.js","sourceRoot":"","sources":["../../../src/infinite-loading/apiHandlers/fetchGalleries.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qDAAmD;AAEnD,SAAsB,cAAc,CAAC,GAAmB,EAAE,GAAoB;;;;;;oBAC1E,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;wBACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAChB,sBAAO;qBACV;oBAEK,KAAqB,GAAG,CAAC,IAAI,EAA3B,IAAI,UAAA,EAAE,QAAQ,cAAA,CAAc;;;;oBAG1B,GAAG,GAAG,IAAA,4BAAY,EAAC,GAAG,CAAC,CAAC;oBAER,qBAAM,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAA;;oBAAxD,SAAS,GAAK,CAAA,SAA0C,CAAA,UAA/C;oBAEjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;;;;oBAEpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACjB,OAAO,EAAG,OAAe,CAAC,OAAO;qBACpC,CAAC,CAAC;;;;;;CAEV;AAnBD,wCAmBC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.fetchStories = void 0;
|
|
40
|
+
var data_fetching_1 = require("../../data-fetching");
|
|
41
|
+
function fetchStories(req, res) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var _a, page, pageSize, category, include, localeCode, api, stories, error_1;
|
|
44
|
+
return __generator(this, function (_b) {
|
|
45
|
+
switch (_b.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
if (req.method !== 'POST') {
|
|
48
|
+
res.status(405);
|
|
49
|
+
return [2 /*return*/];
|
|
50
|
+
}
|
|
51
|
+
_a = req.body, page = _a.page, pageSize = _a.pageSize, category = _a.category, include = _a.include, localeCode = _a.localeCode;
|
|
52
|
+
_b.label = 1;
|
|
53
|
+
case 1:
|
|
54
|
+
_b.trys.push([1, 3, , 4]);
|
|
55
|
+
api = (0, data_fetching_1.getPrezlyApi)(req);
|
|
56
|
+
return [4 /*yield*/, (category
|
|
57
|
+
? api.getStoriesFromCategory(category, { page: page, pageSize: pageSize, include: include, localeCode: localeCode })
|
|
58
|
+
: api.getStories({ page: page, pageSize: pageSize, include: include, localeCode: localeCode }))];
|
|
59
|
+
case 2:
|
|
60
|
+
stories = (_b.sent()).stories;
|
|
61
|
+
res.status(200).json({ stories: stories });
|
|
62
|
+
return [3 /*break*/, 4];
|
|
63
|
+
case 3:
|
|
64
|
+
error_1 = _b.sent();
|
|
65
|
+
res.status(500).send({
|
|
66
|
+
message: error_1.message,
|
|
67
|
+
});
|
|
68
|
+
return [3 /*break*/, 4];
|
|
69
|
+
case 4: return [2 /*return*/];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
exports.fetchStories = fetchStories;
|
|
75
|
+
//# sourceMappingURL=fetchStories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchStories.js","sourceRoot":"","sources":["../../../src/infinite-loading/apiHandlers/fetchStories.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qDAAmD;AAEnD,SAAsB,YAAY,CAAC,GAAmB,EAAE,GAAoB;;;;;;oBACxE,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;wBACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAChB,sBAAO;qBACV;oBAEK,KAAoD,GAAG,CAAC,IAAI,EAA1D,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,OAAO,aAAA,EAAE,UAAU,gBAAA,CAAc;;;;oBAGzD,GAAG,GAAG,IAAA,4BAAY,EAAC,GAAG,CAAC,CAAC;oBAEV,qBAAM,CAAC,QAAQ;4BAC/B,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,CAAC;4BAC/E,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,CAAC,CAAC,EAAA;;oBAFtD,OAAO,GAAK,CAAA,SAE0C,CAAA,QAF/C;oBAIf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;;;;oBAElC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACjB,OAAO,EAAG,OAAe,CAAC,OAAO;qBACpC,CAAC,CAAC;;;;;;CAEV;AArBD,oCAqBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchStories = exports.fetchGalleries = void 0;
|
|
4
|
+
var fetchGalleries_1 = require("./fetchGalleries");
|
|
5
|
+
Object.defineProperty(exports, "fetchGalleries", { enumerable: true, get: function () { return fetchGalleries_1.fetchGalleries; } });
|
|
6
|
+
var fetchStories_1 = require("./fetchStories");
|
|
7
|
+
Object.defineProperty(exports, "fetchStories", { enumerable: true, get: function () { return fetchStories_1.fetchStories; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infinite-loading/apiHandlers/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { useInfiniteLoading } from './useInfiniteLoading';
|
|
2
|
+
export { useInfiniteStoriesLoading } from './useInfiniteStoriesLoading';
|
|
3
|
+
export { useInfiniteGalleriesLoading } from './useInfiniteGalleriesLoading';
|
|
4
|
+
export * from './apiHandlers';
|
|
5
|
+
export * from './types';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.useInfiniteGalleriesLoading = exports.useInfiniteStoriesLoading = exports.useInfiniteLoading = void 0;
|
|
14
|
+
var useInfiniteLoading_1 = require("./useInfiniteLoading");
|
|
15
|
+
Object.defineProperty(exports, "useInfiniteLoading", { enumerable: true, get: function () { return useInfiniteLoading_1.useInfiniteLoading; } });
|
|
16
|
+
var useInfiniteStoriesLoading_1 = require("./useInfiniteStoriesLoading");
|
|
17
|
+
Object.defineProperty(exports, "useInfiniteStoriesLoading", { enumerable: true, get: function () { return useInfiniteStoriesLoading_1.useInfiniteStoriesLoading; } });
|
|
18
|
+
var useInfiniteGalleriesLoading_1 = require("./useInfiniteGalleriesLoading");
|
|
19
|
+
Object.defineProperty(exports, "useInfiniteGalleriesLoading", { enumerable: true, get: function () { return useInfiniteGalleriesLoading_1.useInfiniteGalleriesLoading; } });
|
|
20
|
+
__exportStar(require("./apiHandlers"), exports);
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/infinite-loading/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,gDAA8B;AAC9B,0CAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/infinite-loading/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { NewsroomGallery } from '@prezly/sdk';
|
|
2
|
+
import type { PaginationProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* NOTE: This hook depends on the presence of a Next API route (/api/fetch-galleries)!
|
|
5
|
+
* The handler for this route is exported from `apiHandlers/fetchGalleries.ts` file.
|
|
6
|
+
* See https://github.com/prezly/theme-nextjs-bea/blob/d381e9878187ca98815d240d3ffdf10a75993c14/pages/media/index.tsx#L23 for usage example
|
|
7
|
+
*/
|
|
8
|
+
export declare function useInfiniteGalleriesLoading(initialGalleries: NewsroomGallery[], pagination: PaginationProps): {
|
|
9
|
+
canLoadMore: boolean;
|
|
10
|
+
galleries: NewsroomGallery[];
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
loadMoreGalleries: () => void;
|
|
13
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.useInfiniteGalleriesLoading = void 0;
|
|
40
|
+
var useInfiniteLoading_1 = require("./useInfiniteLoading");
|
|
41
|
+
function fetchGalleries(page, pageSize) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var result, message;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0: return [4 /*yield*/, fetch('/api/fetch-galleries', {
|
|
47
|
+
method: 'POST',
|
|
48
|
+
headers: {
|
|
49
|
+
'Content-Type': 'application/json',
|
|
50
|
+
},
|
|
51
|
+
body: JSON.stringify({
|
|
52
|
+
page: page,
|
|
53
|
+
pageSize: pageSize,
|
|
54
|
+
}),
|
|
55
|
+
})];
|
|
56
|
+
case 1:
|
|
57
|
+
result = _a.sent();
|
|
58
|
+
if (!!result.ok) return [3 /*break*/, 3];
|
|
59
|
+
return [4 /*yield*/, result.json()];
|
|
60
|
+
case 2:
|
|
61
|
+
message = (_a.sent()).message;
|
|
62
|
+
throw new Error(message);
|
|
63
|
+
case 3: return [2 /*return*/, result.json()];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* NOTE: This hook depends on the presence of a Next API route (/api/fetch-galleries)!
|
|
70
|
+
* The handler for this route is exported from `apiHandlers/fetchGalleries.ts` file.
|
|
71
|
+
* See https://github.com/prezly/theme-nextjs-bea/blob/d381e9878187ca98815d240d3ffdf10a75993c14/pages/media/index.tsx#L23 for usage example
|
|
72
|
+
*/
|
|
73
|
+
function useInfiniteGalleriesLoading(initialGalleries, pagination) {
|
|
74
|
+
var _this = this;
|
|
75
|
+
var _a = (0, useInfiniteLoading_1.useInfiniteLoading)({
|
|
76
|
+
fetchingFn: function (nextPage, pageSize) { return __awaiter(_this, void 0, void 0, function () {
|
|
77
|
+
var galleries;
|
|
78
|
+
return __generator(this, function (_a) {
|
|
79
|
+
switch (_a.label) {
|
|
80
|
+
case 0: return [4 /*yield*/, fetchGalleries(nextPage, pageSize)];
|
|
81
|
+
case 1:
|
|
82
|
+
galleries = (_a.sent()).galleries;
|
|
83
|
+
return [2 /*return*/, galleries];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}); },
|
|
87
|
+
initialData: initialGalleries,
|
|
88
|
+
pagination: pagination,
|
|
89
|
+
}), canLoadMore = _a.canLoadMore, data = _a.data, isLoading = _a.isLoading, loadMore = _a.loadMore;
|
|
90
|
+
return {
|
|
91
|
+
canLoadMore: canLoadMore,
|
|
92
|
+
galleries: data,
|
|
93
|
+
isLoading: isLoading,
|
|
94
|
+
loadMoreGalleries: loadMore,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
exports.useInfiniteGalleriesLoading = useInfiniteGalleriesLoading;
|
|
98
|
+
//# sourceMappingURL=useInfiniteGalleriesLoading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInfiniteGalleriesLoading.js","sourceRoot":"","sources":["../../src/infinite-loading/useInfiniteGalleriesLoading.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,2DAA0D;AAE1D,SAAe,cAAc,CACzB,IAAY,EACZ,QAAgB;;;;;wBAED,qBAAM,KAAK,CAAC,sBAAsB,EAAE;wBAC/C,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACL,cAAc,EAAE,kBAAkB;yBACrC;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACjB,IAAI,MAAA;4BACJ,QAAQ,UAAA;yBACX,CAAC;qBACL,CAAC,EAAA;;oBATI,MAAM,GAAG,SASb;yBAEE,CAAC,MAAM,CAAC,EAAE,EAAV,wBAAU;oBACU,qBAAM,MAAM,CAAC,IAAI,EAAE,EAAA;;oBAA/B,OAAO,GAAK,CAAA,SAAmB,CAAA,QAAxB;oBACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;wBAG7B,sBAAO,MAAM,CAAC,IAAI,EAAE,EAAC;;;;CACxB;AAED;;;;GAIG;AACH,SAAgB,2BAA2B,CACvC,gBAAmC,EACnC,UAA2B;IAF/B,iBAmBC;IAfS,IAAA,KAA6C,IAAA,uCAAkB,EAAkB;QACnF,UAAU,EAAE,UAAO,QAAQ,EAAE,QAAQ;;;;4BACX,qBAAM,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAA;;wBAAtD,SAAS,GAAK,CAAA,SAAwC,CAAA,UAA7C;wBACjB,sBAAO,SAAS,EAAC;;;aACpB;QACD,WAAW,EAAE,gBAAgB;QAC7B,UAAU,YAAA;KACb,CAAC,EAPM,WAAW,iBAAA,EAAE,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,QAAQ,cAO5C,CAAC;IAEH,OAAO;QACH,WAAW,aAAA;QACX,SAAS,EAAE,IAAI;QACf,SAAS,WAAA;QACT,iBAAiB,EAAE,QAAQ;KAC9B,CAAC;AACN,CAAC;AAnBD,kEAmBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PaginationProps } from './types';
|
|
2
|
+
interface Parameters<T> {
|
|
3
|
+
fetchingFn: (page: number, pageSize: number) => Promise<T[]>;
|
|
4
|
+
initialData: T[];
|
|
5
|
+
pagination: PaginationProps;
|
|
6
|
+
}
|
|
7
|
+
interface State<T> {
|
|
8
|
+
canLoadMore: boolean;
|
|
9
|
+
currentPage: number;
|
|
10
|
+
data: T[];
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
loadMore: () => void;
|
|
13
|
+
resetData: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function useInfiniteLoading<T>({ fetchingFn, initialData, pagination, }: Parameters<T>): State<T>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
54
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
55
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
56
|
+
if (ar || !(i in from)) {
|
|
57
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
58
|
+
ar[i] = from[i];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
62
|
+
};
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
exports.useInfiniteLoading = void 0;
|
|
65
|
+
var web_1 = require("@react-hookz/web");
|
|
66
|
+
var react_1 = require("react");
|
|
67
|
+
function useInfiniteLoading(_a) {
|
|
68
|
+
var _this = this;
|
|
69
|
+
var fetchingFn = _a.fetchingFn, initialData = _a.initialData, pagination = _a.pagination;
|
|
70
|
+
var _b = __read((0, react_1.useState)(initialData), 2), data = _b[0], setData = _b[1];
|
|
71
|
+
var _c = __read((0, react_1.useState)(pagination.currentPage), 2), currentPage = _c[0], setCurrentPage = _c[1];
|
|
72
|
+
var itemsTotal = pagination.itemsTotal, pageSize = pagination.pageSize;
|
|
73
|
+
var pagesTotal = Math.ceil(itemsTotal / pageSize);
|
|
74
|
+
var canLoadMore = currentPage < pagesTotal;
|
|
75
|
+
var _d = __read((0, web_1.useAsync)(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
76
|
+
var nextPage, newData;
|
|
77
|
+
return __generator(this, function (_a) {
|
|
78
|
+
switch (_a.label) {
|
|
79
|
+
case 0:
|
|
80
|
+
nextPage = currentPage + 1;
|
|
81
|
+
return [4 /*yield*/, fetchingFn(nextPage, pageSize)];
|
|
82
|
+
case 1:
|
|
83
|
+
newData = _a.sent();
|
|
84
|
+
setCurrentPage(nextPage);
|
|
85
|
+
setData(function (currentData) { return __spreadArray(__spreadArray([], __read(currentData), false), __read(newData), false); });
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}); }), 2), _e = _d[0], error = _e.error, status = _e.status, loadMoreFn = _d[1].execute;
|
|
90
|
+
var loadMore = (0, react_1.useCallback)(function () {
|
|
91
|
+
if (canLoadMore) {
|
|
92
|
+
loadMoreFn();
|
|
93
|
+
}
|
|
94
|
+
}, [canLoadMore, loadMoreFn]);
|
|
95
|
+
var resetData = (0, react_1.useCallback)(function () {
|
|
96
|
+
setData(initialData);
|
|
97
|
+
setCurrentPage(pagination.currentPage);
|
|
98
|
+
}, [pagination.currentPage, initialData]);
|
|
99
|
+
(0, react_1.useEffect)(function () {
|
|
100
|
+
if (error) {
|
|
101
|
+
// eslint-disable-next-line no-console
|
|
102
|
+
console.error(error);
|
|
103
|
+
}
|
|
104
|
+
}, [error]);
|
|
105
|
+
return {
|
|
106
|
+
canLoadMore: canLoadMore,
|
|
107
|
+
currentPage: currentPage,
|
|
108
|
+
data: data,
|
|
109
|
+
isLoading: status === 'loading',
|
|
110
|
+
loadMore: loadMore,
|
|
111
|
+
resetData: resetData,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
exports.useInfiniteLoading = useInfiniteLoading;
|
|
115
|
+
//# sourceMappingURL=useInfiniteLoading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInfiniteLoading.js","sourceRoot":"","sources":["../../src/infinite-loading/useInfiniteLoading.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA4C;AAC5C,+BAAyD;AAmBzD,SAAgB,kBAAkB,CAAI,EAItB;IAJhB,iBA6CC;QA5CG,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,UAAU,gBAAA;IAEJ,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAM,WAAW,CAAC,IAAA,EAA3C,IAAI,QAAA,EAAE,OAAO,QAA8B,CAAC;IAC7C,IAAA,KAAA,OAAgC,IAAA,gBAAQ,EAAC,UAAU,CAAC,WAAW,CAAC,IAAA,EAA/D,WAAW,QAAA,EAAE,cAAc,QAAoC,CAAC;IAE/D,IAAA,UAAU,GAAe,UAAU,WAAzB,EAAE,QAAQ,GAAK,UAAU,SAAf,CAAgB;IAC5C,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACpD,IAAM,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;IAEvC,IAAA,KAAA,OAA+C,IAAA,cAAQ,EAAC;;;;;oBACpD,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAC;oBACjB,qBAAM,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAA;;oBAA9C,OAAO,GAAG,SAAoC;oBACpD,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACzB,OAAO,CAAC,UAAC,WAAW,IAAK,8CAAI,WAAW,kBAAK,OAAO,WAA3B,CAA4B,CAAC,CAAC;;;;SAC1D,CAAC,IAAA,EALK,UAAiB,EAAf,KAAK,WAAA,EAAE,MAAM,YAAA,EAAe,UAAU,gBAK7C,CAAC;IAEH,IAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC;QACzB,IAAI,WAAW,EAAE;YACb,UAAU,EAAE,CAAC;SAChB;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9B,IAAM,SAAS,GAAG,IAAA,mBAAW,EAAC;QAC1B,OAAO,CAAC,WAAW,CAAC,CAAC;QACrB,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1C,IAAA,iBAAS,EAAC;QACN,IAAI,KAAK,EAAE;YACP,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACxB;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO;QACH,WAAW,aAAA;QACX,WAAW,aAAA;QACX,IAAI,MAAA;QACJ,SAAS,EAAE,MAAM,KAAK,SAAS;QAC/B,QAAQ,UAAA;QACR,SAAS,WAAA;KACZ,CAAC;AACN,CAAC;AA7CD,gDA6CC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Category, ExtraStoryFields, Story } from '@prezly/sdk';
|
|
2
|
+
import type { PaginationProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* NOTE: This hook depends on the presence of a Next API route (/api/fetch-stories)!
|
|
5
|
+
* The handler for this route is exported from `apiHandlers/fetchStories.ts` file.
|
|
6
|
+
* See https://github.com/prezly/theme-nextjs-bea/blob/d381e9878187ca98815d240d3ffdf10a75993c14/pages/index.tsx#L24 for usage example
|
|
7
|
+
*/
|
|
8
|
+
export declare function useInfiniteStoriesLoading<T extends Story = Story>(initialStories: T[], pagination: PaginationProps, category?: Category, include?: (keyof ExtraStoryFields)[]): {
|
|
9
|
+
canLoadMore: boolean;
|
|
10
|
+
isLoading: boolean;
|
|
11
|
+
loadMoreStories: () => void;
|
|
12
|
+
stories: T[];
|
|
13
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.useInfiniteStoriesLoading = void 0;
|
|
51
|
+
var react_1 = require("react");
|
|
52
|
+
var newsroom_context_1 = require("../newsroom-context");
|
|
53
|
+
var useInfiniteLoading_1 = require("./useInfiniteLoading");
|
|
54
|
+
function fetchStories(page, pageSize, category, locale, include) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
+
var result, message;
|
|
57
|
+
return __generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0: return [4 /*yield*/, fetch('/api/fetch-stories', {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
headers: {
|
|
62
|
+
'Content-Type': 'application/json',
|
|
63
|
+
},
|
|
64
|
+
body: JSON.stringify(__assign({ page: page, pageSize: pageSize, category: category, include: include }, (locale && {
|
|
65
|
+
localeCode: locale.toUnderscoreCode(),
|
|
66
|
+
}))),
|
|
67
|
+
})];
|
|
68
|
+
case 1:
|
|
69
|
+
result = _a.sent();
|
|
70
|
+
if (!!result.ok) return [3 /*break*/, 3];
|
|
71
|
+
return [4 /*yield*/, result.json()];
|
|
72
|
+
case 2:
|
|
73
|
+
message = (_a.sent()).message;
|
|
74
|
+
throw new Error(message);
|
|
75
|
+
case 3: return [2 /*return*/, result.json()];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* NOTE: This hook depends on the presence of a Next API route (/api/fetch-stories)!
|
|
82
|
+
* The handler for this route is exported from `apiHandlers/fetchStories.ts` file.
|
|
83
|
+
* See https://github.com/prezly/theme-nextjs-bea/blob/d381e9878187ca98815d240d3ffdf10a75993c14/pages/index.tsx#L24 for usage example
|
|
84
|
+
*/
|
|
85
|
+
function useInfiniteStoriesLoading(initialStories, pagination, category, include) {
|
|
86
|
+
var _this = this;
|
|
87
|
+
var currentLocale = (0, newsroom_context_1.useCurrentLocale)();
|
|
88
|
+
var _a = (0, useInfiniteLoading_1.useInfiniteLoading)({
|
|
89
|
+
fetchingFn: function (nextPage, pageSize) { return __awaiter(_this, void 0, void 0, function () {
|
|
90
|
+
var stories;
|
|
91
|
+
return __generator(this, function (_a) {
|
|
92
|
+
switch (_a.label) {
|
|
93
|
+
case 0: return [4 /*yield*/, fetchStories(nextPage, pageSize, category, currentLocale, include)];
|
|
94
|
+
case 1:
|
|
95
|
+
stories = (_a.sent()).stories;
|
|
96
|
+
return [2 /*return*/, stories];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}); },
|
|
100
|
+
initialData: initialStories,
|
|
101
|
+
pagination: pagination,
|
|
102
|
+
}), canLoadMore = _a.canLoadMore, data = _a.data, isLoading = _a.isLoading, loadMore = _a.loadMore, resetData = _a.resetData;
|
|
103
|
+
(0, react_1.useEffect)(function () {
|
|
104
|
+
if (category === null || category === void 0 ? void 0 : category.id) {
|
|
105
|
+
resetData();
|
|
106
|
+
}
|
|
107
|
+
}, [category === null || category === void 0 ? void 0 : category.id, resetData]);
|
|
108
|
+
return {
|
|
109
|
+
canLoadMore: canLoadMore,
|
|
110
|
+
isLoading: isLoading,
|
|
111
|
+
loadMoreStories: loadMore,
|
|
112
|
+
stories: data,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
exports.useInfiniteStoriesLoading = useInfiniteStoriesLoading;
|
|
116
|
+
//# sourceMappingURL=useInfiniteStoriesLoading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInfiniteStoriesLoading.js","sourceRoot":"","sources":["../../src/infinite-loading/useInfiniteStoriesLoading.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+BAAkC;AAGlC,wDAAuD;AAGvD,2DAA0D;AAE1D,SAAe,YAAY,CACvB,IAAY,EACZ,QAAgB,EAChB,QAAmB,EACnB,MAAqB,EACrB,OAAoC;;;;;wBAErB,qBAAM,KAAK,CAAC,oBAAoB,EAAE;wBAC7C,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACL,cAAc,EAAE,kBAAkB;yBACrC;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,YAChB,IAAI,MAAA,EACJ,QAAQ,UAAA,EACR,QAAQ,UAAA,EACR,OAAO,SAAA,IACJ,CAAC,MAAM,IAAI;4BACV,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE;yBACxC,CAAC,EACJ;qBACL,CAAC,EAAA;;oBAdI,MAAM,GAAG,SAcb;yBAEE,CAAC,MAAM,CAAC,EAAE,EAAV,wBAAU;oBACU,qBAAM,MAAM,CAAC,IAAI,EAAE,EAAA;;oBAA/B,OAAO,GAAK,CAAA,SAAmB,CAAA,QAAxB;oBACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;wBAG7B,sBAAO,MAAM,CAAC,IAAI,EAAE,EAAC;;;;CACxB;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CACrC,cAAmB,EACnB,UAA2B,EAC3B,QAAmB,EACnB,OAAoC;IAJxC,iBAmCC;IA7BG,IAAM,aAAa,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAEnC,IAAA,KAAwD,IAAA,uCAAkB,EAAI;QAChF,UAAU,EAAE,UAAO,QAAQ,EAAE,QAAQ;;;;4BACb,qBAAM,YAAY,CAClC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,CACV,EAAA;;wBANO,OAAO,GAAK,CAAA,SAMnB,CAAA,QANc;wBAOf,sBAAO,OAAO,EAAC;;;aAClB;QACD,WAAW,EAAE,cAAc;QAC3B,UAAU,YAAA;KACb,CAAC,EAbM,WAAW,iBAAA,EAAE,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAavD,CAAC;IAEH,IAAA,iBAAS,EAAC;QACN,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;SACf;IACL,CAAC,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,OAAO;QACH,WAAW,aAAA;QACX,SAAS,WAAA;QACT,eAAe,EAAE,QAAQ;QACzB,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC;AAnCD,8DAmCC"}
|