Add site information management with Markdown support

This commit is contained in:
2025-05-18 11:04:59 +08:00
parent 1b5eb23a65
commit be09b55765
9 changed files with 67 additions and 8 deletions

View File

@@ -1,12 +1,33 @@
import { useEffect } from "react";
import {useEffect, useState} from "react";
import ResourcesView from "../components/resources_view.tsx";
import {network} from "../network/network.ts";
import { app } from "../app.ts";
import Markdown from "react-markdown";
import {useTranslation} from "react-i18next";
export default function HomePage() {
useEffect(() => {
document.title = app.appName;
}, [])
return <ResourcesView loader={(page) => network.getResources(page)}></ResourcesView>
const [isCollapsed, setIsCollapsed] = useState(false);
const {t} = useTranslation()
return <>
{
app.siteInfo && <div className={"mt-4 px-4"}>
<div className="collapse collapse-arrow bg-base-100 border border-base-300 cursor-pointer" onClick={() => setIsCollapsed(!isCollapsed)}>
<input type="radio" name="my-accordion-2" checked={isCollapsed}/>
<div className="collapse-title font-semibold">{t("About this site")}</div>
<article className="collapse-content text-sm">
<Markdown>
{app.siteInfo}
</Markdown>
</article>
</div>
</div>
}
<ResourcesView loader={(page) => network.getResources(page)}></ResourcesView>
</>
}