From 5b762b1b669454a89899c4bdf6008027d9615acf Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Thu, 30 Nov 2023 19:30:43 +0100
Subject: refactor(pages): refine Article pages

* use rehype to update code blocks class names
* fix widget heading level (after a level 1 it should always be a level
2 and not 3)
* replace Spinner with LoadingPage and LoadingPageComments components to
keep layout coherent
* refactor useArticle and useComments hooks
* fix URLs in JSON LD schema
* add Cypress tests
---
 src/components/templates/page/loading-page.tsx | 28 ++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 src/components/templates/page/loading-page.tsx

(limited to 'src/components/templates/page/loading-page.tsx')

diff --git a/src/components/templates/page/loading-page.tsx b/src/components/templates/page/loading-page.tsx
new file mode 100644
index 0000000..18ceed0
--- /dev/null
+++ b/src/components/templates/page/loading-page.tsx
@@ -0,0 +1,28 @@
+import { forwardRef, type ForwardRefRenderFunction } from 'react';
+import { useIntl } from 'react-intl';
+import { Spinner } from '../../atoms';
+import { Page, type PageProps } from './page';
+import { PageBody } from './page-body';
+import styles from './page.module.scss';
+
+const LoadingPageWithRef: ForwardRefRenderFunction<
+  HTMLDivElement,
+  Omit<PageProps, 'children'>
+> = (props, ref) => {
+  const intl = useIntl();
+  const loadingMsg = intl.formatMessage({
+    defaultMessage: 'The requested page is loading...',
+    description: 'LoadingPage: loading message',
+    id: '0UzObH',
+  });
+
+  return (
+    <Page {...props} ref={ref}>
+      <PageBody>
+        <Spinner className={styles.spinner}>{loadingMsg}</Spinner>
+      </PageBody>
+    </Page>
+  );
+};
+
+export const LoadingPage = forwardRef(LoadingPageWithRef);
-- 
cgit v1.2.3

