From 9bebc7278724f45dd8b17945e385b19ef43c645f Mon Sep 17 00:00:00 2001 From: Juliet Date: Wed, 11 Mar 2026 13:18:45 +0100 Subject: [PATCH] simplify routing --- web/bun.lock | 3 --- web/package.json | 1 - web/src/index.tsx | 11 ++++------- web/src/pages/Upload.tsx | 2 +- web/src/pages/View.tsx | 8 ++++---- 5 files changed, 9 insertions(+), 16 deletions(-) diff --git a/web/bun.lock b/web/bun.lock index 7f6a309..23af8b6 100644 --- a/web/bun.lock +++ b/web/bun.lock @@ -5,7 +5,6 @@ "": { "name": "drop-web", "dependencies": { - "@solidjs/router": "^0.15.3", "solid-js": "^1.9.5", }, "devDependencies": { @@ -166,8 +165,6 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA=="], - "@solidjs/router": ["@solidjs/router@0.15.4", "", { "peerDependencies": { "solid-js": "^1.8.6" } }, "sha512-WOpgg9a9T638cR+5FGbFi/IV4l2FpmBs1GpIMSPa0Ce9vyJN7Wts+X2PqMf9IYn0zUj2MlSJtm1gp7/HI/n5TQ=="], - "@tailwindcss/node": ["@tailwindcss/node@4.2.1", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.19.0", "jiti": "^2.6.1", "lightningcss": "1.31.1", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.2.1" } }, "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg=="], "@tailwindcss/oxide": ["@tailwindcss/oxide@4.2.1", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.2.1", "@tailwindcss/oxide-darwin-arm64": "4.2.1", "@tailwindcss/oxide-darwin-x64": "4.2.1", "@tailwindcss/oxide-freebsd-x64": "4.2.1", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1", "@tailwindcss/oxide-linux-arm64-gnu": "4.2.1", "@tailwindcss/oxide-linux-arm64-musl": "4.2.1", "@tailwindcss/oxide-linux-x64-gnu": "4.2.1", "@tailwindcss/oxide-linux-x64-musl": "4.2.1", "@tailwindcss/oxide-wasm32-wasi": "4.2.1", "@tailwindcss/oxide-win32-arm64-msvc": "4.2.1", "@tailwindcss/oxide-win32-x64-msvc": "4.2.1" } }, "sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw=="], diff --git a/web/package.json b/web/package.json index c4824be..ecb1424 100644 --- a/web/package.json +++ b/web/package.json @@ -7,7 +7,6 @@ "build": "vite build" }, "dependencies": { - "@solidjs/router": "^0.15.3", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/web/src/index.tsx b/web/src/index.tsx index 0bd32a2..601c2cb 100644 --- a/web/src/index.tsx +++ b/web/src/index.tsx @@ -1,4 +1,3 @@ -import { Router, Route } from "@solidjs/router"; import { render } from "solid-js/web"; import App from "./App"; @@ -7,12 +6,10 @@ import View from "./pages/View"; import "./styles.css"; +const Page = () => + location.pathname === "/" ? : ; + render( - () => ( - - - - - ), + () => , document.getElementById("root")!, ); diff --git a/web/src/pages/Upload.tsx b/web/src/pages/Upload.tsx index d239dfa..78de314 100644 --- a/web/src/pages/Upload.tsx +++ b/web/src/pages/Upload.tsx @@ -224,7 +224,7 @@ export default function Upload() { xhr.send(formData); }); - const url = `${location.origin}/p/${res.id}#${encoded}`; + const url = `${location.origin}/${res.id}#${encoded}`; setResultUrl(url); removeFile(); } catch (e: any) { diff --git a/web/src/pages/View.tsx b/web/src/pages/View.tsx index 6f16647..5b05e80 100644 --- a/web/src/pages/View.tsx +++ b/web/src/pages/View.tsx @@ -1,4 +1,3 @@ -import { useParams } from "@solidjs/router"; import { createSignal, Show, onMount, onCleanup } from "solid-js"; import { importKey } from "../lib/crypto"; @@ -23,7 +22,8 @@ type Stage = "loading" | "meta" | "decrypting" | "content" | "error"; type ContentType = "text" | "image" | "video" | "audio" | "binary"; export default function View() { - const params = useParams(); + const parts = location.pathname.split("/").filter(Boolean); + const id = parts[0] === "p" ? parts[1] : parts[0]; const [stage, setStage] = createSignal("loading"); const [error, setError] = createSignal(""); @@ -52,7 +52,7 @@ export default function View() { onCleanup(() => worker.terminate()); onMount(async () => { - const id = params.id; + const keyEncoded = window.location.hash.slice(1); if (!id || !keyEncoded) { @@ -95,7 +95,7 @@ export default function View() { try { const xhr = new XMLHttpRequest(); - xhr.open("GET", `/api/file/${params.id}`); + xhr.open("GET", `/api/file/${id}`); xhr.responseType = "arraybuffer"; const buf = await new Promise((resolve, reject) => { -- 2.51.2