Do not require all title popup options be specified.

This commit is contained in:
Dermot Duffy
2023-10-03 19:53:02 -07:00
parent 6bba16cb86
commit 913355ad1d
3 changed files with 36 additions and 11 deletions
+8 -1
View File
@@ -64,7 +64,14 @@ export class FrigateCardTitleControl extends LitElement {
protected _toastRef: Ref<PaperToast> = createRef();
protected render(): TemplateResult {
if (!this.text || !this.config || this.config.mode == 'none' || !this.fitInto) {
if (
!this.text ||
!this.config ||
!this.config.mode ||
this.config.duration_seconds === undefined ||
this.config.mode === 'none' ||
!this.fitInto
) {
return html``;
}
+10 -8
View File
@@ -723,14 +723,16 @@ export type NextPreviousControlConfig = z.infer<typeof nextPreviousControlConfig
// *************************************************************************
const titleControlConfigSchema = z.object({
mode: z.enum([
'none',
'popup-top-right',
'popup-top-left',
'popup-bottom-right',
'popup-bottom-left',
]),
duration_seconds: z.number().min(0).max(60),
mode: z
.enum([
'none',
'popup-top-right',
'popup-top-left',
'popup-bottom-right',
'popup-bottom-left',
])
.optional(),
duration_seconds: z.number().min(0).max(60).optional(),
});
export type TitleControlConfig = z.infer<typeof titleControlConfigSchema>;
+17 -1
View File
@@ -4,7 +4,7 @@ import {
customSchema,
dimensionsConfigSchema,
frigateCardCustomActionsBaseSchema,
frigateCardPTZSchema
frigateCardPTZSchema,
} from '../../src/config/types';
import { createConfig } from '../test-utils';
@@ -419,3 +419,19 @@ describe('should handle custom frigate elements', () => {
expect(result.success).toBeTruthy();
});
});
// https://github.com/dermotduffy/frigate-hass-card/issues/1280
it('should not require title controls to specify all options', () => {
expect(
createConfig({
cameras: [],
live: {
controls: {
title: {
mode: 'popup-top-left',
},
},
},
}),
).toBeTruthy();
});