From 6cabff8f8d1bc43376403c536b28d8fa2b34b9d5 Mon Sep 17 00:00:00 2001 From: nyne Date: Sun, 7 Dec 2025 18:54:01 +0800 Subject: [PATCH] feat: frontend support for release date --- frontend/src/pages/edit_resource_page.tsx | 11 +++++++++++ frontend/src/pages/publish_page.tsx | 22 +++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/edit_resource_page.tsx b/frontend/src/pages/edit_resource_page.tsx index 681b000..e7b1688 100644 --- a/frontend/src/pages/edit_resource_page.tsx +++ b/frontend/src/pages/edit_resource_page.tsx @@ -25,6 +25,7 @@ import CharacterEditer, { FetchVndbCharactersButton } from "../components/charac export default function EditResourcePage() { const [title, setTitle] = useState(""); const [altTitles, setAltTitles] = useState([]); + const [releaseDate, setReleaseDate] = useState(undefined); const [tags, setTags] = useState([]); const [article, setArticle] = useState(""); const [images, setImages] = useState([]); @@ -61,6 +62,7 @@ export default function EditResourcePage() { setLinks(data.links ?? []); setGalleryImages(data.gallery ?? []); setGalleryNsfw(data.galleryNsfw ?? []); + setReleaseDate(data.releaseDate ?? undefined); setCharacters(data.characters ?? []); setLoading(false); } else { @@ -108,6 +110,7 @@ export default function EditResourcePage() { gallery: galleryImages, gallery_nsfw: galleryNsfw, characters: characters, + release_date: releaseDate, }); if (res.success) { setSubmitting(false); @@ -194,6 +197,14 @@ export default function EditResourcePage() { {t("Add Alternative Title")}
+

{t("Release Date")}

+ setReleaseDate(e.target.value || undefined)} + /> +

{t("Links")}

{links.map((link, index) => { diff --git a/frontend/src/pages/publish_page.tsx b/frontend/src/pages/publish_page.tsx index 0710a39..61431ce 100644 --- a/frontend/src/pages/publish_page.tsx +++ b/frontend/src/pages/publish_page.tsx @@ -24,6 +24,7 @@ import CharacterEditer, { FetchVndbCharactersButton } from "../components/charac export default function PublishPage() { const [title, setTitle] = useState(""); const [altTitles, setAltTitles] = useState([]); + const [releaseDate, setReleaseDate] = useState(undefined); const [tags, setTags] = useState([]); const [article, setArticle] = useState(""); const [images, setImages] = useState([]); @@ -43,9 +44,14 @@ export default function PublishPage() { const data = JSON.parse(oldData); setTitle(data.title || ""); setAltTitles(data.alternative_titles || []); + setReleaseDate(data.release_date || undefined); setTags(data.tags || []); setArticle(data.article || ""); setImages(data.images || []); + setLinks(data.links || []); + setGalleryImages(data.gallery || []); + setGalleryNsfw(data.gallery_nsfw || []); + setCharacters(data.characters || []); } catch (e) { console.error("Failed to parse publish_data from localStorage", e); } @@ -58,11 +64,16 @@ export default function PublishPage() { tags: tags, article: article, images: images, + links: links, + gallery: galleryImages, + gallery_nsfw: galleryNsfw, + characters: characters, + release_date: releaseDate, }; const dataString = JSON.stringify(data); localStorage.setItem("publish_data", dataString); } - }, [altTitles, article, images, tags, title]); + }, [altTitles, article, images, tags, title, links, galleryImages, galleryNsfw, characters, releaseDate]); const navigate = useNavigate(); const { t } = useTranslation(); @@ -105,6 +116,7 @@ export default function PublishPage() { const res = await network.createResource({ title: title, alternative_titles: altTitles, + release_date: releaseDate, tags: tags.map((tag) => tag.id), article: article, images: images, @@ -201,6 +213,14 @@ export default function PublishPage() { {t("Add Alternative Title")}
+

{t("Release Date")}

+ setReleaseDate(e.target.value || undefined)} + /> +

{t("Links")}

{links.map((link, index) => {