diff --git a/apps/website/components/last-articles/last-articles.tsx b/apps/website/components/last-articles/last-articles.tsx
index c32eb86..8d5de4e 100644
--- a/apps/website/components/last-articles/last-articles.tsx
+++ b/apps/website/components/last-articles/last-articles.tsx
@@ -12,7 +12,9 @@ export interface LastArticlesProps {
export function LastArticles({items = []}: LastArticlesProps) {
return (
+ className={styles['container'] + "rounded-lg mx-2 lg:mx-0 mt-5 lg:mt-0 p-5 mb-5 shadow-sm" +
+ " bg-white" +
+ " dark:bg-gray-800"}>
Derniers articles publiés
diff --git a/apps/website/libs/utils.ts b/apps/website/libs/utils.ts
index 106727a..83ffe36 100644
--- a/apps/website/libs/utils.ts
+++ b/apps/website/libs/utils.ts
@@ -5,14 +5,18 @@ import {environment} from "../environments/environment";
export type ImageFormatType = "default" | "thumbnail" | "medium" | "small";
export const getCategoryUrl = (item): string => {
- return '/blog/' + delve(item, 'attributes.category.data.attributes.slug', '');
+ const categorySlug = !delve(item, 'attributes', null) ? delve(item, 'category.data.attributes.slug', '') : delve(item, 'attributes.category.data.attributes.slug', '');
+ return '/blog/' + categorySlug;
}
export const getPostUrl = (item): string => {
- return '/blog/' + getCategoryUrl(item) + '/' + delve(item, 'attributes.slug', '');
+ const categorySlug = !delve(item, 'attributes', null) ? delve(item, 'category.data.attributes.slug', '') : delve(item, 'attributes.category.data.attributes.slug', '');
+ const postSlug = !delve(item, 'attributes', null) ? delve(item, 'slug', '') : delve(item, 'attributes.slug', '');
+ return '/blog/' + categorySlug + '/' + postSlug;
}
export const getStrapiImage = (item, format: ImageFormatType = 'default') => {
- const image = delve(item, 'attributes.image.data.attributes', {});
+ const image = !delve(item, 'attributes', null) ? delve(item, 'image.data.attributes', {}) : delve(item, 'attributes.image.data.attributes', {});
+ console.log(item, image);
switch (format) {
case "default":
return environment.strapiUrl + delve(image, "url", "/images/default.png");
diff --git a/apps/website/pages/_app.tsx b/apps/website/pages/_app.tsx
index 0f41953..c087e69 100644
--- a/apps/website/pages/_app.tsx
+++ b/apps/website/pages/_app.tsx
@@ -3,14 +3,20 @@ import {SessionProvider} from "next-auth/react";
import {config, library} from "@fortawesome/fontawesome-svg-core";
import '@fortawesome/fontawesome-svg-core/styles.css';
import {
- faBagShopping, faChalkboardUser,
- faGraduationCap, faGuitar, faLinesLeaning,
- faRightToBracket, faScrewdriverWrench,
+ faBagShopping,
+ faChalkboardUser,
+ faGraduationCap,
+ faGuitar,
+ faLinesLeaning,
+ faRightToBracket,
+ faScrewdriverWrench,
faTabletScreenButton,
faUserPlus
} from "@fortawesome/free-solid-svg-icons";
import axios from "axios";
import delve from 'dlv';
+import {ThemeProvider} from "next-themes";
+
import {wrapper} from "../store/store";
import {environment} from "../environments/environment";
@@ -49,7 +55,10 @@ const CustomApp = ({Component, pageProps: {session, ...pageProps}, menuFooter, m
pageProps = {...pageProps, menuFooter, menuHeader, seo};
return (
-
+
+
+
);
}
diff --git a/apps/website/pages/index.tsx b/apps/website/pages/index.tsx
index 17eb57b..569edc2 100644
--- a/apps/website/pages/index.tsx
+++ b/apps/website/pages/index.tsx
@@ -1,18 +1,32 @@
-import SeoConfig from "../components/seo-config/seo-config";
+import axios from "axios";
+import delve from 'dlv';
+
+import {environment} from "../environments/environment";
+import SeoConfig from "../components/seo-config/seo-config";
import Layout from "../components/layout/layout";
import HomeContent from "../components/home/home";
import styles from "./blog/index.module.scss";
-export function Index({menuHeader, menuFooter, page, seo}) {
+export async function getServerSideProps(context) {
+ const postsUrl = `${environment.strapiApiUrl}/articles?populate=deep&sort=publishedAt:DESC&pagination[limit]=3`;
+ const posts = await axios.get(postsUrl);
+ return {
+ props: {
+ posts: delve(posts, 'data.data', []),
+ }
+ }
+}
+
+export function Index({menuHeader, menuFooter, posts, seo}) {
return (
<>
-
+
>
diff --git a/package-lock.json b/package-lock.json
index 5ccb424..2a560fe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10124,6 +10124,11 @@
"resolved": "https://registry.npmjs.org/next-redux-wrapper/-/next-redux-wrapper-8.1.0.tgz",
"integrity": "sha512-2hIau0hcI6uQszOtrvAFqgc0NkZegKYhBB7ZAKiG3jk7zfuQb4E7OV9jfxViqqojh3SEHdnFfPkN9KErttUKuw=="
},
+ "next-themes": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz",
+ "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A=="
+ },
"node-abort-controller": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
diff --git a/package.json b/package.json
index b4e35d8..70ddf1a 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,7 @@
"next": "13.1.1",
"next-auth": "4.18.8",
"next-redux-wrapper": "^8.1.0",
+ "next-themes": "^0.2.1",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-helmet": "6.0.0",