Add support for submenus to reflect HA state.

This commit is contained in:
Dermot Duffy
2021-12-19 13:02:54 -08:00
parent 803669865f
commit 22903edf59
6 changed files with 175 additions and 98 deletions
+19 -2
View File
@@ -1,3 +1,4 @@
import { StyleInfo } from 'lit/directives/style-map';
import {
CallServiceActionConfig,
CustomActionConfig,
@@ -269,11 +270,19 @@ export const menuStateIconSchema = stateIconSchema.merge(
);
export type MenuStateIcon = z.infer<typeof menuStateIconSchema>;
const menuSubmenuItemSchema = elementsBaseSchema.merge(
z.object({
entity: z.string().optional(),
icon: z.string().optional(),
state_color: z.boolean().default(true),
}),
);
export type MenuSubmenuItem = z.infer<typeof menuSubmenuItemSchema>;
export const menuSubmenuSchema = iconSchema.merge(
z.object({
type: z.literal('custom:frigate-card-menu-submenu'),
// Menu items don't strictly require their own icon.
items: iconSchema.omit({ type: true }).partial({ icon: true }).array(),
items: menuSubmenuItemSchema.array(),
}),
);
export type MenuSubmenu = z.infer<typeof menuSubmenuSchema>;
@@ -644,6 +653,14 @@ export interface Message {
icon?: string;
}
export interface StateParameters {
entity?: string;
icon?: string;
title?: string | null;
state_color?: boolean;
style?: StyleInfo;
}
/**
* Home Assistant API types.
*/