Files
homarr/packages/widgets/src/tracearr/index.ts
T
ajnart 7fe17c7384 fix(widgets): add refetchInterval to WidgetDefinition for per-widget polling
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 refetchInterval?: number | null to WidgetDefinition:
- number = poll every N seconds (e.g. 5 for live monitoring)
- null = fetch on mount only, no background polling
- undefined = use global 30s default

9 widgets set refetchInterval: 5 (live monitoring)
16 widgets set refetchInterval: null (slow data, mount-only)
Removed inline refetchInterval from docker widget component.

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

34 lines
942 B
TypeScript

import { IconActivityHeartbeat, IconServerOff } from "@tabler/icons-react";
import { createWidgetDefinition } from "../definition";
import { optionsBuilder } from "../options";
export const { definition, componentLoader } = createWidgetDefinition("tracearr", {
icon: IconActivityHeartbeat,
refetchInterval: 5,
createOptions() {
return optionsBuilder.from((factory) => ({
showStreams: factory.switch({
defaultValue: true,
}),
showStats: factory.switch({
defaultValue: true,
}),
showRecentActivity: factory.switch({
defaultValue: true,
}),
showViolations: factory.switch({
defaultValue: true,
}),
}));
},
supportedIntegrations: ["tracearr"],
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconServerOff,
message: (t) => t("widget.tracearr.error.internalServerError"),
},
},
}).withDynamicImport(() => import("./component"));