diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-09-26 15:54:28 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-10-24 12:23:48 +0200 |
| commit | 70efcfeaa0603415dd992cb662d8efb960e6e49a (patch) | |
| tree | 5d37e98fae9aa7e5c3d8ef30a10db9fed9b63e36 /src/utils/helpers/pages.ts | |
| parent | 31695306bfed44409f03006ea717fd2cceff8f87 (diff) | |
refactor(routes): replace hardcoded routes with constants
It makes it easier to change a route if needed and it avoid typo
mistakes.
I also refactored a bit the concerned files to be complient with the
new ESlint config. However, I should rewrite the pages to reduce
the number of statements.
Diffstat (limited to 'src/utils/helpers/pages.ts')
| -rw-r--r-- | src/utils/helpers/pages.ts | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/utils/helpers/pages.ts b/src/utils/helpers/pages.ts index 6b27b6d..84854cd 100644 --- a/src/utils/helpers/pages.ts +++ b/src/utils/helpers/pages.ts @@ -1,13 +1,14 @@ -import { type LinksListItems, type Post } from '../../components'; +import type { LinksListItems, Post } from '../../components'; import { getArticleFromRawData } from '../../services/graphql'; -import { - type Article, - type EdgesResponse, - type PageLink, - type RawArticle, - type RawThematicPreview, - type RawTopicPreview, +import type { + Article, + EdgesResponse, + PageLink, + RawArticle, + RawThematicPreview, + RawTopicPreview, } from '../../types'; +import { ROUTES } from '../constants'; import { getImageFromRawData } from './images'; /** @@ -25,11 +26,13 @@ export const getPageLinkFromRawData = ( kind: 'thematic' | 'topic' ): PageLink => { const { databaseId, featuredImage, slug, title } = data; - const baseUrl = kind === 'thematic' ? '/thematique/' : '/sujet/'; + const baseUrl = `${ + kind === 'thematic' ? ROUTES.THEMATICS.INDEX : ROUTES.TOPICS + }/`; return { id: databaseId, - logo: featuredImage ? getImageFromRawData(featuredImage?.node) : undefined, + logo: featuredImage ? getImageFromRawData(featuredImage.node) : undefined, name: title, url: `${baseUrl}${slug}`, }; @@ -57,14 +60,13 @@ export const sortPageLinksByName = (a: PageLink, b: PageLink) => { * @param {PageLink[]} links - An array of page links. * @returns {LinksListItem[]} An array of links items. */ -export const getLinksListItems = (links: PageLink[]): LinksListItems[] => { - return links.map((link) => { +export const getLinksListItems = (links: PageLink[]): LinksListItems[] => + links.map((link) => { return { name: link.name, url: link.url, }; }); -}; /** * Retrieve the posts list with the article URL. @@ -72,14 +74,13 @@ export const getLinksListItems = (links: PageLink[]): LinksListItems[] => { * @param {Article[]} posts - An array of articles. * @returns {Post[]} An array of posts with full article URL. */ -export const getPostsWithUrl = (posts: Article[]): Post[] => { - return posts.map((post) => { +export const getPostsWithUrl = (posts: Article[]): Post[] => + posts.map((post) => { return { ...post, url: `/article/${post.slug}`, }; }); -}; /** * Retrieve the posts list from raw data. @@ -89,11 +90,11 @@ export const getPostsWithUrl = (posts: Article[]): Post[] => { */ export const getPostsList = (rawData: EdgesResponse<RawArticle>[]): Post[] => { const articlesList: RawArticle[] = []; - rawData.forEach((articleData) => + rawData.forEach((articleData) => { articleData.edges.forEach((edge) => { articlesList.push(edge.node); - }) - ); + }); + }); return getPostsWithUrl( articlesList.map((article) => getArticleFromRawData(article)) |
