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 { 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<ModalProps<WidgetKind>> = ({
/>
)}
{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;
}

View File

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