Add Random resource retrieval and navigation.

This commit is contained in:
2025-06-08 17:49:49 +08:00
parent b0680fa94f
commit 99a2d328f1
9 changed files with 132 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
import { useNavigate, useParams } from "react-router";
import { useLocation, useNavigate, useParams } from "react-router";
import {
createContext,
createRef,
@@ -57,6 +57,8 @@ export default function ResourcePage() {
const [page, setPage] = useState(0);
const location = useLocation();
const reload = useCallback(async () => {
if (!isNaN(id)) {
setResource(null);
@@ -76,16 +78,20 @@ export default function ResourcePage() {
useEffect(() => {
setResource(null);
if (!isNaN(id)) {
network.getResourceDetails(id).then((res) => {
if (res.success) {
setResource(res.data!);
document.title = res.data!.title;
} else {
showToast({ message: res.message, type: "error" });
}
});
if (location.state) {
setResource(location.state.resource);
} else {
network.getResourceDetails(id).then((res) => {
if (res.success) {
setResource(res.data!);
document.title = res.data!.title;
} else {
showToast({ message: res.message, type: "error" });
}
});
}
}
}, [id]);
}, [id, location.state]);
const navigate = useNavigate();