diff --git a/src/components/thumbnail-carousel.ts b/src/components/thumbnail-carousel.ts index 7ad9dd18..5eefae89 100644 --- a/src/components/thumbnail-carousel.ts +++ b/src/components/thumbnail-carousel.ts @@ -109,25 +109,52 @@ export class FrigateCardThumbnailCarousel extends FrigateCardCarousel { return; } - return html`
{ - if (this._carousel && this._carousel.clickAllowed()) { - dispatchFrigateCardEvent(this, 'carousel:tap', { - slideIndex: slideIndex, - target: parent, - childIndex: childIndex, - }); - } - stopEventFromActivatingCardWideActions(ev); - }} - > - -
`; + console.log("Checking for retain: " + mediaToRender?.frigate?.event?.retain_indefinitely) + if (mediaToRender.frigate?.event?.retain_indefinitely == true) { + return html`
{ + if (this._carousel && this._carousel.clickAllowed()) { + dispatchFrigateCardEvent(this, 'carousel:tap', { + slideIndex: slideIndex, + target: parent, + childIndex: childIndex, + }); + } + stopEventFromActivatingCardWideActions(ev); + }} + > + + +
`; + } else { + return html`
{ + if (this._carousel && this._carousel.clickAllowed()) { + dispatchFrigateCardEvent(this, 'carousel:tap', { + slideIndex: slideIndex, + target: parent, + childIndex: childIndex, + }); + } + stopEventFromActivatingCardWideActions(ev); + }} + > + +
`; + } } /** diff --git a/src/scss/thumbnail-carousel.scss b/src/scss/thumbnail-carousel.scss index 22055ca5..d7def473 100644 --- a/src/scss/thumbnail-carousel.scss +++ b/src/scss/thumbnail-carousel.scss @@ -25,4 +25,12 @@ // Restrict images to a maximum of thumbnail size. max-width: var(--frigate-card-carousel-thumbnail-size); max-height: var(--frigate-card-carousel-thumbnail-size); +} +.favorite { + position: absolute; + height: 30px; + width: 30px; + top: 8; + right: 8; + color: yellow; } \ No newline at end of file diff --git a/src/types.ts b/src/types.ts index 73856a39..6aeb65b3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -946,6 +946,7 @@ export interface FrigateBrowseMediaSource extends BrowseMediaSource { start_time: number; top_score: number; zones: string[]; + retain_indefinitely: boolean; }; }; } @@ -975,6 +976,7 @@ export const frigateBrowseMediaSourceSchema: z.ZodSchema = z. start_time: z.number(), top_score: z.number(), zones: z.string().array(), + retain_indefinitely: z.boolean(), }), }) .optional(),