diff options
| author | 2026-02-25 02:06:07 +0800 | |
|---|---|---|
| committer | 2026-02-25 02:06:07 +0800 | |
| commit | 78ac61904d78d558d092eff08c9f261cbdb187e8 (patch) | |
| tree | 96f68d1f1554ee3a0532793afaaa52b0c73dcbec /packages/ui/src/main.tsx | |
| parent | 8ff3af6cb908fd824b512379dd21ed4f595ab6bb (diff) | |
| parent | 329734b23957b84cde2af459fa61c7385fb5b5f1 (diff) | |
| download | DropOut-78ac61904d78d558d092eff08c9f261cbdb187e8.tar.gz DropOut-78ac61904d78d558d092eff08c9f261cbdb187e8.zip | |
feat(ui): partial react rewrite (#77)
## Summary by Sourcery
Export backend data structures to TypeScript for the new React-based UI
and update CI to build additional targets.
New Features:
- Generate TypeScript definitions for core backend structs and enums
used by the UI.
- Now use our own Azure app(_DropOut_) to finish the authorize process.
Enhancements:
- Annotate existing Rust models with ts-rs metadata to control exported
TypeScript shapes, including tagged enums and opaque JSON fields.
Build:
- Add ts-rs as a dependency for generating TypeScript bindings from Rust
types.
CI:
- Extend the Semifold CI workflow to run on the dev branch and build
additional Linux musl and Windows GNU targets using cross where needed.
Diffstat (limited to 'packages/ui/src/main.tsx')
| -rw-r--r-- | packages/ui/src/main.tsx | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/ui/src/main.tsx b/packages/ui/src/main.tsx new file mode 100644 index 0000000..a3157bd --- /dev/null +++ b/packages/ui/src/main.tsx @@ -0,0 +1,38 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import "./index.css"; +import { createHashRouter, RouterProvider } from "react-router"; +import { Toaster } from "./components/ui/sonner"; +import { HomeView } from "./pages/home-view"; +import { IndexPage } from "./pages/index"; +import { InstancesView } from "./pages/instances-view"; +import { SettingsPage } from "./pages/settings"; + +const router = createHashRouter([ + { + path: "/", + element: <IndexPage />, + children: [ + { + index: true, + element: <HomeView />, + }, + { + path: "instances", + element: <InstancesView />, + }, + { + path: "settings", + element: <SettingsPage />, + }, + ], + }, +]); + +const root = createRoot(document.getElementById("root") as HTMLElement); +root.render( + <StrictMode> + <RouterProvider router={router} /> + <Toaster /> + </StrictMode>, +); |