Remove unnecessary error handling parameter.

This commit is contained in:
Dermot Duffy
2023-10-02 20:31:27 -07:00
parent c2145ef0d5
commit 5ebd85e5e8
6 changed files with 128 additions and 68 deletions
+16 -13
View File
@@ -101,7 +101,6 @@ export class ViewManager {
}
public async setViewWithNewDisplayMode(displayMode: ViewDisplayMode): Promise<void> {
const host = this._api.getCardElementManager().getElement();
const hass = this._api.getHASSManager().getHASS();
if (this._view && hass) {
@@ -125,18 +124,22 @@ export class ViewManager {
// query for more than one camera, reset the query results, change the
// existing query to refer to all cameras and execute it to fetch new
// results.
const viewWithNewQuery = await executeMediaQueryForView(
host,
this._api.getCameraManager(),
view,
view.query
.clone()
.setQueryCameraIDs(
view.isGrid()
? this._api.getCameraManager().getStore().getVisibleCameraIDs()
: view.camera,
),
);
let viewWithNewQuery: View | null = null;
try {
viewWithNewQuery = await executeMediaQueryForView(
this._api.getCameraManager(),
view,
view.query
.clone()
.setQueryCameraIDs(
view.isGrid()
? this._api.getCameraManager().getStore().getVisibleCameraIDs()
: view.camera,
),
);
} catch (e: unknown) {
this._api.getMessageManager().setErrorIfHigherPriority(e);
}
if (viewWithNewQuery) {
return this._setView(viewWithNewQuery);
+47 -19
View File
@@ -44,10 +44,16 @@ export const changeViewToRecentEventsForCameraAndDependents = async (
}
(
await executeMediaQueryForView(element, cameraManager, view, queries, {
targetView: options?.targetView,
select: options?.select,
})
await executeMediaQueryForViewWithErrorDispatching(
element,
cameraManager,
view,
queries,
{
targetView: options?.targetView,
select: options?.select,
},
)
)?.dispatchChangeEvent(element);
};
@@ -106,10 +112,16 @@ export const changeViewToRecentRecordingForCameraAndDependents = async (
}
(
await executeMediaQueryForView(element, cameraManager, view, queries, {
targetView: options?.targetView,
select: options?.select,
})
await executeMediaQueryForViewWithErrorDispatching(
element,
cameraManager,
view,
queries,
{
targetView: options?.targetView,
select: options?.select,
},
)
)?.dispatchChangeEvent(element);
};
@@ -127,7 +139,6 @@ const createQueriesForRecordingsView = (
};
export const executeMediaQueryForView = async (
element: HTMLElement,
cameraManager: CameraManager,
view: View,
query: MediaQueries,
@@ -138,21 +149,12 @@ export const executeMediaQueryForView = async (
select?: ResultSelectType;
},
): Promise<View | null> => {
let mediaArray: ViewMedia[] | null;
const queries = query.getQueries();
if (!queries) {
return null;
}
try {
mediaArray = await cameraManager.executeMediaQueries<MediaQuery>(queries);
} catch (e) {
errorToConsole(e as Error);
dispatchFrigateCardErrorEvent(element, e as Error);
return null;
}
const mediaArray = await cameraManager.executeMediaQueries<MediaQuery>(queries);
if (!mediaArray) {
return null;
}
@@ -182,6 +184,32 @@ export const executeMediaQueryForView = async (
.mergeInContext(viewerContext);
};
export const executeMediaQueryForViewWithErrorDispatching = async (
element: HTMLElement,
cameraManager: CameraManager,
view: View,
query: MediaQueries,
options?: {
targetCameraID?: string;
targetView?: FrigateCardView;
targetTime?: Date;
select?: ResultSelectType;
},
): Promise<View | null> => {
try {
return await executeMediaQueryForView(cameraManager, view, query, {
targetCameraID: options?.targetCameraID,
targetView: options?.targetView,
targetTime: options?.targetTime,
select: options?.select,
});
} catch (e: unknown) {
errorToConsole(e as Error);
dispatchFrigateCardErrorEvent(element, e as Error);
}
return null;
};
/**
* Find the longest matching media object that contains a given targetTime.
* Longest is chosen to give the most stability to the media viewer.