diff --git a/apps/console/src/components/table/SortableDataTable.tsx b/apps/console/src/components/table/SortableDataTable.tsx index 70d88749e..6bfb03bde 100644 --- a/apps/console/src/components/table/SortableDataTable.tsx +++ b/apps/console/src/components/table/SortableDataTable.tsx @@ -55,7 +55,7 @@ export function SortableDataTable({ }); }; return ( - + {hasNext && loadNext && ( @@ -70,7 +70,7 @@ export function SortableDataTable({ )} - + ); } diff --git a/apps/console/src/components/table/VendorsCell.tsx b/apps/console/src/components/table/VendorsCell.tsx index 8c577274b..634a84e44 100644 --- a/apps/console/src/components/table/VendorsCell.tsx +++ b/apps/console/src/components/table/VendorsCell.tsx @@ -27,7 +27,7 @@ export function VendorsCell(props: Props) { organizationId: props.organizationId, }} items={(data) => - data.organization?.vendors?.edges.map((edge) => edge.node) ?? [] + data.organization?.vendors?.edges?.map((edge) => edge.node) ?? [] } itemRenderer={({ item, onRemove }) => ( diff --git a/apps/console/src/hooks/useStateWithSchema.ts b/apps/console/src/hooks/useStateWithSchema.ts index 29e4b33c4..9be54c130 100644 --- a/apps/console/src/hooks/useStateWithSchema.ts +++ b/apps/console/src/hooks/useStateWithSchema.ts @@ -8,6 +8,7 @@ export function useStateWithSchema( const [state, setState] = useState(initialValue); const [value, errors] = useMemo((): [z.infer, Record] => { try { + schema.parse(state); return [schema.parse(state), {}]; } catch (error) { if (error instanceof ZodError) { @@ -26,7 +27,7 @@ export function useStateWithSchema( }, [state, schema]); return { - rawValue: value, + rawValue: state, value, errors, update: useCallback( diff --git a/apps/console/src/pages/organizations/assets/AssetsPage.tsx b/apps/console/src/pages/organizations/assets/AssetsPage.tsx index 0ab735997..5b4f3c07c 100644 --- a/apps/console/src/pages/organizations/assets/AssetsPage.tsx +++ b/apps/console/src/pages/organizations/assets/AssetsPage.tsx @@ -233,7 +233,9 @@ export default function AssetsPage(props: Props) { edge.node) ?? []} + defaultValue={ + item?.vendors?.edges?.map((edge) => edge.node) ?? [] + } /> > )} diff --git a/apps/console/vite.config.ts b/apps/console/vite.config.ts index 2611bdcd7..2ad87c224 100644 --- a/apps/console/vite.config.ts +++ b/apps/console/vite.config.ts @@ -12,6 +12,10 @@ export default defineConfig({ target: "http://localhost:8080", changeOrigin: true, }, + "/authz": { + target: "http://localhost:8080", + changeOrigin: true, + }, "/api": { target: "http://localhost:8080", changeOrigin: true, @@ -29,7 +33,9 @@ export default defineConfig({ "/pages": fileURLToPath(new URL("./src/pages", import.meta.url)), "/routes": fileURLToPath(new URL("./src/routes", import.meta.url)), "/providers": fileURLToPath(new URL("./src/providers", import.meta.url)), - "/permissions": fileURLToPath(new URL("./src/permissions", import.meta.url)), + "/permissions": fileURLToPath( + new URL("./src/permissions", import.meta.url), + ), }, }, }); diff --git a/cfg/dev.yaml b/cfg/dev.yaml index 20385bf0e..fac78fe6d 100644 --- a/cfg/dev.yaml +++ b/cfg/dev.yaml @@ -16,7 +16,7 @@ probod: trust-center: http-addr: ":8085" https-addr: ":8443" - + api: addr: "localhost:8080" cors: @@ -101,11 +101,3 @@ probod: - "incoming-webhook" settings: signing-secret: "this-is-not-a-secret-for-slack-signing" - - custom-domains: - renewal-interval: 3600 - provision-interval: 30 - acme: - directory: "https://localhost:14000/dir" - email: "bryan@getprobo.com" - key-type: "EC256" diff --git a/packages/helpers/src/dom.ts b/packages/helpers/src/dom.ts index 3905d4a79..263e82c6e 100644 --- a/packages/helpers/src/dom.ts +++ b/packages/helpers/src/dom.ts @@ -57,11 +57,7 @@ export function focusSiblingElement(direction = 1) { ).filter((el) => { // Filter out elements that are not visible or have display: none const style = window.getComputedStyle(el); - return ( - style.display !== "none" && - style.visibility !== "hidden" && - el.offsetParent !== null - ); + return style.display !== "none" && style.visibility !== "hidden"; }); const currentIndex = focusableElements.indexOf(current); diff --git a/packages/ui/src/Atoms/DataTable/DataTable.tsx b/packages/ui/src/Atoms/DataTable/DataTable.tsx index 5e913c27e..a6d360587 100644 --- a/packages/ui/src/Atoms/DataTable/DataTable.tsx +++ b/packages/ui/src/Atoms/DataTable/DataTable.tsx @@ -93,6 +93,7 @@ export function RowButton({ return ( diff --git a/packages/ui/src/Molecules/Table/EditableRow.tsx b/packages/ui/src/Molecules/Table/EditableRow.tsx index ca01a001a..b67864b05 100644 --- a/packages/ui/src/Molecules/Table/EditableRow.tsx +++ b/packages/ui/src/Molecules/Table/EditableRow.tsx @@ -39,8 +39,8 @@ export function EditableRow(props: Props) { [props.errors], ); return ( - + {props.children} - + ); } diff --git a/packages/ui/src/Molecules/Table/TextCell.tsx b/packages/ui/src/Molecules/Table/TextCell.tsx index 5c229ee30..4f8ecf208 100644 --- a/packages/ui/src/Molecules/Table/TextCell.tsx +++ b/packages/ui/src/Molecules/Table/TextCell.tsx @@ -1,5 +1,5 @@ import { EditableCell, useEditableCellRef } from "./EditableCell.tsx"; -import { type KeyboardEventHandler, useRef, useState } from "react"; +import { type KeyboardEventHandler, useEffect, useRef, useState } from "react"; import { useEditableRowContext } from "./EditableRow.tsx"; type Props = { @@ -27,6 +27,11 @@ export function TextCell(props: Props) { setValue(inputValue); onUpdate(props.name, inputValue); }; + + // Keep the value in sync with the props.defaultValue if defaultValue changes + useEffect(() => { + setValue(props.defaultValue); + }, [props.defaultValue]); return ( (item: T): string { item && typeof item === "object" && "id" in item && - typeof item.id === "string" + (typeof item.id === "string" || typeof item.id === "number") ) { return item.id.toString(); }