From ed83799d945e5fe6598c93aa323dcaaa7b9e42e1 Mon Sep 17 00:00:00 2001 From: Sergey Yarkov Date: Thu, 1 Sep 2022 22:22:28 +0300 Subject: [PATCH] refactor: refactored `about` page --- src/lib/api.ts | 16 ++++++++++++++++ src/templates/About.astro | 21 ++++++--------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/lib/api.ts b/src/lib/api.ts index 6c06f29..03ffedf 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -1,6 +1,9 @@ import type { AstroGlobal, MDXInstance } from "astro"; import { formatArticlesByLangs } from "@i18n/utils"; +import { getLanguageFromURL } from "@root/utils"; +import { DEFAULT_LANGUAGE } from "@root/config"; + import * as utils from "@utils/index"; export function fetchTranslatedArticles(Astro: Readonly): MDXInstance[] { @@ -42,3 +45,16 @@ export function fetchTranslatedArticles(Astro: Readonly): MDXInstan return utils.getPublishedArticles(articles); } + +export async function fetchAboutMe(Astro: Readonly): Promise> { + const lang = getLanguageFromURL(Astro.url.pathname); + let markdown: MDXInstance<{}> | undefined; + + try { + markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance<{}>; + } catch (error) { + markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance<{}>; + } + + return markdown; +} diff --git a/src/templates/About.astro b/src/templates/About.astro index 4287e6f..fd1b00d 100644 --- a/src/templates/About.astro +++ b/src/templates/About.astro @@ -1,26 +1,17 @@ --- -import type { MDXInstance } from "astro"; - -import { DEFAULT_LANGUAGE, SITE_METADATA } from "@root/config"; +import { SITE_METADATA } from "@root/config"; import PageLayout from "@layouts/default.astro"; +import { getLanguageFromURL } from "@root/utils"; +import { useTranslation } from "@i18n/utils"; +import * as API from "@root/lib/api"; import PageHeading from "@components/PageHeading"; import SkillsList from "@components/SkillsList"; import SkillsBlock from "@components/SkillsBlock"; - import ArticleContent from "@components/ArticleContent"; -import { getLanguageFromURL } from "@root/utils"; -import { useTranslation } from "@i18n/utils"; const lang = getLanguageFromURL(Astro.url.pathname); const t = useTranslation(Astro); -let markdown: MDXInstance<{}> | undefined; - -try { - markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance<{}>; -} catch (error) { - markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance<{}>; -} - +const data = await API.fetchAboutMe(Astro); const { skills } = SITE_METADATA; --- @@ -28,7 +19,7 @@ const { skills } = SITE_METADATA;
- {markdown && } + {data && } {skills.map((block) => )}