fix(custom-widgets): refine v2 authoring

This commit is contained in:
Thomas Camlong committed 2026-07-20 14:14:53 +02:00
1 parent b050c267b6
commit f9863b8402
124 files changed
+2089 -913

No files matched your search

@@ -88,8 +88,6 @@ export const managementQueryProcedures = {
optionsSchema: widget.optionsSchema,
defaultOptions: widget.defaultOptions,
template: widget.template,
stateSchema: widget.stateSchema ?? {},
defaultState: widget.defaultState ?? {},
sources: widget.sources.map(({ id, name, networkScope, auth }) => ({
id,
name,
@@ -60,8 +60,6 @@ const previewCreateProcedure = manageProcedure
template: input.definition.template,
optionsSchema: input.definition.optionsSchema,
defaultOptions: input.definition.defaultOptions,
stateSchema: input.definition.stateSchema ?? {},
defaultState: input.definition.defaultState ?? {},
secrets,
definitionId: input.definitionId,
});
@@ -75,7 +73,6 @@ const previewCreateProcedure = manageProcedure
definition: {
template: input.definition.template,
defaultOptions: input.definition.defaultOptions,
defaultState: input.definition.defaultState ?? {},
},
};
});
@@ -91,8 +88,6 @@ export const previewBaseProcedures = {
template: session.template,
optionsSchema: session.optionsSchema,
defaultOptions: session.defaultOptions,
stateSchema: session.stateSchema,
defaultState: session.defaultState,
requests: session.requests.map(
({ id, kind, method, minimumBoardPermission, trigger, parameters, confirmation, invalidates }) => ({
id,
@@ -13,8 +13,6 @@ export function serializeCustomWidgetDefinition(definition: HomarrCustomWidgetV2
requests: stringifySuperJson(definition.requests),
optionsSchema: stringifySuperJson(definition.optionsSchema),
defaultOptions: stringifySuperJson(definition.defaultOptions),
stateSchema: definition.stateSchema ? stringifySuperJson(definition.stateSchema) : null,
defaultState: definition.defaultState ? stringifySuperJson(definition.defaultState) : null,
template: definition.template,
};
}
@@ -22,16 +20,7 @@ export function serializeCustomWidgetDefinition(definition: HomarrCustomWidgetV2
export function parseStoredCustomWidgetDefinition(
definition: Pick<
CustomWidgetDefinition,
| "name"
| "description"
| "iconUrl"
| "sources"
| "requests"
| "optionsSchema"
| "defaultOptions"
| "stateSchema"
| "defaultState"
| "template"
"name" | "description" | "iconUrl" | "sources" | "requests" | "optionsSchema" | "defaultOptions" | "template"
>,
): HomarrCustomWidgetV2 {
return customWidgetDefinitionSchema.parse({
@@ -43,8 +32,6 @@ export function parseStoredCustomWidgetDefinition(
requests: parseSuperJson(definition.requests),
optionsSchema: parseSuperJson(definition.optionsSchema),
defaultOptions: parseSuperJson(definition.defaultOptions),
stateSchema: definition.stateSchema ? parseSuperJson(definition.stateSchema) : undefined,
defaultState: definition.defaultState ? parseSuperJson(definition.defaultState) : undefined,
template: definition.template,
});
}
@@ -234,8 +234,6 @@ export const customApiRouter = createTRPCRouter({
data: Object.fromEntries(entries.map(([id, result]) => [id, result.data])),
status: Object.fromEntries(entries.map(([id, result]) => [id, result.status])),
options: resolved.configuration,
stateSchema: resolved.definition.stateSchema ?? {},
defaultState: resolved.definition.defaultState ?? {},
requestCapabilities: resolved.definition.requests.map((request) => ({
id: request.id,
kind: request.kind,