mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-28 04:27:24 +00:00
Add tagged resources page.
This commit is contained in:
@@ -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>
|
||||
|
23
frontend/src/pages/tagged_resources_page.tsx
Normal file
23
frontend/src/pages/tagged_resources_page.tsx
Normal 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>
|
||||
}
|
Reference in New Issue
Block a user