diff --git a/src/components/ArticlesList.astro b/src/components/ArticlesList.astro new file mode 100644 index 0000000..896999a --- /dev/null +++ b/src/components/ArticlesList.astro @@ -0,0 +1,13 @@ +--- +import { useTranslation, getLanguageFromURL } from "@i18n/utils"; +import { filterArticlesByPageLang, formatToArticleBlocks } from "@utils/article"; +import List from "@components/ArticlesList"; +import { getArticleList } from "@root/queries/article"; + +const t = useTranslation(Astro); +const pageLang = getLanguageFromURL(Astro.url.pathname); +const articles = (await getArticleList()).flatMap((a) => filterArticlesByPageLang(a.translations, pageLang)); +const articleBlocks = formatToArticleBlocks(articles); +--- + + diff --git a/src/components/ArticlesList/ArticlesList.tsx b/src/components/ArticlesList/ArticlesList.tsx index 9779986..a1be08a 100644 --- a/src/components/ArticlesList/ArticlesList.tsx +++ b/src/components/ArticlesList/ArticlesList.tsx @@ -1,19 +1,16 @@ import type { Component } from "solid-js"; import { createSignal, createEffect, For } from "solid-js"; import { search, selectedTags, setCount } from "@stores/searchStore"; -import SearchInput from "./SearchInput"; -import TagsList from "./TagsList"; import ArticleItem from "@components/ArticleItem"; -import "./ArticlesList.scss"; import { ArticleQuery } from "@/src/graphql/graphql"; +import "./ArticlesList.scss"; -type UiStringsType = { "articles.empty": string; "input.search": string }; +type UiStringsType = { "articles.empty": string }; type ArticlesBlockType = Record; type ArticlesListProps = { articles: ArticlesBlockType; - tags: string[]; pageLang: string; i18n: UiStringsType; }; @@ -35,9 +32,7 @@ const ArticlesList: Component = (props) => { params: { search: string; tags?: string[] }; }): ArticlesBlockType => { const filter = ( - cb: ( - articles: ArticleQuery["article"][0]["translations"] - ) => ArticleQuery["article"][0]["translations"] + cb: (articles: ArticleQuery["article"][0]["translations"]) => ArticleQuery["article"][0]["translations"] ) => { return Object.fromEntries( Object.keys(props.articles) @@ -69,8 +64,6 @@ const ArticlesList: Component = (props) => { return ( <> - - {!isEmpty() ? ( diff --git a/src/components/ProjectsList.astro b/src/components/ProjectsList.astro index 39e5e13..14400c1 100644 --- a/src/components/ProjectsList.astro +++ b/src/components/ProjectsList.astro @@ -1,8 +1,14 @@ --- +import ProjectItem from "@components/ProjectItem.astro"; +import { getLanguageFromURL } from "../i18n/utils"; +import { getProjectList } from "../queries"; + +const pageLang = getLanguageFromURL(Astro.url.pathname); +const projects = await getProjectList(pageLang); --- - + {projects.map((data) => )}