diff --git a/VoidCat/spa/package.json b/VoidCat/spa/package.json index adc822d..676e650 100644 --- a/VoidCat/spa/package.json +++ b/VoidCat/spa/package.json @@ -9,6 +9,7 @@ "@testing-library/user-event": "^13.2.1", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-router-dom": "^6.2.1", "react-scripts": "5.0.0", "web-vitals": "^2.1.0" }, diff --git a/VoidCat/spa/src/Admin/Admin.js b/VoidCat/spa/src/Admin/Admin.js new file mode 100644 index 0000000..b4cc759 --- /dev/null +++ b/VoidCat/spa/src/Admin/Admin.js @@ -0,0 +1,5 @@ +export function Admin(props) { + return ( +

Admin

+ ); +} \ No newline at end of file diff --git a/VoidCat/spa/src/App.js b/VoidCat/spa/src/App.js index 6ee9b8b..a7dce3d 100644 --- a/VoidCat/spa/src/App.js +++ b/VoidCat/spa/src/App.js @@ -1,23 +1,20 @@ -import { Fragment } from 'react'; -import { FilePreview } from "./FilePreview"; -import { Dropzone } from "./Dropzone"; -import { GlobalStats } from "./GlobalStats"; -import {FooterLinks} from "./FooterLinks"; +import {BrowserRouter, Routes, Route} from "react-router-dom"; +import {FilePreview} from "./FilePreview"; +import {HomePage} from "./HomePage"; +import {Admin} from "./Admin/Admin"; import './App.css'; function App() { - let hasPath = window.location.pathname !== "/"; return (
- {hasPath ? - : ( - - - - - - )} + + + }/> + }/> + }/> + +
); } diff --git a/VoidCat/spa/src/FilePreview.js b/VoidCat/spa/src/FilePreview.js index 35ca3f5..55b3f92 100644 --- a/VoidCat/spa/src/FilePreview.js +++ b/VoidCat/spa/src/FilePreview.js @@ -1,19 +1,21 @@ -import { Fragment, useEffect, useState } from "react"; - -import "./FilePreview.css"; +import {Fragment, useEffect, useState} from "react"; +import {useParams} from "react-router-dom"; import {TextPreview} from "./TextPreview"; -export function FilePreview(props) { - let [info, setInfo] = useState(); +import "./FilePreview.css"; + +export function FilePreview() { + const params = useParams(); + const [info, setInfo] = useState(); async function loadInfo() { - let req = await fetch(`/upload/${props.id}`); + let req = await fetch(`/upload/${params.id}`); if (req.ok) { let info = await req.json(); setInfo(info); } } - + function renderTypes() { let link = `/d/${info.id}`; if (info.metadata) { @@ -21,17 +23,17 @@ export function FilePreview(props) { case "image/jpg": case "image/jpeg": case "image/png": { - return {info.metadata.name}; + return {info.metadata.name}/; } case "video/mp4": case "video/matroksa": case "video/x-matroska": - case "video/webm": + case "video/webm": case "video/quicktime": { - return