@prezly/theme-kit-nextjs 1.16.0-0 → 1.16.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/adapter-nextjs/api-handlers/fetchGalleries.js +16 -66
- package/build/adapter-nextjs/api-handlers/fetchGalleries.js.map +1 -1
- package/build/adapter-nextjs/api-handlers/fetchStories.js +18 -68
- package/build/adapter-nextjs/api-handlers/fetchStories.js.map +1 -1
- package/build/adapter-nextjs/getNewsroomServerSideProps.js +9 -59
- package/build/adapter-nextjs/getNewsroomServerSideProps.js.map +1 -1
- package/build/adapter-nextjs/getNewsroomStaticProps.js +9 -59
- package/build/adapter-nextjs/getNewsroomStaticProps.js.map +1 -1
- package/build/adapter-nextjs/page-props/category.js +94 -195
- package/build/adapter-nextjs/page-props/category.js.map +1 -1
- package/build/adapter-nextjs/page-props/gallery.js +58 -135
- package/build/adapter-nextjs/page-props/gallery.js.map +1 -1
- package/build/adapter-nextjs/page-props/galleryAlbum.js +40 -132
- package/build/adapter-nextjs/page-props/galleryAlbum.js.map +1 -1
- package/build/adapter-nextjs/page-props/home.js +56 -135
- package/build/adapter-nextjs/page-props/home.js.map +1 -1
- package/build/adapter-nextjs/page-props/search.js +19 -96
- package/build/adapter-nextjs/page-props/search.js.map +1 -1
- package/build/adapter-nextjs/page-props/sitemap/SitemapBuilder.js +18 -18
- package/build/adapter-nextjs/page-props/sitemap/SitemapBuilder.js.map +1 -1
- package/build/adapter-nextjs/page-props/sitemap/createPaths.js +9 -40
- package/build/adapter-nextjs/page-props/sitemap/createPaths.js.map +1 -1
- package/build/adapter-nextjs/page-props/sitemap/getServerSideProps.js +28 -76
- package/build/adapter-nextjs/page-props/sitemap/getServerSideProps.js.map +1 -1
- package/build/adapter-nextjs/page-props/story.js +57 -159
- package/build/adapter-nextjs/page-props/story.js.map +1 -1
- package/build/adapter-nextjs/page-props/storyPreview.js +20 -81
- package/build/adapter-nextjs/page-props/storyPreview.js.map +1 -1
- package/build/adapter-nextjs/processRequest.js +8 -19
- package/build/adapter-nextjs/processRequest.js.map +1 -1
- package/build/adapter-nextjs/processStaticRequest.js +2 -13
- package/build/adapter-nextjs/processStaticRequest.js.map +1 -1
- package/build/components-nextjs/PageSeo/PageSeo.js +41 -52
- package/build/components-nextjs/PageSeo/PageSeo.js.map +1 -1
- package/build/components-nextjs/PageSeo/lib/getAbsoluteUrl.js +1 -1
- package/build/components-nextjs/PageSeo/lib/getAbsoluteUrl.js.map +1 -1
- package/build/components-nextjs/StorySeo/StorySeo.js +27 -31
- package/build/components-nextjs/StorySeo/StorySeo.js.map +1 -1
- package/build/components-nextjs/document.js +16 -45
- package/build/components-nextjs/document.js.map +1 -1
- package/build/data-fetching/api/PrezlyApi.js +170 -355
- package/build/data-fetching/api/PrezlyApi.js.map +1 -1
- package/build/data-fetching/api/getPrezlyApi.js +3 -3
- package/build/data-fetching/api/getPrezlyApi.js.map +1 -1
- package/build/data-fetching/api/queries.js +8 -32
- package/build/data-fetching/api/queries.js.map +1 -1
- package/build/data-fetching/lib/getAlgoliaSettings.js +5 -5
- package/build/data-fetching/lib/getAlgoliaSettings.js.map +1 -1
- package/build/data-fetching/lib/getEnvVariables.js +10 -21
- package/build/data-fetching/lib/getEnvVariables.js.map +1 -1
- package/build/data-fetching/lib/isUuid.js +1 -1
- package/build/data-fetching/lib/isUuid.js.map +1 -1
- package/build/infinite-loading/useInfiniteGalleriesLoading.js +25 -79
- package/build/infinite-loading/useInfiniteGalleriesLoading.js.map +1 -1
- package/build/infinite-loading/useInfiniteLoading.js +22 -94
- package/build/infinite-loading/useInfiniteLoading.js.map +1 -1
- package/build/infinite-loading/useInfiniteStoriesLoading.js +36 -95
- package/build/infinite-loading/useInfiniteStoriesLoading.js.map +1 -1
- package/build/intl/languages.js +35 -68
- package/build/intl/languages.js.map +1 -1
- package/build/intl/locale.js +13 -13
- package/build/intl/locale.js.map +1 -1
- package/build/intl/localeConfig.js +11 -32
- package/build/intl/localeConfig.js.map +1 -1
- package/build/intl/localeObject.js +30 -42
- package/build/intl/localeObject.js.map +1 -1
- package/build/newsroom-context/context.js +17 -29
- package/build/newsroom-context/context.js.map +1 -1
- package/build/newsroom-context/hooks/useAlgoliaSettings.js +2 -2
- package/build/newsroom-context/hooks/useAlgoliaSettings.js.map +1 -1
- package/build/newsroom-context/hooks/useCategories.js +2 -2
- package/build/newsroom-context/hooks/useCategories.js.map +1 -1
- package/build/newsroom-context/hooks/useCompanyInformation.js +2 -2
- package/build/newsroom-context/hooks/useCompanyInformation.js.map +1 -1
- package/build/newsroom-context/hooks/useCurrentCategory.js +2 -2
- package/build/newsroom-context/hooks/useCurrentCategory.js.map +1 -1
- package/build/newsroom-context/hooks/useCurrentLocale.js +2 -2
- package/build/newsroom-context/hooks/useCurrentLocale.js.map +1 -1
- package/build/newsroom-context/hooks/useCurrentStory.js +2 -2
- package/build/newsroom-context/hooks/useCurrentStory.js.map +1 -1
- package/build/newsroom-context/hooks/useGetLinkLocaleSlug.js +8 -8
- package/build/newsroom-context/hooks/useGetLinkLocaleSlug.js.map +1 -1
- package/build/newsroom-context/hooks/useGetTranslationUrl.js +14 -19
- package/build/newsroom-context/hooks/useGetTranslationUrl.js.map +1 -1
- package/build/newsroom-context/hooks/useLanguages.js +2 -2
- package/build/newsroom-context/hooks/useLanguages.js.map +1 -1
- package/build/newsroom-context/hooks/useNewsroom.js +2 -2
- package/build/newsroom-context/hooks/useNewsroom.js.map +1 -1
- package/build/newsroom-context/hooks/useNewsroomContext.js +3 -3
- package/build/newsroom-context/hooks/useNewsroomContext.js.map +1 -1
- package/build/sentry/client.js +1 -1
- package/build/sentry/client.js.map +1 -1
- package/build/sentry/common.js +2 -2
- package/build/sentry/common.js.map +1 -1
- package/build/sentry/server.js +1 -1
- package/build/sentry/server.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/utils/getAssetsUrl.js +2 -2
- package/build/utils/getAssetsUrl.js.map +1 -1
- package/build/utils/getDataRequestLink.js +1 -1
- package/build/utils/getDataRequestLink.js.map +1 -1
- package/build/utils/getLocalizedCategoryData.js +12 -23
- package/build/utils/getLocalizedCategoryData.js.map +1 -1
- package/build/utils/getNewsroomLogoUrl.js +4 -5
- package/build/utils/getNewsroomLogoUrl.js.map +1 -1
- package/build/utils/getPrivacyPortalUrl.js +2 -2
- package/build/utils/getPrivacyPortalUrl.js.map +1 -1
- package/build/utils/getStoryPublicationDate.js +1 -1
- package/build/utils/getStoryPublicationDate.js.map +1 -1
- package/build/utils/getUploadcareGroupUrl.js +2 -2
- package/build/utils/getUploadcareGroupUrl.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInfiniteStoriesLoading.js","sourceRoot":"","sources":["../../src/infinite-loading/useInfiniteStoriesLoading.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useInfiniteStoriesLoading.js","sourceRoot":"","sources":["../../src/infinite-loading/useInfiniteStoriesLoading.ts"],"names":[],"mappings":";;;AACA,iCAAkC;AAGlC,0DAAuD;AAGvD,6DAA0D;AAE1D,KAAK,UAAU,YAAY,CACvB,IAAY,EACZ,QAAgB,EAChB,QAAmB,EACnB,MAAqB,EACrB,OAAoC;IAEpC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;SACrC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACjB,IAAI;YACJ,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,GAAG,CAAC,MAAM,IAAI;gBACV,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE;aACxC,CAAC;SACL,CAAC;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACZ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CACrC,cAAmB,EACnB,UAA2B,EAC3B,QAAmB,EACnB,OAAoC;IAEpC,MAAM,aAAa,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAEzC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAA,uCAAkB,EAAI;QAChF,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACrC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CAClC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,CACV,CAAC;YACF,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,WAAW,EAAE,cAAc;QAC3B,UAAU;KACb,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,QAAQ,EAAE,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;SACf;IACL,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,OAAO;QACH,WAAW;QACX,SAAS;QACT,eAAe,EAAE,QAAQ;QACzB,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC;AAnCD,8DAmCC"}
|
package/build/intl/languages.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getShortestLocaleCode = exports.getCompanyInformation = exports.getLanguageFromStory = exports.getLanguageFromNextLocaleIsoCode = exports.getLanguageByShortRegionCode = exports.getLanguageByNeutralLocaleCode = exports.getLanguageByExactLocaleCode = exports.getUsedLanguages = exports.getDefaultLanguage = exports.getLanguageDisplayName = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const locale_1 = require("./locale");
|
|
5
|
+
const localeObject_1 = require("./localeObject");
|
|
6
6
|
function isOnlyCulture(culture, languages) {
|
|
7
|
-
|
|
8
|
-
var language_code = _a.locale.language_code;
|
|
9
|
-
return language_code === culture.language_code;
|
|
10
|
-
}).length;
|
|
7
|
+
const numberOfLanguages = languages.filter(({ locale: { language_code } }) => language_code === culture.language_code).length;
|
|
11
8
|
return numberOfLanguages === 1;
|
|
12
9
|
}
|
|
13
10
|
/**
|
|
@@ -23,9 +20,9 @@ function isOnlyCulture(culture, languages) {
|
|
|
23
20
|
* - -> English (Global), English (UK), Spanish
|
|
24
21
|
*/
|
|
25
22
|
function getLanguageDisplayName(language, languages) {
|
|
26
|
-
|
|
23
|
+
const { locale } = language;
|
|
27
24
|
if (isOnlyCulture(locale, languages)) {
|
|
28
|
-
|
|
25
|
+
const cultureNameIndex = locale.native_name.indexOf('(');
|
|
29
26
|
if (cultureNameIndex !== -1) {
|
|
30
27
|
return locale.native_name.slice(0, cultureNameIndex - 1);
|
|
31
28
|
}
|
|
@@ -37,74 +34,56 @@ exports.getLanguageDisplayName = getLanguageDisplayName;
|
|
|
37
34
|
* @returns Language set as default in the Newsroom Settings.
|
|
38
35
|
*/
|
|
39
36
|
function getDefaultLanguage(languages) {
|
|
40
|
-
return languages.find(
|
|
41
|
-
var is_default = _a.is_default;
|
|
42
|
-
return is_default;
|
|
43
|
-
}) || languages[0];
|
|
37
|
+
return languages.find(({ is_default }) => is_default) || languages[0];
|
|
44
38
|
}
|
|
45
39
|
exports.getDefaultLanguage = getDefaultLanguage;
|
|
46
40
|
/**
|
|
47
41
|
* @returns Only languages having at least one published story
|
|
48
42
|
*/
|
|
49
43
|
function getUsedLanguages(languages) {
|
|
50
|
-
return languages.filter(
|
|
44
|
+
return languages.filter((language) => language.public_stories_count > 0);
|
|
51
45
|
}
|
|
52
46
|
exports.getUsedLanguages = getUsedLanguages;
|
|
53
47
|
function getLanguageByExactLocaleCode(languages, locale) {
|
|
54
|
-
|
|
55
|
-
return languages.find(
|
|
56
|
-
var code = _a.code;
|
|
57
|
-
return code === localeCode;
|
|
58
|
-
});
|
|
48
|
+
const localeCode = locale.toUnderscoreCode();
|
|
49
|
+
return languages.find(({ code }) => code === localeCode);
|
|
59
50
|
}
|
|
60
51
|
exports.getLanguageByExactLocaleCode = getLanguageByExactLocaleCode;
|
|
61
52
|
// See https://github.com/prezly/prezly/blob/master/lib/model/CulturePeer.php#L123
|
|
62
53
|
function getLanguageByNeutralLocaleCode(languages, locale) {
|
|
63
|
-
|
|
54
|
+
const neutralLanguageCode = locale.toNeutralLanguageCode();
|
|
64
55
|
// Prefer default language
|
|
65
|
-
|
|
56
|
+
const defaultLanguage = getDefaultLanguage(languages);
|
|
66
57
|
// TODO: This doesn't align with other methods logic
|
|
67
58
|
if (defaultLanguage.code === locale.toUnderscoreCode()) {
|
|
68
59
|
return defaultLanguage;
|
|
69
60
|
}
|
|
70
61
|
// Try to look in used cultures first (giving priority to used ones)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
var code = _a.code;
|
|
74
|
-
return localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === neutralLanguageCode;
|
|
75
|
-
});
|
|
62
|
+
const usedLanguages = getUsedLanguages(languages);
|
|
63
|
+
const usedLanguage = usedLanguages.find(({ code }) => localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === neutralLanguageCode);
|
|
76
64
|
if (usedLanguage) {
|
|
77
65
|
return usedLanguage;
|
|
78
66
|
}
|
|
79
67
|
// Search in all languages
|
|
80
|
-
return languages.find(
|
|
81
|
-
var code = _a.code;
|
|
82
|
-
return localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === neutralLanguageCode;
|
|
83
|
-
});
|
|
68
|
+
return languages.find(({ code }) => localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === neutralLanguageCode);
|
|
84
69
|
}
|
|
85
70
|
exports.getLanguageByNeutralLocaleCode = getLanguageByNeutralLocaleCode;
|
|
86
71
|
// See https://github.com/prezly/prezly/blob/master/lib/model/CulturePeer.php#L159
|
|
87
72
|
function getLanguageByShortRegionCode(languages, locale) {
|
|
88
|
-
|
|
73
|
+
const shortRegionCode = locale.toRegionCode();
|
|
89
74
|
// Prefer default language
|
|
90
|
-
|
|
75
|
+
const defaultLanguage = getDefaultLanguage(languages);
|
|
91
76
|
if (localeObject_1.LocaleObject.fromAnyCode(defaultLanguage.code).toRegionCode() === shortRegionCode) {
|
|
92
77
|
return defaultLanguage;
|
|
93
78
|
}
|
|
94
79
|
// Try to look in used cultures first (giving priority to used ones)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
var code = _a.code;
|
|
98
|
-
return localeObject_1.LocaleObject.fromAnyCode(code).toRegionCode() === shortRegionCode;
|
|
99
|
-
});
|
|
80
|
+
const usedLanguages = getUsedLanguages(languages);
|
|
81
|
+
const usedLanguage = usedLanguages.find(({ code }) => localeObject_1.LocaleObject.fromAnyCode(code).toRegionCode() === shortRegionCode);
|
|
100
82
|
if (usedLanguage) {
|
|
101
83
|
return usedLanguage;
|
|
102
84
|
}
|
|
103
85
|
// Search in all languages
|
|
104
|
-
return languages.find(
|
|
105
|
-
var code = _a.code;
|
|
106
|
-
return localeObject_1.LocaleObject.fromAnyCode(code).toRegionCode() === shortRegionCode;
|
|
107
|
-
});
|
|
86
|
+
return languages.find(({ code }) => localeObject_1.LocaleObject.fromAnyCode(code).toRegionCode() === shortRegionCode);
|
|
108
87
|
}
|
|
109
88
|
exports.getLanguageByShortRegionCode = getLanguageByShortRegionCode;
|
|
110
89
|
/**
|
|
@@ -112,12 +91,12 @@ exports.getLanguageByShortRegionCode = getLanguageByShortRegionCode;
|
|
|
112
91
|
* Pulled from https://github.com/prezly/prezly/blob/de9900d9890a33502780494aa3fb85c9a732b3c3/lib/model/CulturePeer.php#L91-L114
|
|
113
92
|
*/
|
|
114
93
|
function getLanguageFromNextLocaleIsoCode(languages, nextLocaleIsoCode) {
|
|
115
|
-
|
|
94
|
+
const defaultLanguage = getDefaultLanguage(languages);
|
|
116
95
|
if (!nextLocaleIsoCode || nextLocaleIsoCode === locale_1.DUMMY_DEFAULT_LOCALE) {
|
|
117
96
|
return defaultLanguage;
|
|
118
97
|
}
|
|
119
|
-
|
|
120
|
-
|
|
98
|
+
const locale = localeObject_1.LocaleObject.fromAnyCode(nextLocaleIsoCode);
|
|
99
|
+
let targetLanguage;
|
|
121
100
|
if (nextLocaleIsoCode.length >= 2 && nextLocaleIsoCode.length <= 4) {
|
|
122
101
|
// The order of methods here is reversed from `getShortestLocaleCode`, so that the logic "unwraps" the possible variants with no collisions
|
|
123
102
|
targetLanguage =
|
|
@@ -132,18 +111,15 @@ function getLanguageFromNextLocaleIsoCode(languages, nextLocaleIsoCode) {
|
|
|
132
111
|
}
|
|
133
112
|
exports.getLanguageFromNextLocaleIsoCode = getLanguageFromNextLocaleIsoCode;
|
|
134
113
|
function getLanguageFromStory(languages, story) {
|
|
135
|
-
|
|
136
|
-
return languages.find(
|
|
137
|
-
var code = _a.code;
|
|
138
|
-
return code === storyLocaleCode;
|
|
139
|
-
});
|
|
114
|
+
const { code: storyLocaleCode } = story.culture;
|
|
115
|
+
return languages.find(({ code }) => code === storyLocaleCode);
|
|
140
116
|
}
|
|
141
117
|
exports.getLanguageFromStory = getLanguageFromStory;
|
|
142
118
|
/**
|
|
143
119
|
* Extracts company information for the selected locale
|
|
144
120
|
*/
|
|
145
121
|
function getCompanyInformation(languages, locale) {
|
|
146
|
-
|
|
122
|
+
const currentLanguage = getLanguageByExactLocaleCode(languages, locale) || getDefaultLanguage(languages);
|
|
147
123
|
return currentLanguage.company_information;
|
|
148
124
|
}
|
|
149
125
|
exports.getCompanyInformation = getCompanyInformation;
|
|
@@ -156,35 +132,26 @@ exports.getCompanyInformation = getCompanyInformation;
|
|
|
156
132
|
* @param locale A LocaleObject constructed from FULL locale code (taken straight from the selected language)
|
|
157
133
|
*/
|
|
158
134
|
function getShortestLocaleCode(languages, locale) {
|
|
159
|
-
|
|
160
|
-
|
|
135
|
+
const localeCode = locale.toUnderscoreCode();
|
|
136
|
+
const defaultLanguage = getDefaultLanguage(languages);
|
|
161
137
|
// If it's a default locale, return false (no locale needed in URL)
|
|
162
138
|
if (localeCode === defaultLanguage.code) {
|
|
163
139
|
return false;
|
|
164
140
|
}
|
|
165
141
|
// Try shorting to neutral language code
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === neutralLanguageCode ||
|
|
170
|
-
code === neutralLanguageCode;
|
|
171
|
-
});
|
|
142
|
+
const neutralLanguageCode = locale.toNeutralLanguageCode();
|
|
143
|
+
const matchingLanguagesByNeutralCode = languages.filter(({ code }) => localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === neutralLanguageCode ||
|
|
144
|
+
code === neutralLanguageCode);
|
|
172
145
|
if (matchingLanguagesByNeutralCode.length === 1) {
|
|
173
146
|
return neutralLanguageCode;
|
|
174
147
|
}
|
|
175
148
|
// Try shorting to region code
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
var code = _a.code;
|
|
179
|
-
return localeObject_1.LocaleObject.fromAnyCode(code).toRegionCode() === shortRegionCode;
|
|
180
|
-
});
|
|
149
|
+
const shortRegionCode = locale.toRegionCode();
|
|
150
|
+
const matchingLanguagesByRegionCode = languages.filter(({ code }) => localeObject_1.LocaleObject.fromAnyCode(code).toRegionCode() === shortRegionCode);
|
|
181
151
|
// Prevent collision with neutral language codes
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
return localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === lowerCasedShortRegionCode ||
|
|
186
|
-
code === lowerCasedShortRegionCode;
|
|
187
|
-
});
|
|
152
|
+
const lowerCasedShortRegionCode = shortRegionCode.toLowerCase();
|
|
153
|
+
const mathchingNeutralLanguagesByRegionCode = languages.filter(({ code }) => localeObject_1.LocaleObject.fromAnyCode(code).toNeutralLanguageCode() === lowerCasedShortRegionCode ||
|
|
154
|
+
code === lowerCasedShortRegionCode);
|
|
188
155
|
if (matchingLanguagesByRegionCode.length === 1 &&
|
|
189
156
|
// If there are 2 or more matching neutral languages, it means that there are no languages that can be shortened to neutral code
|
|
190
157
|
mathchingNeutralLanguagesByRegionCode.length !== 1 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/intl/languages.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/intl/languages.ts"],"names":[],"mappings":"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"}
|
package/build/intl/locale.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getLocaleDirection = exports.getRedirectToCanonicalLocale = exports.getSupportedLocaleIsoCode = exports.DUMMY_DEFAULT_LOCALE = exports.DEFAULT_LOCALE = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const querystring_1 = require("querystring");
|
|
5
|
+
const localeObject_1 = require("./localeObject");
|
|
6
6
|
exports.DEFAULT_LOCALE = 'en';
|
|
7
7
|
// We use pseudo locale used for localization testing, to reliably determine if we need to fallback to the default newsroom language
|
|
8
8
|
exports.DUMMY_DEFAULT_LOCALE = 'qps-ploc';
|
|
@@ -10,7 +10,7 @@ exports.DUMMY_DEFAULT_LOCALE = 'qps-ploc';
|
|
|
10
10
|
* This a list of locales that Prezly has translations for. Each code represents a language file in the `@prezly/themes-intl-messages` package.
|
|
11
11
|
* See https://github.com/prezly/themes-intl-messages for more info.
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
const SUPPORTED_LOCALES = [
|
|
14
14
|
'af',
|
|
15
15
|
'ar',
|
|
16
16
|
'az',
|
|
@@ -64,13 +64,13 @@ var SUPPORTED_LOCALES = [
|
|
|
64
64
|
* See https://github.com/prezly/theme-nextjs-bea/blob/main/utils/lang.ts for a usage example.
|
|
65
65
|
*/
|
|
66
66
|
function getSupportedLocaleIsoCode(locale) {
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
const localeIsoCode = locale.toHyphenCode();
|
|
68
|
+
const isSupportedLocale = localeIsoCode.length >= 2 && SUPPORTED_LOCALES.includes(localeIsoCode);
|
|
69
69
|
if (isSupportedLocale) {
|
|
70
70
|
return localeIsoCode;
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
const language = locale.toNeutralLanguageCode();
|
|
73
|
+
const isSupportedLanguage = SUPPORTED_LOCALES.includes(language);
|
|
74
74
|
if (isSupportedLanguage) {
|
|
75
75
|
return language;
|
|
76
76
|
}
|
|
@@ -92,16 +92,16 @@ function getRedirectToCanonicalLocale(shortestLocaleCode, nextLocaleIsoCode, red
|
|
|
92
92
|
if (!nextLocaleIsoCode || nextLocaleIsoCode === exports.DUMMY_DEFAULT_LOCALE) {
|
|
93
93
|
return undefined;
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
const shortestLocaleSlug = shortestLocaleCode
|
|
96
96
|
? localeObject_1.LocaleObject.fromAnyCode(shortestLocaleCode).toUrlSlug()
|
|
97
97
|
: shortestLocaleCode;
|
|
98
98
|
if (shortestLocaleSlug !== nextLocaleIsoCode) {
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
const prefixedPath = redirectPath && !redirectPath.startsWith('/') ? `/${redirectPath}` : redirectPath;
|
|
100
|
+
const urlQuery = query ? `?${(0, querystring_1.stringify)(query)}` : '';
|
|
101
101
|
return {
|
|
102
102
|
destination: shortestLocaleSlug
|
|
103
|
-
?
|
|
104
|
-
:
|
|
103
|
+
? `/${shortestLocaleSlug}${prefixedPath}${urlQuery}`
|
|
104
|
+
: `${prefixedPath}${urlQuery}`,
|
|
105
105
|
permanent: false,
|
|
106
106
|
};
|
|
107
107
|
}
|
|
@@ -109,7 +109,7 @@ function getRedirectToCanonicalLocale(shortestLocaleCode, nextLocaleIsoCode, red
|
|
|
109
109
|
}
|
|
110
110
|
exports.getRedirectToCanonicalLocale = getRedirectToCanonicalLocale;
|
|
111
111
|
function getLocaleDirection(locale) {
|
|
112
|
-
|
|
112
|
+
const neutralLanguageCode = locale.toNeutralLanguageCode();
|
|
113
113
|
if (['ar', 'he', 'ur'].includes(neutralLanguageCode)) {
|
|
114
114
|
return 'rtl';
|
|
115
115
|
}
|
package/build/intl/locale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
-
if (ar || !(i in from)) {
|
|
21
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
-
ar[i] = from[i];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
-
};
|
|
27
2
|
/**
|
|
28
3
|
* This list is pulled from the main Prezly application. The underscores are replaced with dashes.
|
|
29
4
|
* Together with permutation performed lower in the code,
|
|
30
5
|
* the exported list represents all of the possible locale codes that Next.js theme application might accept.
|
|
31
6
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
7
|
+
const supportedLocales = require('./localeList');
|
|
8
|
+
const lowercaseLocales = supportedLocales.map((l) => l.toLowerCase());
|
|
34
9
|
// Get all permutations for the shorter locale codes supported by Prezly (e.g. short region codes and neutral language codes)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
.
|
|
38
|
-
|
|
39
|
-
|
|
10
|
+
const lowercaseLocalPermutations = Array.from(new Set([
|
|
11
|
+
...lowercaseLocales,
|
|
12
|
+
...lowercaseLocales.map((code) => code.split('-')[0]),
|
|
13
|
+
...lowercaseLocales
|
|
14
|
+
.map((code) => code.split('-')[1])
|
|
15
|
+
.filter(Boolean)
|
|
16
|
+
// Remove number-only codes from possible permutations (like `419` for `es-419`)
|
|
17
|
+
.filter((code) => Number.isNaN(Number(code))),
|
|
18
|
+
])).sort();
|
|
40
19
|
module.exports = lowercaseLocalPermutations;
|
|
41
20
|
//# sourceMappingURL=localeConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localeConfig.js","sourceRoot":"","sources":["../../src/intl/localeConfig.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"localeConfig.js","sourceRoot":"","sources":["../../src/intl/localeConfig.js"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEjD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAEtE,6HAA6H;AAC7H,MAAM,0BAA0B,GAAG,KAAK,CAAC,IAAI,CACzC,IAAI,GAAG,CAAC;IACJ,GAAG,gBAAgB;IACnB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,GAAG,gBAAgB;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC,MAAM,CAAC,OAAO,CAAC;QAChB,gFAAgF;SAC/E,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CACpD,CAAC,CACL,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,CAAC,OAAO,GAAG,0BAA0B,CAAC"}
|
|
@@ -1,40 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
4
|
};
|
|
21
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
6
|
exports.LocaleObject = void 0;
|
|
23
|
-
|
|
7
|
+
const localeConfig_1 = __importDefault(require("./localeConfig"));
|
|
24
8
|
/**
|
|
25
9
|
* This class is created to simplify working with locales and transforming between different locale code formats.
|
|
26
10
|
* Prezly API uses underscore-codes, while most frontend application tend to use hyphen-codes or slugs.
|
|
27
11
|
* Note that `fromAnyCode` constructor only accepts locales supported by Prezly backend. See `localeConfig` for reference.
|
|
28
12
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
13
|
+
class LocaleObject {
|
|
14
|
+
/**
|
|
15
|
+
* Hyphen-separated locale code.
|
|
16
|
+
* Examples: `nl-BE`, `en-US`, `fr`, `fil`
|
|
17
|
+
*/
|
|
18
|
+
localeCode;
|
|
19
|
+
constructor(localeCode) {
|
|
31
20
|
if (!/^([a-z]{2,3})(-[a-z\d]{1,4})?$/i.test(localeCode)) {
|
|
32
21
|
throw new Error('Invalid locale code provided!');
|
|
33
22
|
}
|
|
34
|
-
|
|
23
|
+
const [language, region] = localeCode.split('-');
|
|
35
24
|
if (region) {
|
|
36
25
|
// Workaround for `zh-Hant` locale, which is the only locale with non-uppercase region part
|
|
37
|
-
|
|
26
|
+
const regionSuffix = region === 'hant' ? 'Hant' : region.toUpperCase();
|
|
38
27
|
this.localeCode = [language, regionSuffix].join('-');
|
|
39
28
|
}
|
|
40
29
|
else {
|
|
@@ -48,56 +37,55 @@ var LocaleObject = /** @class */ (function () {
|
|
|
48
37
|
* - Underscore-codes: `nl_BE`, `en_US`, `fr`, `fil`
|
|
49
38
|
* - Slugs: `nl-be`, `en-us`, `fr`, `fil`
|
|
50
39
|
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
static fromAnyCode(localeCode) {
|
|
41
|
+
const lowercaseCode = localeCode.toLowerCase().replace('_', '-');
|
|
42
|
+
const foundCode = localeConfig_1.default.find((code) => code === lowercaseCode);
|
|
54
43
|
if (!foundCode) {
|
|
55
|
-
throw new Error(
|
|
44
|
+
throw new Error(`Unsupported locale code provided: "${lowercaseCode}"`);
|
|
56
45
|
}
|
|
57
46
|
return new LocaleObject(foundCode);
|
|
58
|
-
}
|
|
47
|
+
}
|
|
59
48
|
/**
|
|
60
49
|
* @returns Code formatted into hyphen format: `nl-BE`, `en-US`, `fr`, `fil`
|
|
61
50
|
*/
|
|
62
|
-
|
|
51
|
+
toHyphenCode() {
|
|
63
52
|
return this.localeCode;
|
|
64
|
-
}
|
|
53
|
+
}
|
|
65
54
|
/**
|
|
66
55
|
* @returns Code formatted into underscore format, as expected by Prezly API: `nl_BE`, `en_US`, `fr`, `fil`
|
|
67
56
|
*/
|
|
68
|
-
|
|
57
|
+
toUnderscoreCode() {
|
|
69
58
|
return this.localeCode.replace('-', '_');
|
|
70
|
-
}
|
|
59
|
+
}
|
|
71
60
|
/**
|
|
72
61
|
* @returns Code formatted to a URL-friendly lowercase slug format: `nl-be`, `en-us`, `fr`, `fil`
|
|
73
62
|
*/
|
|
74
|
-
|
|
63
|
+
toUrlSlug() {
|
|
75
64
|
return this.localeCode.toLowerCase();
|
|
76
|
-
}
|
|
65
|
+
}
|
|
77
66
|
/**
|
|
78
67
|
* @returns Only the language part of the code without culture/region part: `nl`, `en`, `fr`
|
|
79
68
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
69
|
+
toNeutralLanguageCode() {
|
|
70
|
+
const [language] = this.localeCode.split('-');
|
|
82
71
|
return language;
|
|
83
|
-
}
|
|
72
|
+
}
|
|
84
73
|
/**
|
|
85
74
|
* @returns Only the culture/regtion part without the language part: `be`, `us`, `fr`
|
|
86
75
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
76
|
+
toRegionCode() {
|
|
77
|
+
const [language, region] = this.localeCode.split('-');
|
|
89
78
|
if (!region) {
|
|
90
79
|
return language.toUpperCase();
|
|
91
80
|
}
|
|
92
81
|
return region.toUpperCase();
|
|
93
|
-
}
|
|
82
|
+
}
|
|
94
83
|
/**
|
|
95
84
|
* Check if two LocaleObject instances are representing the same locale code.
|
|
96
85
|
*/
|
|
97
|
-
|
|
86
|
+
isEqual(anotherLocale) {
|
|
98
87
|
return anotherLocale.toHyphenCode() === this.localeCode;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
}());
|
|
88
|
+
}
|
|
89
|
+
}
|
|
102
90
|
exports.LocaleObject = LocaleObject;
|
|
103
91
|
//# sourceMappingURL=localeObject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localeObject.js","sourceRoot":"","sources":["../../src/intl/localeObject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"localeObject.js","sourceRoot":"","sources":["../../src/intl/localeObject.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAE1C;;;;GAIG;AACH,MAAa,YAAY;IACrB;;;OAGG;IACK,UAAU,CAAS;IAE3B,YAAoB,UAAkB;QAClC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QAED,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE;YACR,2FAA2F;YAC3F,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAEvE,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC9B;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,UAAkB;QACxC,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,sBAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,GAAG,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,qBAAqB;QACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,YAAY;QACf,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;SACjC;QAED,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,aAA2B;QACtC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC;IAC5D,CAAC;CACJ;AA3FD,oCA2FC"}
|
|
@@ -1,40 +1,28 @@
|
|
|
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
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.NewsroomContextProvider = exports.NewsroomContext = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const intl_1 = require("../intl");
|
|
18
7
|
exports.NewsroomContext = (0, react_1.createContext)(undefined);
|
|
19
8
|
/**
|
|
20
9
|
* This context provides common Newsroom information retrieved by `getNewsroomServerSideProps` helper.
|
|
21
10
|
* Please refer to the `NewsroomContextType` definition for more info on what's exposed from the context.
|
|
22
11
|
*/
|
|
23
|
-
function NewsroomContextProvider(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
} }, { children: children })));
|
|
12
|
+
function NewsroomContextProvider({ categories, contacts, newsroom, currentCategory, currentStory, companyInformation, languages, localeCode, themePreset, algoliaSettings, children, }) {
|
|
13
|
+
const locale = (0, react_1.useMemo)(() => intl_1.LocaleObject.fromAnyCode(localeCode || intl_1.DEFAULT_LOCALE), [localeCode]);
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)(exports.NewsroomContext.Provider, { value: {
|
|
15
|
+
categories,
|
|
16
|
+
contacts,
|
|
17
|
+
newsroom,
|
|
18
|
+
currentCategory,
|
|
19
|
+
currentStory,
|
|
20
|
+
companyInformation,
|
|
21
|
+
languages,
|
|
22
|
+
locale,
|
|
23
|
+
themePreset,
|
|
24
|
+
algoliaSettings,
|
|
25
|
+
}, children: children }));
|
|
38
26
|
}
|
|
39
27
|
exports.NewsroomContextProvider = NewsroomContextProvider;
|
|
40
28
|
//# sourceMappingURL=context.js.map
|
|
@@ -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":";;;;AAUA,iCAA+C;AAG/C,kCAAuD;AAoD1C,QAAA,eAAe,GAAG,IAAA,qBAAa,EAAkC,SAAS,CAAC,CAAC;AAEzF;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,EACpC,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,WAAW,EACX,eAAe,EACf,QAAQ,GAC8B;IACtC,MAAM,MAAM,GAAG,IAAA,eAAO,EAClB,GAAG,EAAE,CAAC,mBAAY,CAAC,WAAW,CAAC,UAAU,IAAI,qBAAc,CAAC,EAC5D,CAAC,UAAU,CAAC,CACf,CAAC;IAEF,OAAO,CACH,uBAAC,uBAAe,CAAC,QAAQ,IACrB,KAAK,EAAE;YACH,UAAU;YACV,QAAQ;YACR,QAAQ;YACR,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,SAAS;YACT,MAAM;YACN,WAAW;YACX,eAAe;SAClB,YAEA,QAAQ,GACc,CAC9B,CAAC;AACN,CAAC;AApCD,0DAoCC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useAlgoliaSettings = void 0;
|
|
4
|
-
|
|
4
|
+
const useNewsroomContext_1 = require("./useNewsroomContext");
|
|
5
5
|
function useAlgoliaSettings() {
|
|
6
|
-
|
|
6
|
+
const context = (0, useNewsroomContext_1.useNewsroomContext)();
|
|
7
7
|
return context.algoliaSettings;
|
|
8
8
|
}
|
|
9
9
|
exports.useAlgoliaSettings = useAlgoliaSettings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAlgoliaSettings.js","sourceRoot":"","sources":["../../../src/newsroom-context/hooks/useAlgoliaSettings.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"useAlgoliaSettings.js","sourceRoot":"","sources":["../../../src/newsroom-context/hooks/useAlgoliaSettings.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAE1D,SAAgB,kBAAkB;IAC9B,MAAM,OAAO,GAAG,IAAA,uCAAkB,GAAE,CAAC;IAErC,OAAO,OAAO,CAAC,eAAe,CAAC;AACnC,CAAC;AAJD,gDAIC"}
|