diff --git a/package-lock.json b/package-lock.json index 56312b2..80c419a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "dependencies": { "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-router-dom": "^6.26.2" }, "devDependencies": { "@types/react": "^18.2.66", @@ -1051,6 +1052,14 @@ "node": ">=14" } }, + "node_modules/@remix-run/router": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", + "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.17.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", @@ -3421,6 +3430,36 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", + "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", + "dependencies": { + "@remix-run/router": "1.19.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", + "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", + "dependencies": { + "@remix-run/router": "1.19.2", + "react-router": "6.26.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", diff --git a/package.json b/package.json index 33e7504..c40f213 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ }, "dependencies": { "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-router-dom": "^6.26.2" }, "devDependencies": { "@types/react": "^18.2.66", diff --git a/src/main.tsx b/src/main.tsx index 9861904..6b9f9e7 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,9 +1,25 @@ import ReactDOM from 'react-dom/client' +import { + createBrowserRouter, + RouterProvider +} from "react-router-dom" import './assets/main.css' // pages -import MainPage from './index'; +import MainPage from './pages/index'; +import PrivacyPage from './pages/privacy'; + +const router = createBrowserRouter([ + { + path: '/', + element: + }, + { + path: '/privacy', + element: + } +]) ReactDOM.createRoot(document.getElementById('root')!).render( - + ) diff --git a/src/index.tsx b/src/pages/index.tsx similarity index 89% rename from src/index.tsx rename to src/pages/index.tsx index c3ab5f7..723fc78 100644 --- a/src/index.tsx +++ b/src/pages/index.tsx @@ -1,15 +1,15 @@ -import ListBox from "./components/ListBox"; -import Project from "./components/ProjectCard"; -import ContactForm from "./components/ContactForm"; +import ListBox from "../components/ListBox"; +import Project from "../components/ProjectCard"; +import ContactForm from "../components/ContactForm"; // project components -import RecentWatch from "./components/ProjectComponents/RecentWatch"; -import RecentPhoto from "./components/ProjectComponents/RecentPhoto"; -import RecentListens from "./components/ProjectComponents/RecentListens"; -import RecentClip from './components/ProjectComponents/RecentClip'; -import RecentGame from "./components/ProjectComponents/RecentGame"; -import RecentBook from "./components/ProjectComponents/RecentBook"; -import Layout from "./components/Layout"; +import RecentWatch from "../components/ProjectComponents/RecentWatch"; +import RecentPhoto from "../components/ProjectComponents/RecentPhoto"; +import RecentListens from "../components/ProjectComponents/RecentListens"; +import RecentClip from '../components/ProjectComponents/RecentClip'; +import RecentGame from "../components/ProjectComponents/RecentGame"; +import RecentBook from "../components/ProjectComponents/RecentBook"; +import Layout from "../components/Layout"; export default function Home() { return ( diff --git a/src/pages/privacy.tsx b/src/pages/privacy.tsx new file mode 100644 index 0000000..4722636 --- /dev/null +++ b/src/pages/privacy.tsx @@ -0,0 +1,30 @@ +import Layout from "../components/Layout"; + +export default function PrivacyPage() { + return ( + +
+

Privacy

+

This site doesn't collect anything on you. No cookies (although tasty), no ominous advertisements, nothing.

+ +

Plausible

+

I use Plausible analytics to track traffic anonymously. Plausible;

+
    +
  • does not collect personal identifying information
  • +
  • is dedicated to privacy
  • +
  • compliant with the GDPR, CCPA and PECR data protection laws
  • +
+

I use a self-hosted instance in the US that doesn't use cookies.

+ +

Cloudflare

+

I use Cloudflare for DNS. Most of my sites + are proxied through Cloudflare. You can view their privacy policy here.

+ +

Email

+

When you submit a contact request on my page, it is sent to Discord via a webhook & my own API.

+

This will be shown to me in an embed. I will never receive or process anything but what you provide.

+

You can learn more about Discord's dedication to privacy here.

+
+
+ ) +} \ No newline at end of file