more routing tests

This commit is contained in:
Orion Reed 2023-08-12 23:40:10 +01:00
parent 7df0ec5469
commit aa0f787a99
3 changed files with 48 additions and 33 deletions

67
package-lock.json generated
View File

@ -15,8 +15,8 @@
"jsonlines": "^0.1.1",
"minisearch": "^6.1.0",
"preact": "^10.13.1",
"preact-iso": "^2.3.1",
"preact-router": "^4.1.2",
"react-router-dom": "^6.15.0",
"reading-time-estimator": "^1.9.0"
},
"devDependencies": {
@ -1318,6 +1318,14 @@
"react": "^16.8 || ^17.0 || ^18.0"
}
},
"node_modules/@remix-run/router": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.8.0.tgz",
"integrity": "sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@rollup/plugin-virtual": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz",
@ -5976,27 +5984,6 @@
"url": "https://opencollective.com/preact"
}
},
"node_modules/preact-iso": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/preact-iso/-/preact-iso-2.3.1.tgz",
"integrity": "sha512-PtiG0dJlyvIDfvqROCybIFq96CS2s8nLg8ZR4Yporx3mPQ5FgWGNKb+ejjewtjEDMdCUlYmMT8SdapWEAxVJ2Q==",
"peerDependencies": {
"preact": ">=10",
"preact-render-to-string": ">=5"
}
},
"node_modules/preact-render-to-string": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.2.1.tgz",
"integrity": "sha512-5t7nFeMUextd53igL3GAakAAMaUD+dVWDHaRYaeh1tbPIjQIBtgJnMw6vf8VS/lviV0ggFtkgebatPxvtJsXyQ==",
"peer": true,
"dependencies": {
"pretty-format": "^3.8.0"
},
"peerDependencies": {
"preact": ">=10"
}
},
"node_modules/preact-router": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/preact-router/-/preact-router-4.1.2.tgz",
@ -6005,12 +5992,6 @@
"preact": ">=10"
}
},
"node_modules/pretty-format": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
"integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==",
"peer": true
},
"node_modules/pretty-remarkable": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/pretty-remarkable/-/pretty-remarkable-0.4.1.tgz",
@ -6143,6 +6124,36 @@
}
}
},
"node_modules/react-router": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.15.0.tgz",
"integrity": "sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg==",
"dependencies": {
"@remix-run/router": "1.8.0"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"react": ">=16.8"
}
},
"node_modules/react-router-dom": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.15.0.tgz",
"integrity": "sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ==",
"dependencies": {
"@remix-run/router": "1.8.0",
"react-router": "6.15.0"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"react": ">=16.8",
"react-dom": ">=16.8"
}
},
"node_modules/react-style-singleton": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz",

View File

@ -19,6 +19,7 @@
"minisearch": "^6.1.0",
"preact": "^10.13.1",
"preact-router": "^4.1.2",
"react-router-dom": "^6.15.0",
"reading-time-estimator": "^1.9.0"
},
"devDependencies": {

View File

@ -11,12 +11,15 @@ import { Box } from '@mantine/core'
import { theme } from '@/theme'
const MY_FOLDER = '/orionreed'
class SubfolderRouter extends Router {
class BaseRouter extends Router {
render(props: RouterProps, state: any) {
if (state.url.indexOf(MY_FOLDER) === 0) {
if (state.url.indexOf('/orionreed') === 0) {
console.log('state', state)
console.log('state.url', state.url)
state = {
...state,
url: state.url.substr(MY_FOLDER.length),
url: state.url.substr('/orionreed'.length),
}
}
return super.render(props, state)
@ -27,13 +30,13 @@ export function App() {
return (
<MantineProvider withGlobalStyles withNormalizeCSS theme={theme}>
<Box mb="xl">
<SubfolderRouter>
<BaseRouter>
<Home path="/" />
<Posts path="/posts" />
<Post path="/posts/:title" />
<Stream path="/stream" />
<NotFound default />
</SubfolderRouter>
</BaseRouter>
</Box>
</MantineProvider>
)