Author SHA1 Message Date
OadeO6 86dfdc687e fix(ui): keep form state when changing theme 2026-09-24 18:46:40 +00:00
2 changed files with 17 additions and 12 deletions
+9 -7
View File
@@ -77,6 +77,14 @@ export default function Admin(props: BkndAdminProps) {
); );
} }
function BkndWrapper({ options, children }: { options?: BkndAdminConfig; children: ReactNode }) {
return (
<BkndProvider options={options} fallback={<Skeleton theme={options?.theme} />}>
{children}
</BkndProvider>
);
}
function AdminInner(props: BkndAdminProps) { function AdminInner(props: BkndAdminProps) {
const { theme } = useTheme(); const { theme } = useTheme();
const config = { const config = {
@@ -84,16 +92,10 @@ function AdminInner(props: BkndAdminProps) {
...useBkndWindowContext(), ...useBkndWindowContext(),
}; };
const BkndWrapper = ({ children }: { children: ReactNode }) => (
<BkndProvider options={config} fallback={<Skeleton theme={config?.theme} />}>
{children}
</BkndProvider>
);
return ( return (
<MantineProvider {...createMantineTheme(theme as any)}> <MantineProvider {...createMantineTheme(theme as any)}>
<Notifications position="top-right" /> <Notifications position="top-right" />
<Routes BkndWrapper={BkndWrapper} basePath={config?.basepath}> <Routes BkndWrapper={BkndWrapper} options={config} basePath={config?.basepath}>
{props.children} {props.children}
</Routes> </Routes>
</MantineProvider> </MantineProvider>
+5 -2
View File
@@ -12,6 +12,7 @@ import { FlashMessage } from "ui/modules/server/FlashMessage";
import { AuthRegister } from "ui/routes/auth/auth.register"; import { AuthRegister } from "ui/routes/auth/auth.register";
import { BkndModalsProvider } from "ui/modals"; import { BkndModalsProvider } from "ui/modals";
import { useBkndWindowContext } from "bknd/client"; import { useBkndWindowContext } from "bknd/client";
import type { BkndAdminProps } from "ui/Admin";
import ToolsRoutes from "./tools"; import ToolsRoutes from "./tools";
// @ts-ignore // @ts-ignore
@@ -24,10 +25,12 @@ try {
export function Routes({ export function Routes({
BkndWrapper, BkndWrapper,
options,
basePath = "", basePath = "",
children, children,
}: { }: {
BkndWrapper: ComponentType<{ children: ReactNode }>; BkndWrapper: ComponentType<{ children: ReactNode; options?: BkndAdminProps["config"] }>;
options?: BkndAdminProps["config"];
basePath?: string; basePath?: string;
children?: ReactNode; children?: ReactNode;
}) { }) {
@@ -43,7 +46,7 @@ export function Routes({
<Route path="/auth/login" component={AuthLogin} /> <Route path="/auth/login" component={AuthLogin} />
<Route path="/auth/register" component={AuthRegister} /> <Route path="/auth/register" component={AuthRegister} />
<BkndWrapper> <BkndWrapper options={options}>
<BkndModalsProvider> <BkndModalsProvider>
<Route path="/" nest> <Route path="/" nest>
<Root> <Root>