From cde6124c099cc7dc85bbd7c469e6db90fbbc5d9b Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 4 Mar 2024 21:04:59 +0700 Subject: [PATCH] tanstack router --- bun.lockb | Bin 109172 -> 113838 bytes package.json | 3 +++ src/App.tsx | 3 --- src/app/App.tsx | 14 ++++++++++++++ src/main.tsx | 4 ++-- src/routeTree.gen.ts | 38 ++++++++++++++++++++++++++++++++++++++ src/routes/__root.tsx | 9 +++++++++ src/routes/index.tsx | 9 +++++++++ tsconfig.json | 6 +++++- vite.config.ts | 15 +++++++++++---- 10 files changed, 91 insertions(+), 10 deletions(-) delete mode 100644 src/App.tsx create mode 100644 src/app/App.tsx create mode 100644 src/routeTree.gen.ts create mode 100644 src/routes/__root.tsx create mode 100644 src/routes/index.tsx diff --git a/bun.lockb b/bun.lockb index 2122bf02e6fa000503e65a913e8c33c9d2eef006..dff4b4450c98b75caf4acac0248e99bfa2ee04a3 100755 GIT binary patch delta 20599 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 delta 17788 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 diff --git a/package.json b/package.json index 8e23e87..2ee55d2 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ "preview": "vite preview" }, "dependencies": { + "@tanstack/react-router": "^1.18.3", + "@tanstack/router-vite-plugin": "^1.18.1", "autoprefixer": "^10.4.18", "postcss": "^8.4.35", "react": "^18.2.0", @@ -17,6 +19,7 @@ "tailwindcss": "^3.4.1" }, "devDependencies": { + "@types/node": "^20.11.24", "@types/react": "^18.2.56", "@types/react-dom": "^18.2.19", "@typescript-eslint/eslint-plugin": "^7.0.2", diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index 178f88d..0000000 --- a/src/App.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function App() { - return
hi
; -} diff --git a/src/app/App.tsx b/src/app/App.tsx new file mode 100644 index 0000000..a2d41b4 --- /dev/null +++ b/src/app/App.tsx @@ -0,0 +1,14 @@ +import { routeTree } from "@/routeTree.gen"; +import { RouterProvider, createRouter } from "@tanstack/react-router"; + +const router = createRouter({ routeTree }); + +declare module "@tanstack/react-router" { + interface Register { + router: typeof router; + } +} + +export default function App() { + return ; +} diff --git a/src/main.tsx b/src/main.tsx index f043eb2..b8255e2 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,5 +1,5 @@ import "./index.css"; -import App from "./App.tsx"; +import App from "./app/App.tsx"; import React from "react"; import ReactDOM from "react-dom/client"; @@ -7,5 +7,5 @@ import ReactDOM from "react-dom/client"; ReactDOM.createRoot(document.getElementById("root")!).render( - + , ); diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts new file mode 100644 index 0000000..6b2afc9 --- /dev/null +++ b/src/routeTree.gen.ts @@ -0,0 +1,38 @@ +/* prettier-ignore-start */ + +/* eslint-disable */ + +// @ts-nocheck + +// noinspection JSUnusedGlobalSymbols + +// This file is auto-generated by TanStack Router + +// Import Routes + +import { Route as rootRoute } from './routes/__root' +import { Route as IndexImport } from './routes/index' + +// Create/Update Routes + +const IndexRoute = IndexImport.update({ + path: '/', + getParentRoute: () => rootRoute, +} as any) + +// Populate the FileRoutesByPath interface + +declare module '@tanstack/react-router' { + interface FileRoutesByPath { + '/': { + preLoaderRoute: typeof IndexImport + parentRoute: typeof rootRoute + } + } +} + +// Create and export the route tree + +export const routeTree = rootRoute.addChildren([IndexRoute]) + +/* prettier-ignore-end */ diff --git a/src/routes/__root.tsx b/src/routes/__root.tsx new file mode 100644 index 0000000..43adf88 --- /dev/null +++ b/src/routes/__root.tsx @@ -0,0 +1,9 @@ +import { createRootRoute, Outlet } from "@tanstack/react-router"; + +export const Route = createRootRoute({ + component: () => ( + <> + + + ), +}); diff --git a/src/routes/index.tsx b/src/routes/index.tsx new file mode 100644 index 0000000..add34f8 --- /dev/null +++ b/src/routes/index.tsx @@ -0,0 +1,9 @@ +import { createFileRoute } from "@tanstack/react-router"; + +function IndexPage() { + return
hi
; +} + +export const Route = createFileRoute("/")({ + component: IndexPage, +}); diff --git a/tsconfig.json b/tsconfig.json index a7fc6fb..439469d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,7 +18,11 @@ "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true + "noFallthroughCasesInSwitch": true, + + "paths": { + "@/*": ["./src/*"] + } }, "include": ["src"], "references": [{ "path": "./tsconfig.node.json" }] diff --git a/vite.config.ts b/vite.config.ts index 861b04b..43e0cb1 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,14 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react-swc' +import path from "path"; +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; +import { TanStackRouterVite } from "@tanstack/router-vite-plugin"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], -}) + plugins: [react(), TanStackRouterVite()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, +});