@prezly/theme-kit-nextjs 2.0.1-2 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/README.md +15 -15
  2. package/build/adapter-nextjs/api-handlers/fetchGalleries.js +23 -27
  3. package/build/adapter-nextjs/api-handlers/fetchGalleries.js.map +1 -1
  4. package/build/adapter-nextjs/api-handlers/fetchStories.js +25 -37
  5. package/build/adapter-nextjs/api-handlers/fetchStories.js.map +1 -1
  6. package/build/adapter-nextjs/api-handlers/index.js +8 -2
  7. package/build/adapter-nextjs/api-handlers/index.js.map +1 -1
  8. package/build/adapter-nextjs/getNewsroomServerSideProps.js +15 -16
  9. package/build/adapter-nextjs/getNewsroomServerSideProps.js.map +1 -1
  10. package/build/adapter-nextjs/getNewsroomStaticProps.js +15 -15
  11. package/build/adapter-nextjs/getNewsroomStaticProps.js.map +1 -1
  12. package/build/adapter-nextjs/index.js +23 -6
  13. package/build/adapter-nextjs/index.js.map +1 -1
  14. package/build/adapter-nextjs/page-props/category.js +100 -118
  15. package/build/adapter-nextjs/page-props/category.js.map +1 -1
  16. package/build/adapter-nextjs/page-props/gallery.js +68 -87
  17. package/build/adapter-nextjs/page-props/gallery.js.map +1 -1
  18. package/build/adapter-nextjs/page-props/galleryAlbum.js +53 -64
  19. package/build/adapter-nextjs/page-props/galleryAlbum.js.map +1 -1
  20. package/build/adapter-nextjs/page-props/home.js +69 -83
  21. package/build/adapter-nextjs/page-props/home.js.map +1 -1
  22. package/build/adapter-nextjs/page-props/index.js +42 -8
  23. package/build/adapter-nextjs/page-props/index.js.map +1 -1
  24. package/build/adapter-nextjs/page-props/lib/types.js +3 -1
  25. package/build/adapter-nextjs/page-props/search.js +31 -25
  26. package/build/adapter-nextjs/page-props/search.js.map +1 -1
  27. package/build/adapter-nextjs/page-props/sitemap/SitemapBuilder.js +50 -29
  28. package/build/adapter-nextjs/page-props/sitemap/SitemapBuilder.js.map +1 -1
  29. package/build/adapter-nextjs/page-props/sitemap/createPaths.js +19 -13
  30. package/build/adapter-nextjs/page-props/sitemap/createPaths.js.map +1 -1
  31. package/build/adapter-nextjs/page-props/sitemap/getServerSideProps.js +35 -33
  32. package/build/adapter-nextjs/page-props/sitemap/getServerSideProps.js.map +1 -1
  33. package/build/adapter-nextjs/page-props/sitemap/index.js +25 -4
  34. package/build/adapter-nextjs/page-props/sitemap/index.js.map +1 -1
  35. package/build/adapter-nextjs/page-props/sitemap/types.js +3 -1
  36. package/build/adapter-nextjs/page-props/story.js +64 -77
  37. package/build/adapter-nextjs/page-props/story.js.map +1 -1
  38. package/build/adapter-nextjs/page-props/storyPreview.js +26 -27
  39. package/build/adapter-nextjs/page-props/storyPreview.js.map +1 -1
  40. package/build/adapter-nextjs/processRequest.js +25 -34
  41. package/build/adapter-nextjs/processRequest.js.map +1 -1
  42. package/build/adapter-nextjs/processStaticRequest.js +16 -19
  43. package/build/adapter-nextjs/processStaticRequest.js.map +1 -1
  44. package/build/components-nextjs/PageSeo/PageSeo.js +78 -84
  45. package/build/components-nextjs/PageSeo/PageSeo.js.map +1 -1
  46. package/build/components-nextjs/PageSeo/index.js +21 -2
  47. package/build/components-nextjs/PageSeo/index.js.map +1 -1
  48. package/build/components-nextjs/PageSeo/lib/getAbsoluteUrl.js +10 -5
  49. package/build/components-nextjs/PageSeo/lib/getAbsoluteUrl.js.map +1 -1
  50. package/build/components-nextjs/PageSeo/lib/types.js +3 -1
  51. package/build/components-nextjs/StorySeo/StorySeo.js +49 -69
  52. package/build/components-nextjs/StorySeo/StorySeo.js.map +1 -1
  53. package/build/components-nextjs/StorySeo/index.js +6 -1
  54. package/build/components-nextjs/StorySeo/index.js.map +1 -1
  55. package/build/components-nextjs/document.d.ts +2 -4
  56. package/build/components-nextjs/document.js +48 -34
  57. package/build/components-nextjs/document.js.map +1 -1
  58. package/build/components-nextjs/index.js +10 -3
  59. package/build/components-nextjs/index.js.map +1 -1
  60. package/build/data-fetching/api/PrezlyApi.js +191 -207
  61. package/build/data-fetching/api/PrezlyApi.js.map +1 -1
  62. package/build/data-fetching/api/getPrezlyApi.js +21 -21
  63. package/build/data-fetching/api/getPrezlyApi.js.map +1 -1
  64. package/build/data-fetching/api/index.js +18 -1
  65. package/build/data-fetching/api/index.js.map +1 -1
  66. package/build/data-fetching/api/queries.js +47 -76
  67. package/build/data-fetching/api/queries.js.map +1 -1
  68. package/build/data-fetching/index.js +20 -3
  69. package/build/data-fetching/index.js.map +1 -1
  70. package/build/data-fetching/lib/getAlgoliaSettings.js +22 -22
  71. package/build/data-fetching/lib/getAlgoliaSettings.js.map +1 -1
  72. package/build/data-fetching/lib/getEnvVariables.js +38 -35
  73. package/build/data-fetching/lib/getEnvVariables.js.map +1 -1
  74. package/build/data-fetching/lib/index.js +12 -4
  75. package/build/data-fetching/lib/index.js.map +1 -1
  76. package/build/data-fetching/lib/isSdkError.js +8 -3
  77. package/build/data-fetching/lib/isSdkError.js.map +1 -1
  78. package/build/data-fetching/lib/isUuid.js +8 -3
  79. package/build/data-fetching/lib/isUuid.js.map +1 -1
  80. package/build/data-fetching/types.js +3 -1
  81. package/build/index.js +26 -9
  82. package/build/index.js.map +1 -1
  83. package/build/infinite-loading/index.js +25 -4
  84. package/build/infinite-loading/index.js.map +1 -1
  85. package/build/infinite-loading/types.js +3 -1
  86. package/build/infinite-loading/useInfiniteGalleriesLoading.js +37 -42
  87. package/build/infinite-loading/useInfiniteGalleriesLoading.js.map +1 -1
  88. package/build/infinite-loading/useInfiniteLoading.js +43 -50
  89. package/build/infinite-loading/useInfiniteLoading.js.map +1 -1
  90. package/build/infinite-loading/useInfiniteStoriesLoading.js +50 -56
  91. package/build/infinite-loading/useInfiniteStoriesLoading.js.map +1 -1
  92. package/build/intl/index.d.ts +1 -1
  93. package/build/intl/index.js +26 -4
  94. package/build/intl/index.js.map +1 -1
  95. package/build/intl/languages.js +122 -146
  96. package/build/intl/languages.js.map +1 -1
  97. package/build/intl/locale.d.ts +1 -0
  98. package/build/intl/locale.js +108 -52
  99. package/build/intl/locale.js.map +1 -1
  100. package/build/intl/localeConfig.d.ts +2 -3
  101. package/build/intl/localeConfig.js +14 -20
  102. package/build/intl/localeConfig.js.map +1 -1
  103. package/build/intl/localeList.d.ts +2 -4
  104. package/build/intl/localeList.js +109 -1
  105. package/build/intl/localeList.js.map +1 -1
  106. package/build/intl/localeObject.js +82 -80
  107. package/build/intl/localeObject.js.map +1 -1
  108. package/build/newsroom-context/context.js +25 -35
  109. package/build/newsroom-context/context.js.map +1 -1
  110. package/build/newsroom-context/hooks/index.js +28 -11
  111. package/build/newsroom-context/hooks/index.js.map +1 -1
  112. package/build/newsroom-context/hooks/useAlgoliaSettings.js +10 -5
  113. package/build/newsroom-context/hooks/useAlgoliaSettings.js.map +1 -1
  114. package/build/newsroom-context/hooks/useCategories.js +10 -5
  115. package/build/newsroom-context/hooks/useCategories.js.map +1 -1
  116. package/build/newsroom-context/hooks/useCompanyInformation.js +10 -5
  117. package/build/newsroom-context/hooks/useCompanyInformation.js.map +1 -1
  118. package/build/newsroom-context/hooks/useCurrentCategory.js +10 -5
  119. package/build/newsroom-context/hooks/useCurrentCategory.js.map +1 -1
  120. package/build/newsroom-context/hooks/useCurrentLocale.js +10 -5
  121. package/build/newsroom-context/hooks/useCurrentLocale.js.map +1 -1
  122. package/build/newsroom-context/hooks/useCurrentStory.js +10 -5
  123. package/build/newsroom-context/hooks/useCurrentStory.js.map +1 -1
  124. package/build/newsroom-context/hooks/useGetLinkLocaleSlug.js +21 -17
  125. package/build/newsroom-context/hooks/useGetLinkLocaleSlug.js.map +1 -1
  126. package/build/newsroom-context/hooks/useGetTranslationUrl.js +56 -52
  127. package/build/newsroom-context/hooks/useGetTranslationUrl.js.map +1 -1
  128. package/build/newsroom-context/hooks/useLanguages.js +10 -5
  129. package/build/newsroom-context/hooks/useLanguages.js.map +1 -1
  130. package/build/newsroom-context/hooks/useNewsroom.js +10 -5
  131. package/build/newsroom-context/hooks/useNewsroom.js.map +1 -1
  132. package/build/newsroom-context/hooks/useNewsroomContext.js +16 -11
  133. package/build/newsroom-context/hooks/useNewsroomContext.js.map +1 -1
  134. package/build/newsroom-context/index.d.ts +1 -2
  135. package/build/newsroom-context/index.js +22 -2
  136. package/build/newsroom-context/index.js.map +1 -1
  137. package/build/sentry/client.js +9 -4
  138. package/build/sentry/client.js.map +1 -1
  139. package/build/sentry/common.js +29 -26
  140. package/build/sentry/common.js.map +1 -1
  141. package/build/sentry/index.js +8 -2
  142. package/build/sentry/index.js.map +1 -1
  143. package/build/sentry/server.js +9 -4
  144. package/build/sentry/server.js.map +1 -1
  145. package/build/tsconfig.tsbuildinfo +1 -0
  146. package/build/types.js +3 -1
  147. package/build/utils/boilerplate.js +22 -7
  148. package/build/utils/boilerplate.js.map +1 -1
  149. package/build/utils/constants.js +7 -3
  150. package/build/utils/constants.js.map +1 -1
  151. package/build/utils/getAssetsUrl.js +9 -4
  152. package/build/utils/getAssetsUrl.js.map +1 -1
  153. package/build/utils/getDataRequestLink.js +12 -6
  154. package/build/utils/getDataRequestLink.js.map +1 -1
  155. package/build/utils/getLocalizedCategoryData.js +33 -33
  156. package/build/utils/getLocalizedCategoryData.js.map +1 -1
  157. package/build/utils/getNewsroomLogoUrl.js +21 -15
  158. package/build/utils/getNewsroomLogoUrl.js.map +1 -1
  159. package/build/utils/getPrivacyPortalUrl.js +13 -11
  160. package/build/utils/getPrivacyPortalUrl.js.map +1 -1
  161. package/build/utils/getStoryPublicationDate.js +14 -9
  162. package/build/utils/getStoryPublicationDate.js.map +1 -1
  163. package/build/utils/getUploadcareGroupUrl.js +10 -5
  164. package/build/utils/getUploadcareGroupUrl.js.map +1 -1
  165. package/build/utils/index.js +27 -10
  166. package/build/utils/index.js.map +1 -1
  167. package/build/utils/isEmbargoStory.js +8 -3
  168. package/build/utils/isEmbargoStory.js.map +1 -1
  169. package/package.json +13 -28
  170. package/src/@types/global.d.ts +7 -0
  171. package/src/__mocks__/languages.ts +416 -0
  172. package/src/__mocks__/story.ts +359 -0
  173. package/src/adapter-nextjs/api-handlers/fetchGalleries.ts +24 -0
  174. package/src/adapter-nextjs/api-handlers/fetchStories.ts +26 -0
  175. package/src/adapter-nextjs/api-handlers/index.ts +2 -0
  176. package/src/adapter-nextjs/getNewsroomServerSideProps.ts +29 -0
  177. package/src/adapter-nextjs/getNewsroomStaticProps.ts +29 -0
  178. package/src/adapter-nextjs/index.ts +6 -0
  179. package/src/adapter-nextjs/page-props/category.ts +157 -0
  180. package/src/adapter-nextjs/page-props/gallery.ts +114 -0
  181. package/src/adapter-nextjs/page-props/galleryAlbum.ts +89 -0
  182. package/src/adapter-nextjs/page-props/home.ts +113 -0
  183. package/src/adapter-nextjs/page-props/index.ts +26 -0
  184. package/src/adapter-nextjs/page-props/lib/types.ts +8 -0
  185. package/src/adapter-nextjs/page-props/search.ts +53 -0
  186. package/src/adapter-nextjs/page-props/sitemap/SitemapBuilder.ts +56 -0
  187. package/src/adapter-nextjs/page-props/sitemap/createPaths.ts +21 -0
  188. package/src/adapter-nextjs/page-props/sitemap/getServerSideProps.ts +43 -0
  189. package/src/adapter-nextjs/page-props/sitemap/index.ts +5 -0
  190. package/src/adapter-nextjs/page-props/sitemap/types.ts +5 -0
  191. package/src/adapter-nextjs/page-props/story.ts +94 -0
  192. package/src/adapter-nextjs/page-props/storyPreview.ts +33 -0
  193. package/src/adapter-nextjs/processRequest.ts +49 -0
  194. package/src/adapter-nextjs/processStaticRequest.ts +32 -0
  195. package/src/components-nextjs/PageSeo/PageSeo.tsx +131 -0
  196. package/src/components-nextjs/PageSeo/index.ts +2 -0
  197. package/src/components-nextjs/PageSeo/lib/getAbsoluteUrl.ts +7 -0
  198. package/src/components-nextjs/PageSeo/lib/types.ts +4 -0
  199. package/src/components-nextjs/StorySeo/StorySeo.tsx +82 -0
  200. package/src/components-nextjs/StorySeo/index.ts +1 -0
  201. package/src/components-nextjs/document.tsx +38 -0
  202. package/src/components-nextjs/index.ts +3 -0
  203. package/src/data-fetching/api/PrezlyApi.ts +304 -0
  204. package/src/data-fetching/api/getPrezlyApi.ts +24 -0
  205. package/src/data-fetching/api/index.ts +1 -0
  206. package/src/data-fetching/api/queries.ts +51 -0
  207. package/src/data-fetching/index.ts +3 -0
  208. package/src/data-fetching/lib/getAlgoliaSettings.ts +29 -0
  209. package/src/data-fetching/lib/getEnvVariables.ts +46 -0
  210. package/src/data-fetching/lib/index.ts +4 -0
  211. package/src/data-fetching/lib/isSdkError.ts +5 -0
  212. package/src/data-fetching/lib/isUuid.ts +5 -0
  213. package/src/data-fetching/types.ts +14 -0
  214. package/src/index.ts +9 -0
  215. package/src/infinite-loading/index.ts +4 -0
  216. package/src/infinite-loading/types.ts +5 -0
  217. package/src/infinite-loading/useInfiniteGalleriesLoading.ts +53 -0
  218. package/src/infinite-loading/useInfiniteLoading.ts +66 -0
  219. package/src/infinite-loading/useInfiniteStoriesLoading.ts +81 -0
  220. package/src/intl/index.ts +4 -0
  221. package/src/intl/languages.test.ts +232 -0
  222. package/src/intl/languages.ts +233 -0
  223. package/src/intl/locale.test.ts +95 -0
  224. package/src/intl/locale.ts +140 -0
  225. package/src/intl/localeConfig.js +23 -0
  226. package/src/intl/localeList.js +110 -0
  227. package/src/intl/localeObject.test.ts +81 -0
  228. package/src/intl/localeObject.ts +99 -0
  229. package/src/newsroom-context/context.tsx +115 -0
  230. package/src/newsroom-context/hooks/index.ts +11 -0
  231. package/src/newsroom-context/hooks/useAlgoliaSettings.ts +7 -0
  232. package/src/newsroom-context/hooks/useCategories.ts +7 -0
  233. package/src/newsroom-context/hooks/useCompanyInformation.ts +7 -0
  234. package/src/newsroom-context/hooks/useCurrentCategory.ts +7 -0
  235. package/src/newsroom-context/hooks/useCurrentLocale.ts +7 -0
  236. package/src/newsroom-context/hooks/useCurrentStory.ts +7 -0
  237. package/src/newsroom-context/hooks/useGetLinkLocaleSlug.ts +37 -0
  238. package/src/newsroom-context/hooks/useGetTranslationUrl.ts +97 -0
  239. package/src/newsroom-context/hooks/useLanguages.ts +7 -0
  240. package/src/newsroom-context/hooks/useNewsroom.ts +7 -0
  241. package/src/newsroom-context/hooks/useNewsroomContext.ts +15 -0
  242. package/src/newsroom-context/index.ts +2 -0
  243. package/src/sentry/client.ts +7 -0
  244. package/src/sentry/common.ts +27 -0
  245. package/src/sentry/index.ts +2 -0
  246. package/src/sentry/server.ts +7 -0
  247. package/src/types.ts +51 -0
  248. package/src/utils/boilerplate.ts +27 -0
  249. package/src/utils/constants.ts +3 -0
  250. package/src/utils/getAssetsUrl.test.ts +9 -0
  251. package/src/utils/getAssetsUrl.ts +9 -0
  252. package/src/utils/getDataRequestLink.ts +14 -0
  253. package/src/utils/getLocalizedCategoryData.ts +47 -0
  254. package/src/utils/getNewsroomLogoUrl.ts +22 -0
  255. package/src/utils/getPrivacyPortalUrl.ts +25 -0
  256. package/src/utils/getStoryPublicationDate.tsx +15 -0
  257. package/src/utils/getUploadcareGroupUrl.ts +13 -0
  258. package/src/utils/index.ts +10 -0
  259. package/src/utils/isEmbargoStory.ts +10 -0
  260. package/build/@types/global.d.js +0 -1
