32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { IconAd, IconServerOff } from "@tabler/icons-react";
|
|
|
|
import { getIntegrationKindsByCategory } from "@homarr/definitions";
|
|
|
|
import { createWidgetDefinition } from "../../definition";
|
|
import { optionsBuilder } from "../../options";
|
|
|
|
export const widgetKind = "dnsHoleSummary";
|
|
|
|
export const { definition, componentLoader } = createWidgetDefinition(widgetKind, {
|
|
icon: IconAd,
|
|
options: optionsBuilder.from((factory) => ({
|
|
usePiHoleColors: factory.switch({
|
|
defaultValue: true,
|
|
}),
|
|
layout: factory.select({
|
|
options: (["grid", "row", "column"] as const).map((value) => ({
|
|
value,
|
|
label: (t) => t(`widget.dnsHoleSummary.option.layout.option.${value}.label`),
|
|
})),
|
|
defaultValue: "grid",
|
|
}),
|
|
})),
|
|
supportedIntegrations: getIntegrationKindsByCategory("dnsHole"),
|
|
errors: {
|
|
INTERNAL_SERVER_ERROR: {
|
|
icon: IconServerOff,
|
|
message: (t) => t("widget.dnsHoleSummary.error.internalServerError"),
|
|
},
|
|
},
|
|
}).withDynamicImport(() => import("./component"));
|