Files
homarr/packages/widgets/src/firewall/index.ts
T
ajnart a253dcb7d8 fix(widgets): add typed refetchInterval presets to WidgetDefinition
The v1.69.0 caching refactor replaced Redis pub/sub with a global 30s
client polling interval. Live monitoring widgets (health-monitoring,
Dashdot, dns-hole) that previously refreshed every 5s were stuck at 30s.

Adds a typed WidgetRefetchInterval preset (fiveSeconds | never) to
WidgetDefinition. Widgets that need faster polling set fiveSeconds;
widgets that don't need polling set never (fetch on mount only, manual
refresh via context menu). Absence = global 30s default.

 nine widgets get fiveSeconds (live monitoring)
 sixteen widgets get never (slow data, mount-only)
 remaining widgets use the 30s default

Also removes inline refetchInterval from docker widget component.

Fixes #6268
2026-07-15 11:42:47 +02:00

23 lines
781 B
TypeScript

import { widgetRefetchInterval } from "../definition";
import { IconWall, IconWallOff } from "@tabler/icons-react";
import { getIntegrationKindsByCategory } from "@homarr/definitions";
import { createWidgetDefinition } from "../definition";
import { optionsBuilder } from "../options";
export const { definition, componentLoader } = createWidgetDefinition("firewall", {
icon: IconWall,
refetchInterval: widgetRefetchInterval.fiveSeconds,
createOptions() {
return optionsBuilder.from(() => ({}));
},
supportedIntegrations: getIntegrationKindsByCategory("firewall"),
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconWallOff,
message: (t) => t("widget.firewall.error.internalServerError"),
},
},
}).withDynamicImport(() => import("./component"));