"use client"; import { Button, CloseButton, ColorInput, Group, Input, Stack, TextInput, useMantineTheme } from "@mantine/core"; import { useForm } from "@homarr/form"; import { createModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; import { TextMultiSelect } from "@homarr/ui"; import type { BoardItemAdvancedOptions } from "@homarr/validation/shared"; interface InnerProps { advancedOptions: BoardItemAdvancedOptions; onSuccess: (options: BoardItemAdvancedOptions) => void; } export const WidgetAdvancedOptionsModal = createModal(({ actions, innerProps }) => { const t = useI18n(); const theme = useMantineTheme(); const form = useForm({ initialValues: innerProps.advancedOptions, }); const handleSubmit = (values: BoardItemAdvancedOptions) => { innerProps.onSuccess({ ...values, // we want to fallback to null if the title is empty // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing title: values.title?.trim() || null, }); actions.closeModal(); }; return (
form.setFieldValue("title", "")} />} /> color[6])} rightSection={ form.setFieldValue("borderColor", "")} style={{ display: form.getInputProps("borderColor").value ? undefined : "none" }} /> } {...form.getInputProps("borderColor")} />
); }).withOptions({ defaultTitle(t) { return t("item.edit.advancedOptions.title"); }, size: "lg", transitionProps: { duration: 0, }, });