diff --git a/frontend/src/network/models.ts b/frontend/src/network/models.ts index 83618c4..bf73d18 100644 --- a/frontend/src/network/models.ts +++ b/frontend/src/network/models.ts @@ -48,6 +48,7 @@ export interface CreateResourceParams { article: string; images: number[]; gallery: number[]; + gallery_nsfw: number[]; } export interface Image { @@ -86,6 +87,7 @@ export interface ResourceDetails { comments: number; related: Resource[]; gallery: number[]; + galleryNsfw: number[]; } export interface Storage { diff --git a/frontend/src/pages/edit_resource_page.tsx b/frontend/src/pages/edit_resource_page.tsx index 9563ae7..8ea754a 100644 --- a/frontend/src/pages/edit_resource_page.tsx +++ b/frontend/src/pages/edit_resource_page.tsx @@ -29,6 +29,7 @@ export default function EditResourcePage() { const [images, setImages] = useState([]); const [links, setLinks] = useState<{ label: string; url: string }[]>([]); const [galleryImages, setGalleryImages] = useState([]); + const [galleryNsfw, setGalleryNsfw] = useState([]); const [error, setError] = useState(null); const [isSubmitting, setSubmitting] = useState(false); const [isLoading, setLoading] = useState(true); @@ -57,6 +58,7 @@ export default function EditResourcePage() { setImages(data.images.map((i) => i.id)); setLinks(data.links ?? []); setGalleryImages(data.gallery ?? []); + setGalleryNsfw(data.galleryNsfw ?? []); setLoading(false); } else { showToast({ message: t("Failed to load resource"), type: "error" }); @@ -101,6 +103,7 @@ export default function EditResourcePage() { images: images, links: links, gallery: galleryImages, + gallery_nsfw: galleryNsfw, }); if (res.success) { setSubmitting(false); @@ -322,6 +325,7 @@ export default function EditResourcePage() { {t("Preview")} {"Markdown"} {t("Gallery")} + {"Nsfw"} {t("Action")} @@ -365,6 +369,22 @@ export default function EditResourcePage() { }} /> + + { + if (e.target.checked) { + setGalleryNsfw((prev) => [...prev, image]); + } else { + setGalleryNsfw((prev) => + prev.filter((id) => id !== image), + ); + } + }} + /> +