Basic example structure

This commit is contained in:
2025-04-03 16:00:44 +02:00
parent 525e70c8bc
commit 2fdfe9468c
10 changed files with 84 additions and 4 deletions

15
.idea/git_toolbox_prj.xml generated Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxProjectSettings">
<option name="commitMessageIssueKeyValidationOverride">
<BoolValueOverride>
<option name="enabled" value="true" />
</BoolValueOverride>
</option>
<option name="commitMessageValidationEnabledOverride">
<BoolValueOverride>
<option name="enabled" value="true" />
</BoolValueOverride>
</option>
</component>
</project>

View File

@@ -1,3 +1,4 @@
import { type RouteConfig, index } from "@react-router/dev/routes";
import { type RouteConfig } from "@react-router/dev/routes";
import { flatRoutes } from "@react-router/fs-routes";
export default [index("routes/home.tsx")] satisfies RouteConfig;
export default flatRoutes() satisfies RouteConfig;

View File

@@ -0,0 +1,10 @@
import type { Route } from "./+types/$qrcode._index";
import { Outlet } from "react-router";
export default function QrLandingPage({ params }: Route.LoaderArgs) {
return (
<div>
<div>LANDING LAYOUT: {params.qrcode}</div>
</div>
);
}

View File

@@ -0,0 +1,5 @@
import type { Route } from "./+types/$qrcode.login";
export default function QrLoginPage({ params }: Route.LoaderArgs) {
return <div>STATUS: {params.qrcode}</div>;
}

View File

@@ -0,0 +1,5 @@
import type { Route } from "./+types/$qrcode.status";
export default function QrStatusPage({ params }: Route.LoaderArgs) {
return <div>STATUS: {params.qrcode}</div>;
}

11
app/routes/$qrcode.tsx Normal file
View File

@@ -0,0 +1,11 @@
import type { Route } from "./+types/$qrcode";
import { Outlet } from "react-router";
export default function Qrlayout({ params }: Route.LoaderArgs) {
return (
<div>
<div>LAYOUT FOR: {params.qrcode}</div>
<Outlet/>
</div>
);
}

View File

@@ -1,4 +1,4 @@
import type { Route } from "./+types/home";
import type { Route } from "./+types/_index";
export function meta(_obj: Route.MetaArgs) {
return [
@@ -7,7 +7,7 @@ export function meta(_obj: Route.MetaArgs) {
];
}
export default function Home() {
export default function Homepage() {
return (
<div>
<h1>Demo Charge.re</h1>

View File

@@ -10,6 +10,7 @@
},
"dependencies": {
"@radix-ui/react-slot": "^1.1.2",
"@react-router/fs-routes": "^7.4.1",
"@react-router/node": "^7.4.1",
"@react-router/serve": "^7.4.1",
"class-variance-authority": "^0.7.1",

20
pnpm-lock.yaml generated
View File

@@ -11,6 +11,9 @@ importers:
'@radix-ui/react-slot':
specifier: ^1.1.2
version: 1.1.2(@types/react@19.1.0)(react@19.1.0)
'@react-router/fs-routes':
specifier: ^7.4.1
version: 7.4.1(@react-router/dev@7.4.1(@react-router/serve@7.4.1(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2))(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(lightningcss@1.29.2)(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2)(vite@5.4.17(@types/node@20.17.30)(lightningcss@1.29.2)))(typescript@5.8.2)
'@react-router/node':
specifier: ^7.4.1
version: 7.4.1(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2)
@@ -870,6 +873,16 @@ packages:
typescript:
optional: true
'@react-router/fs-routes@7.4.1':
resolution: {integrity: sha512-g/lTkarGfkEfYw7+xM06/XvCBUosjeJRKSKOjSco/XMO9iPn+kHs+qUugavbX8CXyvw2ap25ep2xI+fGbBL+8A==}
engines: {node: '>=20.0.0'}
peerDependencies:
'@react-router/dev': ^7.4.1
typescript: ^5.1.0
peerDependenciesMeta:
typescript:
optional: true
'@react-router/node@7.4.1':
resolution: {integrity: sha512-CLJes6FGylwRnrCDg+nnBlBraD2iuiillx5JDhonIbMajsBJwTc7NVF3AkpNW45S8J0czGGvz19WDIe1cxbAlQ==}
engines: {node: '>=20.0.0'}
@@ -3864,6 +3877,13 @@ snapshots:
optionalDependencies:
typescript: 5.8.2
'@react-router/fs-routes@7.4.1(@react-router/dev@7.4.1(@react-router/serve@7.4.1(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2))(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(lightningcss@1.29.2)(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2)(vite@5.4.17(@types/node@20.17.30)(lightningcss@1.29.2)))(typescript@5.8.2)':
dependencies:
'@react-router/dev': 7.4.1(@react-router/serve@7.4.1(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2))(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(lightningcss@1.29.2)(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2)(vite@5.4.17(@types/node@20.17.30)(lightningcss@1.29.2))
minimatch: 9.0.5
optionalDependencies:
typescript: 5.8.2
'@react-router/node@7.4.1(react-router@7.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(typescript@5.8.2)':
dependencies:
'@mjackson/node-fetch-server': 0.2.0

View File

@@ -5,4 +5,16 @@ import tsconfigPaths from "vite-tsconfig-paths";
export default defineConfig({
plugins: [tailwindcss(), reactRouter(), tsconfigPaths()],
server: {
// On Prod this is done by NGINX using `proxy_cookie_domain` and `proxy_cookie_path`
proxy: {
'/api': {
target: 'https://api.barracuda.rossinienergy.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
cookieDomainRewrite: "",
cookiePathRewrite: "/",
},
}
},
});