Files
homarr/packages/widgets/src/calendar/index.ts
Meier Lukas f6f0d7c72b feat(calendar): add show-unmonitored option (#2547)
* feat(calendar): add show-unmonitored option

* fix: typecheck issue
2025-03-09 14:26:31 +01:00

37 lines
1.2 KiB
TypeScript

import { IconCalendar } from "@tabler/icons-react";
import { z } from "zod";
import { getIntegrationKindsByCategory } from "@homarr/definitions";
import { radarrReleaseTypes } from "@homarr/integrations/types";
import { createWidgetDefinition } from "../definition";
import { optionsBuilder } from "../options";
export const { definition, componentLoader } = createWidgetDefinition("calendar", {
icon: IconCalendar,
createOptions() {
return optionsBuilder.from((factory) => ({
releaseType: factory.multiSelect({
defaultValue: ["inCinemas", "digitalRelease"],
options: radarrReleaseTypes.map((value) => ({
value,
label: (t) => t(`widget.calendar.option.releaseType.options.${value}`),
})),
}),
filterPastMonths: factory.number({
validate: z.number().min(2).max(9999),
defaultValue: 2,
}),
filterFutureMonths: factory.number({
validate: z.number().min(2).max(9999),
defaultValue: 2,
}),
showUnmonitored: factory.switch({
defaultValue: false,
}),
}));
},
supportedIntegrations: getIntegrationKindsByCategory("calendar"),
integrationsRequired: false,
}).withDynamicImport(() => import("./component"));