@@ -0,0 +1,22 @@
1
+ import type { Newsroom } from '@prezly/sdk';
2
+ import { UploadcareImage } from '@prezly/uploadcare';
3
+
4
+ export function getNewsroomLogoUrl(newsroom: Newsroom): string {
5
+ if (newsroom.newsroom_logo) {
6
+ const image = UploadcareImage.createFromPrezlyStoragePayload(newsroom.newsroom_logo);
7
+ return image.cdnUrl;
8
+ }
9
+
10
+ return '';
11
+ }
12
+
13
+ export function getNewsroomFaviconUrl(newsroom: Newsroom, previewSize = 400): string {
14
+ const imageObject = newsroom.icon || newsroom.square_logo;
15
+
16
+ if (imageObject) {
17
+ const image = UploadcareImage.createFromPrezlyStoragePayload(imageObject);
18
+ return image.preview(previewSize, previewSize).cdnUrl;
19
+ }
20
+
21
+ return '';
22
+ }
@@ -0,0 +1,25 @@
1
+ import type { Newsroom } from '@prezly/sdk';
2
+
3
+ import type { LocaleObject } from '../intl';
4
+
5
+ type PrivacyPortalUrlOptions = {
6
+ email?: string;
7
+ action?: 'data-request' | 'subscribe' | 'unsubscribe';
8
+ };
9
+
10
+ export function getPrivacyPortalUrl(
11
+ newsroom: Newsroom,
12
+ locale: LocaleObject,
13
+ options?: PrivacyPortalUrlOptions,
14
+ ) {
15
+ const { email, action = 'subscribe' } = options || {};
16
+
17
+ const url = new URL(
18
+ `/${locale.toUrlSlug()}/newsroom/${newsroom.uuid}/${action}`,
19
+ 'https://privacy.prezly.com',
20
+ );
21
+ if (email) {
22
+ url.searchParams.append('email', email);
23
+ }
24
+ return url.toString();
25
+ }
@@ -0,0 +1,15 @@
1
+ import type { Story } from '@prezly/sdk';
2
+
3
+ import type { AlgoliaStory } from '../types';
4
+
5
+ export function getStoryPublicationDate(story: Story | AlgoliaStory): Date | null {
6
+ const { published_at } = story;
7
+
8
+ if (!published_at) {
9
+ return null;
10
+ }
11
+
12
+ return typeof published_at === 'string'
13
+ ? new Date(published_at)
14
+ : new Date(published_at * 1000);
15
+ }
@@ -0,0 +1,13 @@
1
+ import { ASSETS_URL } from './constants';
2
+
3
+ /**
4
+ * This method constructs a URL to download all images in the Gallery as a single archive.
5
+ *
6
+ * @param uuid Gallery UUID
7
+ * @param title Filename for the saved archive. Usually it is the Gallery title.
8
+ * @returns URL to an archive containing all of the images in the Gallery.
9
+ */
10
+ export function getUploadcareGroupUrl(uuid: string, title: string) {
11
+ // UploadCare doesn't like slashes in filenames even in encoded form.
12
+ return `${ASSETS_URL}/${uuid}/archive/zip/${encodeURIComponent(title.replace(/\//g, '_'))}.zip`;
13
+ }
@@ -0,0 +1,10 @@
1
+ export * from './boilerplate';
2
+ export * from './constants';
3
+ export * from './getAssetsUrl';
4
+ export * from './getDataRequestLink';
5
+ export * from './getLocalizedCategoryData';
6
+ export * from './getNewsroomLogoUrl';
7
+ export * from './getPrivacyPortalUrl';
8
+ export * from './getStoryPublicationDate';
9
+ export * from './getUploadcareGroupUrl';
10
+ export * from './isEmbargoStory';
@@ -0,0 +1,10 @@
1
+ import type { Story } from '@prezly/sdk';
2
+
3
+ export type EmbargoStory = Omit<Story, 'is_embargo' | 'published_at'> & {
4
+ is_embargo: true;
5
+ published_at: string;
6
+ };
7
+
8
+ export function isEmbargoStory(story: Story): story is EmbargoStory {
9
+ return story.is_embargo && Boolean(story.published_at);
10
+ }
@@ -1 +0,0 @@
1
- export {};