Add tagged resources page.

This commit is contained in:
2025-05-13 17:47:15 +08:00
parent 0dd2143664
commit f1345f9a0c
8 changed files with 88 additions and 8 deletions

View File

@@ -1,4 +1,4 @@
import {useParams} from "react-router";
import {useNavigate, useParams} from "react-router";
import {createContext, useCallback, useContext, useEffect, useRef, useState} from "react";
import {ResourceDetails, RFile, Storage, Comment} from "../network/models.ts";
import {network} from "../network/network.ts";
@@ -49,6 +49,8 @@ export default function ResourcePage() {
}
}, [id])
const navigate = useNavigate()
if (isNaN(id)) {
return <div className="alert alert-error shadow-lg">
<div>
@@ -84,7 +86,9 @@ export default function ResourcePage() {
<p className={"px-4 pt-2"}>
{
resource.tags.map((e) => {
return <span key={e.id} className="badge badge-primary mr-2 text-sm">{e.name}</span>
return <span key={e.id} className="badge badge-primary mr-2 text-sm cursor-pointer" onClick={() => {
navigate(`/tag/${e.name}`);
}}>{e.name}</span>
})
}
</p>

View File

@@ -0,0 +1,23 @@
import {useParams} from "react-router";
import {ErrorAlert} from "../components/alert.tsx";
import ResourcesView from "../components/resources_view.tsx";
import {network} from "../network/network.ts";
export default function TaggedResourcesPage() {
const {tag} = useParams()
if (!tag) {
return <div>
<ErrorAlert message={"Tag not found"}/>
</div>
}
return <div>
<h1 className={"text-2xl pt-4 pb-2 px-4"}>
{tag}
</h1>
<ResourcesView loader={(page) => {
return network.getResourcesByTag(tag, page)
}}></ResourcesView>
</div>
}