Author SHA1 Message Date
OadeO6 86dfdc687e fix(ui): keep form state when changing theme 2026-09-24 18:46:40 +00:00
4 changed files with 21 additions and 22 deletions
+2
View File
@@ -16,6 +16,8 @@ jobs:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: bknd
ports:
- 5430:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
+2 -10
View File
@@ -8,12 +8,9 @@ import { $ } from "bun";
import { connectionTestSuite } from "data/connection/connection-test-suite";
import { bunTestRunner } from "adapter/bun/test";
const isCI = !!(process.env.GITEA_ACTIONS || process.env.GITHUB_ACTIONS);
const credentials = {
// Changes to "postgres" inside CI to talk directly to the Gitea service container
host: isCI ? "postgres" : "localhost",
port: 5432,
host: "localhost",
port: 5430,
user: "postgres",
password: "postgres",
database: "bknd",
@@ -42,11 +39,6 @@ async function isPostgresRunning() {
describe("postgres", () => {
beforeAll(async () => {
if (process.env.GITEA_ACTIONS || process.env.GITHUB_ACTIONS) {
console.log("Running in CI: Skipping manual docker run");
return;
}
if (!(await isPostgresRunning())) {
await $`docker run --rm --name bknd-test-postgres -d -e POSTGRES_PASSWORD=${credentials.password} -e POSTGRES_USER=${credentials.user} -e POSTGRES_DB=${credentials.database} -p ${credentials.port}:5432 postgres:17`;
await $waitUntil("Postgres is running", isPostgresRunning, 500, 20);
+12 -10
View File
@@ -17,9 +17,9 @@ export type BkndAdminConfig = {
*/
basepath?: string;
/**
* Sub-path for the Admin UI within the base path
* @default ``
*/
* Sub-path for the Admin UI within the base path
* @default ``
*/
admin_basepath?: string;
/**
* Path to return to when clicking the logo
@@ -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) {
const { theme } = useTheme();
const config = {
@@ -84,16 +92,10 @@ function AdminInner(props: BkndAdminProps) {
...useBkndWindowContext(),
};
const BkndWrapper = ({ children }: { children: ReactNode }) => (
<BkndProvider options={config} fallback={<Skeleton theme={config?.theme} />}>
{children}
</BkndProvider>
);
return (
<MantineProvider {...createMantineTheme(theme as any)}>
<Notifications position="top-right" />
<Routes BkndWrapper={BkndWrapper} basePath={config?.basepath}>
<Routes BkndWrapper={BkndWrapper} options={config} basePath={config?.basepath}>
{props.children}
</Routes>
</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 { BkndModalsProvider } from "ui/modals";
import { useBkndWindowContext } from "bknd/client";
import type { BkndAdminProps } from "ui/Admin";
import ToolsRoutes from "./tools";
// @ts-ignore
@@ -24,10 +25,12 @@ try {
export function Routes({
BkndWrapper,
options,
basePath = "",
children,
}: {
BkndWrapper: ComponentType<{ children: ReactNode }>;
BkndWrapper: ComponentType<{ children: ReactNode; options?: BkndAdminProps["config"] }>;
options?: BkndAdminProps["config"];
basePath?: string;
children?: ReactNode;
}) {
@@ -43,7 +46,7 @@ export function Routes({
<Route path="/auth/login" component={AuthLogin} />
<Route path="/auth/register" component={AuthRegister} />
<BkndWrapper>
<BkndWrapper options={options}>
<BkndModalsProvider>
<Route path="/" nest>
<Root>