feat: support every widget in the demo dashboard (#6696)

This commit is contained in:
Thomas authored and GitHub committed 2026-08-26 08:44:55 +02:00
1 parent 40e34181e7
commit a56ec5d06a
42 files changed
+939 -163

No files matched your search

+1 -1
View File
@@ -8,7 +8,7 @@ export const { definition, componentLoader } = createWidgetDefinition("anchorNot
supportsAdvancedFocus: true,
queryKey: [["widget", "anchorNotes"]],
maxIntegrations: 1,
supportedIntegrations: ["anchor"],
supportedIntegrations: ["anchor", "mock"],
createOptions() {
return optionsBuilder.from((factory) => ({
noteId: factory.anchorNote(),
@@ -14,5 +14,5 @@ export const { definition, componentLoader } = createWidgetDefinition("archiveTe
}),
}));
},
supportedIntegrations: ["archiveTeamWarrior"],
supportedIntegrations: ["archiveTeamWarrior", "mock"],
}).withDynamicImport(() => import("./component"));
+3 -2
View File
@@ -4,7 +4,8 @@ import { createWidgetDefinition, matchesWidgetRuntimeQuery } from "../definition
import { optionsBuilder } from "../options";
const hideUnlessNavidrome = {
shouldHide: (_: unknown, integrationKinds: string[]) => !integrationKinds.includes("navidrome"),
shouldHide: (_: unknown, integrationKinds: string[]) =>
!integrationKinds.includes("navidrome") && !integrationKinds.includes("mock"),
};
const hideUnlessAudiobookshelf = {
@@ -16,7 +17,7 @@ export const { definition, componentLoader } = createWidgetDefinition("audioStat
supportsAdvancedFocus: true,
queryKeys: [[["widget", "audioStats", "getStats"]], [["widget", "mediaServer", "getCurrentStreams"]]],
queryMatcher: matchesWidgetRuntimeQuery,
supportedIntegrations: ["navidrome", "audiobookshelf"],
supportedIntegrations: ["navidrome", "audiobookshelf", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
createOptions() {
+1 -1
View File
@@ -6,7 +6,7 @@ import { optionsBuilder } from "../options";
export const { definition, componentLoader } = createWidgetDefinition("bazarr", {
supportsAdvancedFocus: true,
icon: IconBadgeCc,
supportedIntegrations: ["bazarr"],
supportedIntegrations: ["bazarr", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
createOptions() {
+1 -1
View File
@@ -19,7 +19,7 @@ export const { definition, componentLoader } = createWidgetDefinition("coolify",
}),
}));
},
supportedIntegrations: ["coolify"],
supportedIntegrations: ["coolify", "mock"],
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconServerOff,
+1 -1
View File
@@ -12,7 +12,7 @@ export const { definition, componentLoader } = createWidgetDefinition("firewall"
createOptions() {
return optionsBuilder.from(() => ({}));
},
supportedIntegrations: getIntegrationKindsByCategory("firewall"),
supportedIntegrations: [...getIntegrationKindsByCategory("firewall"), "mock"],
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconWallOff,
@@ -62,7 +62,7 @@ export const { definition, componentLoader } = createWidgetDefinition("immich-al
: undefined,
}),
refetchInterval: null,
supportedIntegrations: ["immich"],
supportedIntegrations: ["immich", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
contextActions: ({ widgetRuntimeRef }) => {
@@ -9,7 +9,7 @@ export const { definition, componentLoader } = createWidgetDefinition("immich-se
queryKeys: [[["widget", "immich", "getServerStats"]], [["widget", "immich", "getAlbums"]]],
queryMatcher: matchesWidgetRuntimeQuery,
refetchInterval: null,
supportedIntegrations: ["immich"],
supportedIntegrations: ["immich", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
createOptions() {
+1 -1
View File
@@ -7,7 +7,7 @@ export const { definition, componentLoader } = createWidgetDefinition("paperless
supportsAdvancedFocus: false,
icon: IconFileText,
refetchInterval: null,
supportedIntegrations: ["paperlessNgx"],
supportedIntegrations: ["paperlessNgx", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
createOptions() {
+1 -1
View File
@@ -9,7 +9,7 @@ import { patchmonOptionsSuperRefine } from "./threshold-validation";
export const { definition, componentLoader } = createWidgetDefinition("patchmon", {
supportsAdvancedFocus: true,
icon: IconShieldCheck,
supportedIntegrations: ["patchmon"],
supportedIntegrations: ["patchmon", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
createOptions() {
@@ -30,7 +30,7 @@ export const { definition, componentLoader } = createWidgetDefinition("speedtest
},
);
},
supportedIntegrations: ["speedtestTracker"],
supportedIntegrations: ["speedtestTracker", "mock"],
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconServerOff,
+1 -1
View File
@@ -9,7 +9,7 @@ export const { definition, componentLoader } = createWidgetDefinition("systemDis
icon: IconServer2,
queryKey: [["widget", "healthMonitoring"]],
refetchInterval: 10,
supportedIntegrations: ["dashDot", "openmediavault", "truenas", "unraid", "synology"],
supportedIntegrations: ["dashDot", "openmediavault", "truenas", "unraid", "synology", "mock"],
createOptions() {
return optionsBuilder.from(
(factory) => ({
@@ -24,7 +24,7 @@ export const { definition, componentLoader } = createWidgetDefinition("systemRes
supportsAdvancedFocus: true,
queryKey: [["widget", "healthMonitoring"]],
refetchInterval: 10,
supportedIntegrations: ["dashDot", "openmediavault", "truenas", "unraid", "glances", "synology"],
supportedIntegrations: ["dashDot", "openmediavault", "truenas", "unraid", "glances", "synology", "mock"],
createOptions() {
return optionsBuilder.from((factory) => ({
hasShadow: factory.switch({ defaultValue: true }),
+1 -1
View File
@@ -24,7 +24,7 @@ export const { definition, componentLoader } = createWidgetDefinition("tracearr"
}),
}));
},
supportedIntegrations: ["tracearr"],
supportedIntegrations: ["tracearr", "mock"],
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconServerOff,
+1 -1
View File
@@ -19,7 +19,7 @@ export const { definition, componentLoader } = createWidgetDefinition("traefik",
}),
}));
},
supportedIntegrations: ["traefik"],
supportedIntegrations: ["traefik", "mock"],
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconRouteOff,
+1 -1
View File
@@ -18,7 +18,7 @@ export const { definition, componentLoader } = createWidgetDefinition("umami", {
],
queryMatcher: matchesWidgetRuntimeQuery,
refetchInterval: null,
supportedIntegrations: ["umami"],
supportedIntegrations: ["umami", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
createOptions() {
+1 -1
View File
@@ -34,7 +34,7 @@ export const { definition, componentLoader } = createWidgetDefinition("uptimeKum
}),
}));
},
supportedIntegrations: ["uptimeKuma"],
supportedIntegrations: ["uptimeKuma", "mock"],
errors: {
INTERNAL_SERVER_ERROR: {
icon: IconServerOff,
+1 -1
View File
@@ -12,5 +12,5 @@ export const { componentLoader, definition } = createWidgetDefinition("vpn", {
createOptions() {
return optionsBuilder.from(() => ({}));
},
supportedIntegrations: getIntegrationKindsByCategory("vpn"),
supportedIntegrations: [...getIntegrationKindsByCategory("vpn"), "mock"],
}).withDynamicImport(() => import("./component"));
+1 -1
View File
@@ -7,7 +7,7 @@ export const { definition, componentLoader } = createWidgetDefinition("wud", {
icon: IconBrandDocker,
supportsAdvancedFocus: true,
refetchInterval: null,
supportedIntegrations: ["wud"],
supportedIntegrations: ["wud", "mock"],
integrationsRequired: true,
maxIntegrations: 1,
createOptions() {