@prezly/theme-kit-nextjs 1.7.1-0 → 1.8.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/build/data-fetching/api/PrezlyApi.d.ts +8 -3
- package/build/data-fetching/api/PrezlyApi.js +40 -0
- package/build/data-fetching/api/PrezlyApi.js.map +1 -1
- package/build/data-fetching/api/queries.d.ts +23 -0
- package/build/data-fetching/api/queries.js +10 -1
- package/build/data-fetching/api/queries.js.map +1 -1
- package/build/newsroom-context/context.d.ts +6 -2
- package/build/newsroom-context/context.js +2 -1
- package/build/newsroom-context/context.js.map +1 -1
- package/build/newsroom-context/hooks/index.d.ts +1 -0
- package/build/newsroom-context/hooks/index.js +1 -0
- package/build/newsroom-context/hooks/index.js.map +1 -1
- package/build/newsroom-context/hooks/useEmbedStory.d.ts +2 -0
- package/build/newsroom-context/hooks/useEmbedStory.js +13 -0
- package/build/newsroom-context/hooks/useEmbedStory.js.map +1 -0
- package/package.json +2 -1
- package/src/data-fetching/api/PrezlyApi.ts +26 -0
- package/src/data-fetching/api/queries.ts +10 -0
- package/src/newsroom-context/context.tsx +7 -0
- package/src/newsroom-context/hooks/index.ts +1 -0
- package/src/newsroom-context/hooks/useEmbedStory.ts +13 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { Category, ExtraStoryFields, Newsroom, NewsroomLanguageSettings, Story } from '@prezly/sdk';
|
|
2
|
+
import type { Category, ExtendedStory, ExtraStoryFields, Newsroom, NewsroomLanguageSettings, Story } from '@prezly/sdk';
|
|
3
3
|
import PrezlySDK from '@prezly/sdk';
|
|
4
4
|
import type { IncomingMessage } from 'http';
|
|
5
5
|
import type { PageProps, ServerSidePageProps } from '../../types';
|
|
@@ -20,7 +20,7 @@ export declare class PrezlyApi {
|
|
|
20
20
|
private readonly newsroomUuid;
|
|
21
21
|
private readonly themeUuid;
|
|
22
22
|
constructor(accessToken: string, newsroomUuid: Newsroom['uuid'], themeUuid?: string);
|
|
23
|
-
getStory(uuid: string): Promise<
|
|
23
|
+
getStory(uuid: string): Promise<ExtendedStory | null>;
|
|
24
24
|
getNewsroom(): Promise<Newsroom>;
|
|
25
25
|
getNewsroomContacts(): Promise<import("@prezly/sdk").NewsroomContact[]>;
|
|
26
26
|
getNewsroomLanguages(): Promise<NewsroomLanguageSettings[]>;
|
|
@@ -36,7 +36,7 @@ export declare class PrezlyApi {
|
|
|
36
36
|
stories: Story[];
|
|
37
37
|
storiesTotal: number;
|
|
38
38
|
}>;
|
|
39
|
-
getStoryBySlug(slug: string): Promise<
|
|
39
|
+
getStoryBySlug(slug: string): Promise<ExtendedStory | null>;
|
|
40
40
|
getCategories(): Promise<Category[]>;
|
|
41
41
|
getCategoryBySlug(slug: string): Promise<Category | undefined>;
|
|
42
42
|
searchStories: typeof PrezlySDK.prototype.stories.search;
|
|
@@ -46,6 +46,11 @@ export declare class PrezlyApi {
|
|
|
46
46
|
* In order to prevent issues with theme preview, we only load the theme preset for a specified theme, and not the currently active one.
|
|
47
47
|
*/
|
|
48
48
|
getThemePreset(): Promise<import("@prezly/sdk").NewsroomThemePreset | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Returns summaries for stories embed in the current story (like in Bookmark Blocks)
|
|
51
|
+
* @returns a map of `Story` object with their UUID as keys
|
|
52
|
+
*/
|
|
53
|
+
getEmbedStories(story: ExtendedStory): Promise<Record<string, Story>>;
|
|
49
54
|
getNewsroomServerSideProps(request: IncomingMessage | undefined, nextLocaleIsoCode?: string, story?: Story): Promise<PageProps & ServerSidePageProps>;
|
|
50
55
|
}
|
|
51
56
|
export {};
|
|
@@ -1,4 +1,15 @@
|
|
|
1
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
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -57,6 +68,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
57
68
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
69
|
exports.PrezlyApi = void 0;
|
|
59
70
|
var sdk_1 = __importDefault(require("@prezly/sdk"));
|
|
71
|
+
var slate_types_1 = require("@prezly/slate-types");
|
|
60
72
|
var intl_1 = require("../../intl");
|
|
61
73
|
var constants_1 = require("../constants");
|
|
62
74
|
var lib_1 = require("../lib");
|
|
@@ -304,6 +316,34 @@ var PrezlyApi = /** @class */ (function () {
|
|
|
304
316
|
});
|
|
305
317
|
});
|
|
306
318
|
};
|
|
319
|
+
/**
|
|
320
|
+
* Returns summaries for stories embed in the current story (like in Bookmark Blocks)
|
|
321
|
+
* @returns a map of `Story` object with their UUID as keys
|
|
322
|
+
*/
|
|
323
|
+
PrezlyApi.prototype.getEmbedStories = function (story) {
|
|
324
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
325
|
+
var nodes, embedUuids, jsonQuery, stories;
|
|
326
|
+
return __generator(this, function (_a) {
|
|
327
|
+
switch (_a.label) {
|
|
328
|
+
case 0:
|
|
329
|
+
nodes = JSON.parse(story.content);
|
|
330
|
+
return [4 /*yield*/, Promise.all(nodes.children.filter(slate_types_1.isStoryBookmarkNode).map(function (c) { return c.story.uuid; }))];
|
|
331
|
+
case 1:
|
|
332
|
+
embedUuids = _a.sent();
|
|
333
|
+
jsonQuery = JSON.stringify((0, queries_1.getEmbedStoriesQuery)(this.newsroomUuid, embedUuids));
|
|
334
|
+
return [4 /*yield*/, this.searchStories({
|
|
335
|
+
jsonQuery: jsonQuery,
|
|
336
|
+
})];
|
|
337
|
+
case 2:
|
|
338
|
+
stories = (_a.sent()).stories;
|
|
339
|
+
return [2 /*return*/, stories.reduce(function (result, embedStory) {
|
|
340
|
+
var _a;
|
|
341
|
+
return (__assign(__assign({}, result), (_a = {}, _a[embedStory.uuid] = embedStory, _a)));
|
|
342
|
+
}, {})];
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
});
|
|
346
|
+
};
|
|
307
347
|
PrezlyApi.prototype.getNewsroomServerSideProps = function (request, nextLocaleIsoCode, story) {
|
|
308
348
|
return __awaiter(this, void 0, void 0, function () {
|
|
309
349
|
var _a, newsroom, languages, categories, themePreset, currentLanguage, defaultLanguage, localeCode, locale, companyInformation, algoliaSettings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrezlyApi.js","sourceRoot":"","sources":["../../../src/data-fetching/api/PrezlyApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PrezlyApi.js","sourceRoot":"","sources":["../../../src/data-fetching/api/PrezlyApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,29 @@ export declare function getSlugQuery(newsroomUuid: string, slug: string): {
|
|
|
21
21
|
'newsroom.uuid'?: undefined;
|
|
22
22
|
})[];
|
|
23
23
|
};
|
|
24
|
+
export declare function getEmbedStoriesQuery(newsroomUuid: string, uuids: string[]): {
|
|
25
|
+
$and: ({
|
|
26
|
+
lifecycle_status: {
|
|
27
|
+
$in: string[];
|
|
28
|
+
};
|
|
29
|
+
visibility?: undefined;
|
|
30
|
+
} | {
|
|
31
|
+
visibility: {
|
|
32
|
+
$in: string[];
|
|
33
|
+
};
|
|
34
|
+
lifecycle_status?: undefined;
|
|
35
|
+
} | {
|
|
36
|
+
'newsroom.uuid': {
|
|
37
|
+
$in: string[];
|
|
38
|
+
};
|
|
39
|
+
uuid?: undefined;
|
|
40
|
+
} | {
|
|
41
|
+
uuid: {
|
|
42
|
+
$in: string[];
|
|
43
|
+
};
|
|
44
|
+
'newsroom.uuid'?: undefined;
|
|
45
|
+
})[];
|
|
46
|
+
};
|
|
24
47
|
export declare function getStoriesQuery(newsroomUuid: string, categoryId?: number, localeCode?: string): any;
|
|
25
48
|
export declare function getSortByPublishedDate(order: 'asc' | 'desc'): "-published_at" | "published_at";
|
|
26
49
|
export declare function getGalleriesQuery(): {
|
|
@@ -25,7 +25,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
25
25
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.getContactsQuery = exports.getGalleriesQuery = exports.getSortByPublishedDate = exports.getStoriesQuery = exports.getSlugQuery = void 0;
|
|
28
|
+
exports.getContactsQuery = exports.getGalleriesQuery = exports.getSortByPublishedDate = exports.getStoriesQuery = exports.getEmbedStoriesQuery = exports.getSlugQuery = void 0;
|
|
29
29
|
var publishedAndAccessible = [
|
|
30
30
|
{ lifecycle_status: { $in: ['published', 'embargo'] } },
|
|
31
31
|
{ visibility: { $in: ['public', 'private', 'embargo'] } },
|
|
@@ -43,6 +43,15 @@ function getSlugQuery(newsroomUuid, slug) {
|
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
exports.getSlugQuery = getSlugQuery;
|
|
46
|
+
function getEmbedStoriesQuery(newsroomUuid, uuids) {
|
|
47
|
+
return {
|
|
48
|
+
$and: __spreadArray([
|
|
49
|
+
{ 'newsroom.uuid': { $in: [newsroomUuid] } },
|
|
50
|
+
{ uuid: { $in: uuids } }
|
|
51
|
+
], __read(publishedAndAccessible), false),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
exports.getEmbedStoriesQuery = getEmbedStoriesQuery;
|
|
46
55
|
function getStoriesQuery(newsroomUuid, categoryId, localeCode) {
|
|
47
56
|
var query = {
|
|
48
57
|
$and: __spreadArray(__spreadArray([], __read(publishedAndPublic), false), [{ 'newsroom.uuid': { $in: [newsroomUuid] } }], false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/data-fetching/api/queries.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,sBAAsB,GAAG;IAC3B,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE;IACvD,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE;CAC5D,CAAC;AAEF,IAAM,kBAAkB,GAAG;IACvB,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;IAC5C,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;CACtC,CAAC;AAEF,SAAgB,YAAY,CAAC,YAAoB,EAAE,IAAY;IAC3D,OAAO;QACH,IAAI;YACA,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;YAC5C,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;kBACpB,sBAAsB,SAC5B;KACJ,CAAC;AACN,CAAC;AARD,oCAQC;AAED,SAAgB,eAAe,CAAC,YAAoB,EAAE,UAAmB,EAAE,UAAmB;IAC1F,IAAM,KAAK,GAAQ;QACf,IAAI,yCAAM,kBAAkB,YAAE,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,SAAC;KAC9E,CAAC;IAEF,IAAI,UAAU,EAAE;QACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9D;IAED,IAAI,UAAU,EAAE;QACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;KACtD;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAdD,0CAcC;AAED,SAAgB,sBAAsB,CAAC,KAAqB;IACxD,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;AAC/D,CAAC;AAFD,wDAEC;AAED,SAAgB,iBAAiB;IAC7B,OAAO;QACH,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;KACvE,CAAC;AACN,CAAC;AAJD,8CAIC;AAED,SAAgB,gBAAgB;IAC5B,OAAO;QACH,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;KACzC,CAAC;AACN,CAAC;AAJD,4CAIC"}
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/data-fetching/api/queries.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,sBAAsB,GAAG;IAC3B,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE;IACvD,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE;CAC5D,CAAC;AAEF,IAAM,kBAAkB,GAAG;IACvB,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;IAC5C,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;CACtC,CAAC;AAEF,SAAgB,YAAY,CAAC,YAAoB,EAAE,IAAY;IAC3D,OAAO;QACH,IAAI;YACA,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;YAC5C,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;kBACpB,sBAAsB,SAC5B;KACJ,CAAC;AACN,CAAC;AARD,oCAQC;AAED,SAAgB,oBAAoB,CAAC,YAAoB,EAAE,KAAe;IACtE,OAAO;QACH,IAAI;YACA,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;YAC5C,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;kBACrB,sBAAsB,SAC5B;KACJ,CAAC;AACN,CAAC;AARD,oDAQC;AAED,SAAgB,eAAe,CAAC,YAAoB,EAAE,UAAmB,EAAE,UAAmB;IAC1F,IAAM,KAAK,GAAQ;QACf,IAAI,yCAAM,kBAAkB,YAAE,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,SAAC;KAC9E,CAAC;IAEF,IAAI,UAAU,EAAE;QACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9D;IAED,IAAI,UAAU,EAAE;QACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;KACtD;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAdD,0CAcC;AAED,SAAgB,sBAAsB,CAAC,KAAqB;IACxD,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;AAC/D,CAAC;AAFD,wDAEC;AAED,SAAgB,iBAAiB;IAC7B,OAAO;QACH,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;KACvE,CAAC;AACN,CAAC;AAJD,8CAIC;AAED,SAAgB,gBAAgB;IAC5B,OAAO;QACH,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;KACzC,CAAC;AACN,CAAC;AAJD,4CAIC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Category, ExtendedStory, Newsroom, NewsroomCompanyInformation, NewsroomContact, NewsroomLanguageSettings, NewsroomThemePreset } from '@prezly/sdk';
|
|
1
|
+
import type { Category, ExtendedStory, Newsroom, NewsroomCompanyInformation, NewsroomContact, NewsroomLanguageSettings, NewsroomThemePreset, Story } from '@prezly/sdk';
|
|
2
2
|
import type { PropsWithChildren } from 'react';
|
|
3
3
|
import type { AlgoliaSettings } from '../data-fetching';
|
|
4
4
|
import { LocaleObject } from '../intl';
|
|
@@ -28,6 +28,10 @@ export interface NewsroomContextType {
|
|
|
28
28
|
* Optional: Refers to a currently selected story when navigated to `/[slug]` page.
|
|
29
29
|
*/
|
|
30
30
|
currentStory?: ExtendedStory;
|
|
31
|
+
/**
|
|
32
|
+
* Optional: Embed stories data referenced from the current story content (currently used by Story Bookmark blocks)
|
|
33
|
+
*/
|
|
34
|
+
embedStories?: Record<Story['uuid'], Story>;
|
|
31
35
|
/**
|
|
32
36
|
* List of currently enabled newsroom languages, as well as company information translated for each language
|
|
33
37
|
*/
|
|
@@ -55,4 +59,4 @@ export declare const NewsroomContext: import("react").Context<NewsroomContextTyp
|
|
|
55
59
|
* This context provides common Newsroom information retrieved by `getNewsroomServerSideProps` helper.
|
|
56
60
|
* Please refer to the `NewsroomContextType` definition for more info on what's exposed from the context.
|
|
57
61
|
*/
|
|
58
|
-
export declare function NewsroomContextProvider({ categories, contacts, newsroom, currentCategory, currentStory, companyInformation, languages, localeCode, themePreset, algoliaSettings, children, }: PropsWithChildren<NewsroomContextProps>): JSX.Element;
|
|
62
|
+
export declare function NewsroomContextProvider({ categories, contacts, newsroom, currentCategory, currentStory, embedStories, companyInformation, languages, localeCode, themePreset, algoliaSettings, children, }: PropsWithChildren<NewsroomContextProps>): JSX.Element;
|
|
@@ -21,7 +21,7 @@ exports.NewsroomContext = (0, react_1.createContext)(undefined);
|
|
|
21
21
|
* Please refer to the `NewsroomContextType` definition for more info on what's exposed from the context.
|
|
22
22
|
*/
|
|
23
23
|
function NewsroomContextProvider(_a) {
|
|
24
|
-
var categories = _a.categories, contacts = _a.contacts, newsroom = _a.newsroom, currentCategory = _a.currentCategory, currentStory = _a.currentStory, companyInformation = _a.companyInformation, languages = _a.languages, localeCode = _a.localeCode, themePreset = _a.themePreset, algoliaSettings = _a.algoliaSettings, children = _a.children;
|
|
24
|
+
var categories = _a.categories, contacts = _a.contacts, newsroom = _a.newsroom, currentCategory = _a.currentCategory, currentStory = _a.currentStory, embedStories = _a.embedStories, companyInformation = _a.companyInformation, languages = _a.languages, localeCode = _a.localeCode, themePreset = _a.themePreset, algoliaSettings = _a.algoliaSettings, children = _a.children;
|
|
25
25
|
var locale = (0, react_1.useMemo)(function () { return intl_1.LocaleObject.fromAnyCode(localeCode || intl_1.DEFAULT_LOCALE); }, [localeCode]);
|
|
26
26
|
return ((0, jsx_runtime_1.jsx)(exports.NewsroomContext.Provider, __assign({ value: {
|
|
27
27
|
categories: categories,
|
|
@@ -29,6 +29,7 @@ function NewsroomContextProvider(_a) {
|
|
|
29
29
|
newsroom: newsroom,
|
|
30
30
|
currentCategory: currentCategory,
|
|
31
31
|
currentStory: currentStory,
|
|
32
|
+
embedStories: embedStories,
|
|
32
33
|
companyInformation: companyInformation,
|
|
33
34
|
languages: languages,
|
|
34
35
|
locale: locale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/newsroom-context/context.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/newsroom-context/context.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAWA,+BAA+C;AAG/C,gCAAuD;AAwD1C,QAAA,eAAe,GAAG,IAAA,qBAAa,EAAkC,SAAS,CAAC,CAAC;AAEzF;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,EAaE;QAZtC,UAAU,gBAAA,EACV,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,eAAe,qBAAA,EACf,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,kBAAkB,wBAAA,EAClB,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,eAAe,qBAAA,EACf,QAAQ,cAAA;IAER,IAAM,MAAM,GAAG,IAAA,eAAO,EAClB,cAAM,OAAA,mBAAY,CAAC,WAAW,CAAC,UAAU,IAAI,qBAAc,CAAC,EAAtD,CAAsD,EAC5D,CAAC,UAAU,CAAC,CACf,CAAC;IAEF,OAAO,CACH,uBAAC,uBAAe,CAAC,QAAQ,aACrB,KAAK,EAAE;YACH,UAAU,YAAA;YACV,QAAQ,UAAA;YACR,QAAQ,UAAA;YACR,eAAe,iBAAA;YACf,YAAY,cAAA;YACZ,YAAY,cAAA;YACZ,kBAAkB,oBAAA;YAClB,SAAS,WAAA;YACT,MAAM,QAAA;YACN,WAAW,aAAA;YACX,eAAe,iBAAA;SAClB,gBAEA,QAAQ,YACc,CAC9B,CAAC;AACN,CAAC;AAtCD,0DAsCC"}
|
|
@@ -4,6 +4,7 @@ export * from './useCompanyInformation';
|
|
|
4
4
|
export * from './useCurrentCategory';
|
|
5
5
|
export * from './useCurrentLocale';
|
|
6
6
|
export * from './useCurrentStory';
|
|
7
|
+
export * from './useEmbedStory';
|
|
7
8
|
export * from './useGetLinkLocaleSlug';
|
|
8
9
|
export * from './useGetTranslationUrl';
|
|
9
10
|
export * from './useLanguages';
|
|
@@ -16,6 +16,7 @@ __exportStar(require("./useCompanyInformation"), exports);
|
|
|
16
16
|
__exportStar(require("./useCurrentCategory"), exports);
|
|
17
17
|
__exportStar(require("./useCurrentLocale"), exports);
|
|
18
18
|
__exportStar(require("./useCurrentStory"), exports);
|
|
19
|
+
__exportStar(require("./useEmbedStory"), exports);
|
|
19
20
|
__exportStar(require("./useGetLinkLocaleSlug"), exports);
|
|
20
21
|
__exportStar(require("./useGetTranslationUrl"), exports);
|
|
21
22
|
__exportStar(require("./useLanguages"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/newsroom-context/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC;AACrC,kDAAgC;AAChC,0DAAwC;AACxC,uDAAqC;AACrC,qDAAmC;AACnC,oDAAkC;AAClC,yDAAuC;AACvC,yDAAuC;AACvC,iDAA+B;AAC/B,gDAA8B;AAC9B,uDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/newsroom-context/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC;AACrC,kDAAgC;AAChC,0DAAwC;AACxC,uDAAqC;AACrC,qDAAmC;AACnC,oDAAkC;AAClC,kDAAgC;AAChC,yDAAuC;AACvC,yDAAuC;AACvC,iDAA+B;AAC/B,gDAA8B;AAC9B,uDAAqC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useEmbedStory = void 0;
|
|
4
|
+
var useNewsroomContext_1 = require("./useNewsroomContext");
|
|
5
|
+
function useEmbedStory(uuid) {
|
|
6
|
+
var context = (0, useNewsroomContext_1.useNewsroomContext)();
|
|
7
|
+
if (!context.embedStories) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
return context.embedStories[uuid];
|
|
11
|
+
}
|
|
12
|
+
exports.useEmbedStory = useEmbedStory;
|
|
13
|
+
//# sourceMappingURL=useEmbedStory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEmbedStory.js","sourceRoot":"","sources":["../../../src/newsroom-context/hooks/useEmbedStory.ts"],"names":[],"mappings":";;;AAEA,2DAA0D;AAE1D,SAAgB,aAAa,CAAC,IAAmB;IAC7C,IAAM,OAAO,GAAG,IAAA,uCAAkB,GAAE,CAAC;IAErC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;QACvB,OAAO,SAAS,CAAC;KACpB;IAED,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AARD,sCAQC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prezly/theme-kit-nextjs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Data layer and utility library for developing Prezly themes with NextJS",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@prezly/sdk": "^6.21.0",
|
|
52
|
+
"@prezly/slate-types": "^0.31.1",
|
|
52
53
|
"@react-hookz/web": "^13.2.1",
|
|
53
54
|
"next-seo": "^5.4.0",
|
|
54
55
|
"parse-data-url": "^4.0.1",
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
Category,
|
|
3
|
+
ExtendedStory,
|
|
3
4
|
ExtraStoryFields,
|
|
4
5
|
Newsroom,
|
|
5
6
|
NewsroomLanguageSettings,
|
|
6
7
|
Story,
|
|
7
8
|
} from '@prezly/sdk';
|
|
8
9
|
import PrezlySDK from '@prezly/sdk';
|
|
10
|
+
import type { StoryBookmarkNode } from '@prezly/slate-types';
|
|
11
|
+
import { isStoryBookmarkNode } from '@prezly/slate-types';
|
|
9
12
|
import type { IncomingMessage } from 'http';
|
|
10
13
|
|
|
11
14
|
import { LocaleObject } from '../../intl';
|
|
@@ -22,6 +25,7 @@ import {
|
|
|
22
25
|
} from './languages';
|
|
23
26
|
import {
|
|
24
27
|
getContactsQuery,
|
|
28
|
+
getEmbedStoriesQuery,
|
|
25
29
|
getGalleriesQuery,
|
|
26
30
|
getSlugQuery,
|
|
27
31
|
getSortByPublishedDate,
|
|
@@ -228,6 +232,28 @@ export class PrezlyApi {
|
|
|
228
232
|
return null;
|
|
229
233
|
}
|
|
230
234
|
|
|
235
|
+
/**
|
|
236
|
+
* Returns summaries for stories embed in the current story (like in Bookmark Blocks)
|
|
237
|
+
* @returns a map of `Story` object with their UUID as keys
|
|
238
|
+
*/
|
|
239
|
+
async getEmbedStories(story: ExtendedStory) {
|
|
240
|
+
const nodes = JSON.parse(story.content);
|
|
241
|
+
|
|
242
|
+
const embedUuids: Array<string> = await Promise.all(
|
|
243
|
+
nodes.children.filter(isStoryBookmarkNode).map((c: StoryBookmarkNode) => c.story.uuid),
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
const jsonQuery = JSON.stringify(getEmbedStoriesQuery(this.newsroomUuid, embedUuids));
|
|
247
|
+
const { stories } = await this.searchStories({
|
|
248
|
+
jsonQuery,
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
return stories.reduce<Record<Story['uuid'], Story>>(
|
|
252
|
+
(result, embedStory) => ({ ...result, [embedStory.uuid]: embedStory }),
|
|
253
|
+
{},
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
231
257
|
async getNewsroomServerSideProps(
|
|
232
258
|
request: IncomingMessage | undefined,
|
|
233
259
|
nextLocaleIsoCode?: string,
|
|
@@ -18,6 +18,16 @@ export function getSlugQuery(newsroomUuid: string, slug: string) {
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
export function getEmbedStoriesQuery(newsroomUuid: string, uuids: string[]) {
|
|
22
|
+
return {
|
|
23
|
+
$and: [
|
|
24
|
+
{ 'newsroom.uuid': { $in: [newsroomUuid] } },
|
|
25
|
+
{ uuid: { $in: uuids } },
|
|
26
|
+
...publishedAndAccessible,
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
21
31
|
export function getStoriesQuery(newsroomUuid: string, categoryId?: number, localeCode?: string) {
|
|
22
32
|
const query: any = {
|
|
23
33
|
$and: [...publishedAndPublic, { 'newsroom.uuid': { $in: [newsroomUuid] } }],
|
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
NewsroomContact,
|
|
7
7
|
NewsroomLanguageSettings,
|
|
8
8
|
NewsroomThemePreset,
|
|
9
|
+
Story,
|
|
9
10
|
} from '@prezly/sdk';
|
|
10
11
|
import type { PropsWithChildren } from 'react';
|
|
11
12
|
import { createContext, useMemo } from 'react';
|
|
@@ -39,6 +40,10 @@ export interface NewsroomContextType {
|
|
|
39
40
|
* Optional: Refers to a currently selected story when navigated to `/[slug]` page.
|
|
40
41
|
*/
|
|
41
42
|
currentStory?: ExtendedStory;
|
|
43
|
+
/**
|
|
44
|
+
* Optional: Embed stories data referenced from the current story content (currently used by Story Bookmark blocks)
|
|
45
|
+
*/
|
|
46
|
+
embedStories?: Record<Story['uuid'], Story>;
|
|
42
47
|
/**
|
|
43
48
|
* List of currently enabled newsroom languages, as well as company information translated for each language
|
|
44
49
|
*/
|
|
@@ -75,6 +80,7 @@ export function NewsroomContextProvider({
|
|
|
75
80
|
newsroom,
|
|
76
81
|
currentCategory,
|
|
77
82
|
currentStory,
|
|
83
|
+
embedStories,
|
|
78
84
|
companyInformation,
|
|
79
85
|
languages,
|
|
80
86
|
localeCode,
|
|
@@ -95,6 +101,7 @@ export function NewsroomContextProvider({
|
|
|
95
101
|
newsroom,
|
|
96
102
|
currentCategory,
|
|
97
103
|
currentStory,
|
|
104
|
+
embedStories,
|
|
98
105
|
companyInformation,
|
|
99
106
|
languages,
|
|
100
107
|
locale,
|
|
@@ -4,6 +4,7 @@ export * from './useCompanyInformation';
|
|
|
4
4
|
export * from './useCurrentCategory';
|
|
5
5
|
export * from './useCurrentLocale';
|
|
6
6
|
export * from './useCurrentStory';
|
|
7
|
+
export * from './useEmbedStory';
|
|
7
8
|
export * from './useGetLinkLocaleSlug';
|
|
8
9
|
export * from './useGetTranslationUrl';
|
|
9
10
|
export * from './useLanguages';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Story } from '@prezly/sdk';
|
|
2
|
+
|
|
3
|
+
import { useNewsroomContext } from './useNewsroomContext';
|
|
4
|
+
|
|
5
|
+
export function useEmbedStory(uuid: Story['uuid']) {
|
|
6
|
+
const context = useNewsroomContext();
|
|
7
|
+
|
|
8
|
+
if (!context.embedStories) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return context.embedStories[uuid];
|
|
13
|
+
}
|