fix: Ignore URL actions for other card IDs (#2272)

- Closes #2190
This commit is contained in:
Dermot Duffy
2025-12-09 20:22:22 -08:00
committed by GitHub
parent dacde91f3a
commit c9c7e93e19
3 changed files with 108 additions and 10 deletions
+9 -9
View File
@@ -96,6 +96,7 @@ export class QueryStringManager {
protected _getActions(): AdvancedCameraCardCustomActionConfig[] {
const params = new URLSearchParams(window.location.search);
const actions: AdvancedCameraCardCustomActionConfig[] = [];
const configuredCardID = this._api.getConfigManager().getConfig()?.card_id;
const actionRE = new RegExp(
/^(advanced-camera-card|frigate-card)-action([.:](?<cardID>\w+))?[.:](?<action>\w+)/,
);
@@ -107,14 +108,17 @@ export class QueryStringManager {
const cardID: string | undefined = match.groups['cardID'];
const actionName = match.groups['action'];
// Skip actions targeted at other cards.
if (cardID && cardID !== configuredCardID) {
continue;
}
let action: AdvancedCameraCardCustomActionConfig | null = null;
switch (actionName) {
case 'camera_select':
case 'live_substream_select':
if (value) {
action = createCameraAction(actionName, value, {
cardID: cardID,
});
action = createCameraAction(actionName, value, { cardID });
}
break;
case 'camera_ui':
@@ -122,9 +126,7 @@ export class QueryStringManager {
case 'download':
case 'expand':
case 'menu_toggle':
action = createGeneralAction(actionName, {
cardID: cardID,
});
action = createGeneralAction(actionName, { cardID });
break;
case 'clip':
case 'clips':
@@ -136,9 +138,7 @@ export class QueryStringManager {
case 'snapshot':
case 'snapshots':
case 'timeline':
action = createViewAction(actionName, {
cardID: cardID,
});
action = createViewAction(actionName, { cardID });
break;
default:
console.warn(
+1
View File
@@ -254,6 +254,7 @@ export interface CardMicrophoneAPI {
export interface CardQueryStringAPI {
getActionsManager(): ActionsManager;
getCardElementManager(): CardElementManager;
getConfigManager(): ConfigManager;
getViewManager(): ViewManager;
}