diff --git a/packages/widgets/src/modals/widget-edit-modal.tsx b/packages/widgets/src/modals/widget-edit-modal.tsx index 4e0459716..cedc75b28 100644 --- a/packages/widgets/src/modals/widget-edit-modal.tsx +++ b/packages/widgets/src/modals/widget-edit-modal.tsx @@ -9,7 +9,7 @@ import { Button, Group, Stack } from "@homarr/ui"; import { widgetImports } from ".."; import { getInputForType } from "../_inputs"; import { FormProvider, useForm } from "../_inputs/form"; -import type { WidgetOptionDefinition } from "../options"; +import type { OptionsBuilderResult } from "../options"; import type { IntegrationSelectOption } from "../widget-integration-select"; import { WidgetIntegrationSelect } from "../widget-integration-select"; @@ -54,10 +54,11 @@ export const WidgetEditModal: ManagedModal> = ({ /> )} {Object.entries(definition.options).map( - ([key, value]: [string, WidgetOptionDefinition]) => { + ([key, value]: [string, OptionsBuilderResult[string]]) => { + console.log(value); const Input = getInputForType(value.type); - if (!Input) { + if (!Input || value.shouldHide?.(form.values.options as never)) { return null; } diff --git a/packages/widgets/src/options.ts b/packages/widgets/src/options.ts index 31ed0305a..4fc3438e4 100644 --- a/packages/widgets/src/options.ts +++ b/packages/widgets/src/options.ts @@ -141,6 +141,9 @@ const createOptions = ( }; }; +type OptionsBuilder = typeof createOptions; +export type OptionsBuilderResult = ReturnType; + export const optionsBuilder = { from: createOptions, };