feat: add support for should hide option i widget edit modal (#78)

This commit is contained in:
Meier Lukas
2024-02-10 19:11:40 +01:00
committed by GitHub
parent f070a0cb0a
commit 16442bc379
2 changed files with 7 additions and 3 deletions

View File

@@ -9,7 +9,7 @@ import { Button, Group, Stack } from "@homarr/ui";
import { widgetImports } from ".."; import { widgetImports } from "..";
import { getInputForType } from "../_inputs"; import { getInputForType } from "../_inputs";
import { FormProvider, useForm } from "../_inputs/form"; import { FormProvider, useForm } from "../_inputs/form";
import type { WidgetOptionDefinition } from "../options"; import type { OptionsBuilderResult } from "../options";
import type { IntegrationSelectOption } from "../widget-integration-select"; import type { IntegrationSelectOption } from "../widget-integration-select";
import { WidgetIntegrationSelect } from "../widget-integration-select"; import { WidgetIntegrationSelect } from "../widget-integration-select";
@@ -54,10 +54,11 @@ export const WidgetEditModal: ManagedModal<ModalProps<WidgetKind>> = ({
/> />
)} )}
{Object.entries(definition.options).map( {Object.entries(definition.options).map(
([key, value]: [string, WidgetOptionDefinition]) => { ([key, value]: [string, OptionsBuilderResult[string]]) => {
console.log(value);
const Input = getInputForType(value.type); const Input = getInputForType(value.type);
if (!Input) { if (!Input || value.shouldHide?.(form.values.options as never)) {
return null; return null;
} }

View File

@@ -141,6 +141,9 @@ const createOptions = <TOptions extends WidgetOptionsRecord>(
}; };
}; };
type OptionsBuilder = typeof createOptions;
export type OptionsBuilderResult = ReturnType<OptionsBuilder>;
export const optionsBuilder = { export const optionsBuilder = {
from: createOptions, from: createOptions,
}; };