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
23 lines
781 B
TypeScript
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"));
|