Skip to content

Commit a7af6c1

Browse files
authored
Replace React Router with TanStack Router in Sync Diagnostics Client (#833)
1 parent 13aee0b commit a7af6c1

19 files changed

Lines changed: 3472 additions & 3135 deletions

.changeset/tough-singers-boil.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@powersync/diagnostics-app': minor
3+
---
4+
5+
Migrate routing to @tanstack/react-router and simplify client parameters UI

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ dist
88
.idea
99
.fleet
1010

11+
# TanStack Router generated files
12+
routeTree.gen.ts
13+
1114
# Useful if running repository in VSCode dev container
1215
.pnpm-store
1316
__screenshots__

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"devDependencies": {
3636
"@actions/core": "^1.10.1",
3737
"@arethetypeswrong/cli": "^0.18.2",
38+
"tsx": "^4.8.1",
3839
"@changesets/cli": "2.27.2",
3940
"@pnpm/workspace.find-packages": "catalog:",
4041
"@pnpm/workspace.read-manifest": "catalog:",

pnpm-lock.yaml

Lines changed: 3111 additions & 2977 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tools/diagnostics-app/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,21 @@
2020
"@radix-ui/react-slot": "^1.2.4",
2121
"@radix-ui/react-switch": "^1.2.6",
2222
"@radix-ui/react-tooltip": "^1.2.8",
23+
"@tanstack/react-router": "^1.153.2",
2324
"class-variance-authority": "^0.7.1",
2425
"clsx": "^2.1.1",
2526
"formik": "^2.4.9",
2627
"lucide-react": "^0.562.0",
2728
"react": "^18.2.0",
2829
"react-dom": "^18.2.0",
29-
"react-router-dom": "^6.22.3",
3030
"tailwind-merge": "^3.4.0",
31-
"tw-animate-css": "^1.4.0"
31+
"tw-animate-css": "^1.4.0",
32+
"zod": "^4.3.5"
3233
},
3334
"devDependencies": {
3435
"@swc/core": "~1.6.0",
3536
"@tailwindcss/vite": "^4.1.17",
37+
"@tanstack/router-plugin": "^1.153.2",
3638
"@types/node": "^22.18.1",
3739
"@types/react": "^18.2.64",
3840
"@types/react-dom": "^18.2.21",
Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
import { createRoot } from 'react-dom/client';
2-
import { RouterProvider } from 'react-router-dom';
3-
import { SystemProvider } from '../components/providers/SystemProvider';
4-
import { ThemeProviderContainer } from '../components/providers/ThemeProviderContainer';
5-
import { router } from './router';
2+
import { createRouter, RouterProvider } from '@tanstack/react-router';
3+
import { routeTree } from '../routeTree.gen';
64

7-
const root = createRoot(document.getElementById('app')!);
8-
root.render(<App />);
5+
// Create the router instance
6+
const router = createRouter({
7+
routeTree,
8+
defaultPreload: 'intent',
9+
defaultPendingComponent: () => (
10+
<div className="flex min-h-screen items-center justify-center">
11+
<div className="flex items-center justify-center">
12+
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-primary"></div>
13+
</div>
14+
</div>
15+
)
16+
});
917

10-
export function App() {
11-
return (
12-
<ThemeProviderContainer>
13-
<SystemProvider>
14-
<RouterProvider router={router} />
15-
</SystemProvider>
16-
</ThemeProviderContainer>
17-
);
18+
// Register router for type safety
19+
declare module '@tanstack/react-router' {
20+
interface Register {
21+
router: typeof router;
22+
}
1823
}
24+
25+
const root = createRoot(document.getElementById('app')!);
26+
root.render(<RouterProvider router={router} />);

tools/diagnostics-app/src/app/login.tsx

Lines changed: 0 additions & 19 deletions
This file was deleted.

tools/diagnostics-app/src/app/page.tsx

Lines changed: 0 additions & 44 deletions
This file was deleted.

tools/diagnostics-app/src/app/router.tsx

Lines changed: 0 additions & 55 deletions
This file was deleted.

0 commit comments

Comments
 (0)