diff --git a/src/components/surround-thumbnails.ts b/src/components/surround-thumbnails.ts index 8089a37d..a3d8c2d4 100644 --- a/src/components/surround-thumbnails.ts +++ b/src/components/surround-thumbnails.ts @@ -145,6 +145,8 @@ export class FrigateCardSurround extends LitElement { .selected=${this.view.childIndex} @frigate-card:change-view=${(ev: CustomEvent) => changeDrawer(ev, 'close')} @frigate-card:carousel:tap=${(ev: CustomEvent) => { + // Send the view change from the source of the tap event, so the + // view change will be caught by the handler above (to close the drawer). this.view ?.evolve({ view: this.targetView || 'event', @@ -152,7 +154,7 @@ export class FrigateCardSurround extends LitElement { childIndex: ev.detail.childIndex, context: null, }) - .dispatchChangeEvent(this); + .dispatchChangeEvent(ev.composedPath()[0]); }} > ` diff --git a/src/view.ts b/src/view.ts index 86bcda83..782a545c 100644 --- a/src/view.ts +++ b/src/view.ts @@ -145,9 +145,9 @@ export class View { /** * Dispatch an event to request a view change. - * @param node The element dispatching the event. + * @param target The target dispatching the event. */ - public dispatchChangeEvent(node: HTMLElement): void { - dispatchFrigateCardEvent(node, 'change-view', this); + public dispatchChangeEvent(target: EventTarget): void { + dispatchFrigateCardEvent(target, 'change-view', this); } }