Implement selectBestViewForNonFrigateCameras
This commit is contained in:
+5
-8
@@ -1246,19 +1246,16 @@ export class FrigateCard extends LitElement {
|
||||
case 'camera_select':
|
||||
const camera = frigateCardAction.camera;
|
||||
if (this._cameras?.has(camera) && this._view) {
|
||||
let targetView =
|
||||
const targetView =
|
||||
this._getConfig().view.camera_select === 'current'
|
||||
? this._view.view
|
||||
: (this._getConfig().view.camera_select as FrigateCardView);
|
||||
// Fallback to supported views for non-Frigate cameras.
|
||||
if (!this._cameras?.get(camera)?.camera_name) {
|
||||
targetView = View.supportsNonFrigateCameras(targetView)
|
||||
? targetView
|
||||
: 'live';
|
||||
}
|
||||
this._changeView({
|
||||
view: new View({
|
||||
view: targetView,
|
||||
view: this._cameras?.get(camera)?.camera_name
|
||||
? targetView
|
||||
: // Fallback to supported views for non-Frigate cameras.
|
||||
View.selectBestViewForNonFrigateCameras(targetView),
|
||||
camera: camera,
|
||||
}),
|
||||
});
|
||||
|
||||
+5
-5
@@ -36,12 +36,12 @@ export class View {
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether a view is supported on non-Frigate cameras.
|
||||
* @param view The view to determine support for.
|
||||
* @returns Whether the view is supported by non-Frigate cameras.
|
||||
* Selects the best view for a non-Frigate camera.
|
||||
* @param view The wanted view.
|
||||
* @returns The closest view supported by the non-Frigate camera.
|
||||
*/
|
||||
public static supportsNonFrigateCameras(view: FrigateCardView): boolean {
|
||||
return ['timeline', 'image', 'live'].includes(view);
|
||||
public static selectBestViewForNonFrigateCameras(view: FrigateCardView) {
|
||||
return ['timeline', 'image'].includes(view) ? view : 'live';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user