From 16442bc379c1d418080947fbd86a4bb14639e90e Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 10 Feb 2024 19:11:40 +0100 Subject: [PATCH] feat: add support for should hide option i widget edit modal (#78) --- packages/widgets/src/modals/widget-edit-modal.tsx | 7 ++++--- packages/widgets/src/options.ts | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) 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, };