Remove the MediaQuery wrapper from the camera manager.
This commit is contained in:
@@ -239,7 +239,6 @@ export class FrigateCardThumbnail extends LitElement {
|
||||
@property({ attribute: false })
|
||||
public hass?: ExtendedHomeAssistant;
|
||||
|
||||
// CameraManager used for marking media as favorite.
|
||||
@property({ attribute: false })
|
||||
public cameraManager?: CameraManager;
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ import { ViewMedia } from '../view/media';
|
||||
import { ViewMediaClassifier } from '../view/media-classifier';
|
||||
import { rangesOverlap } from '../camera-manager/range';
|
||||
import { View } from '../view/view';
|
||||
import { MediaQuery } from '../camera-manager/types';
|
||||
|
||||
interface FrigateCardGroupData {
|
||||
id: string;
|
||||
@@ -501,11 +502,9 @@ export class FrigateCardTimelineCore extends LitElement {
|
||||
targetTime: properties.time,
|
||||
},
|
||||
);
|
||||
} else if (
|
||||
properties.item &&
|
||||
properties.what === 'item'
|
||||
) {
|
||||
const newResults = this.view.queryResults?.clone()
|
||||
} else if (properties.item && properties.what === 'item') {
|
||||
const newResults = this.view.queryResults
|
||||
?.clone()
|
||||
.resetSelectedResult()
|
||||
.selectResultIfFound(
|
||||
(media) => !!this.cameras && media.getID() === properties.item,
|
||||
@@ -972,14 +971,17 @@ export class FrigateCardTimelineCore extends LitElement {
|
||||
}
|
||||
|
||||
protected _alreadyHasAcceptableMediaQuery(freshMediaQuery: MediaQueries): boolean {
|
||||
const currentQueries = this.view?.query?.getQueries();
|
||||
const currentResultTimestamp = this.view?.queryResults?.getResultsTimestamp();
|
||||
|
||||
return (
|
||||
!!this.cameraManager &&
|
||||
!!this.view?.query &&
|
||||
!!this.view.queryResults &&
|
||||
freshMediaQuery.isEqual(this.view.query) &&
|
||||
this.cameraManager.areMediaQueriesResultsFresh(
|
||||
this.view.query,
|
||||
this.view.queryResults,
|
||||
!!currentQueries &&
|
||||
!!currentResultTimestamp &&
|
||||
isEqual(currentQueries, freshMediaQuery.getQueries()) &&
|
||||
this.cameraManager.areMediaQueriesResultsFresh<MediaQuery>(
|
||||
currentQueries,
|
||||
currentResultTimestamp,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ export class FrigateCardTimeline extends LitElement {
|
||||
.hass=${this.hass}
|
||||
.view=${this.view}
|
||||
.thumbnailConfig=${this.timelineConfig.controls.thumbnails}
|
||||
.cameraManager=${this.cameraManager}
|
||||
.cameras=${this.cameras}
|
||||
>
|
||||
<frigate-card-timeline-core
|
||||
|
||||
@@ -380,18 +380,23 @@ export class FrigateCardViewerCarousel extends LitElement {
|
||||
const clipQuery = this.view.query.clone();
|
||||
clipQuery.convertToClipsQueries();
|
||||
|
||||
let results: MediaQueriesResults | null;
|
||||
const queries = clipQuery.getQueries();
|
||||
if (!queries) {
|
||||
return;
|
||||
}
|
||||
|
||||
let mediaArray: ViewMedia[] | null;
|
||||
try {
|
||||
results = await this.cameraManager.executeMediaQueries(this.hass, clipQuery);
|
||||
mediaArray = await this.cameraManager.executeMediaQueries(this.hass, queries);
|
||||
} catch (e) {
|
||||
errorToConsole(e as Error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!results) {
|
||||
if (!mediaArray) {
|
||||
return;
|
||||
}
|
||||
|
||||
const results = new MediaQueriesResults(mediaArray);
|
||||
results.selectResultIfFound((clipMedia) => clipMedia.getID() === media.getID());
|
||||
if (!results.hasSelectedResult()) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user