feat: Add casting capability to user_agent condition (#2480)
This commit is contained in:
committed by
dermotduffy
parent
261a7e1a92
commit
9eb503deff
@@ -1,6 +1,7 @@
|
||||
import { TemplateRenderer } from '../card-controller/templates';
|
||||
import { getConfigValue } from '../config/management';
|
||||
import { AdvancedCameraCardCondition } from '../config/schema/conditions/types';
|
||||
import { isBeingCasted } from '../utils/casting';
|
||||
import { isCompanionApp } from '../utils/companion';
|
||||
import {
|
||||
ConditionsEvaluationResult,
|
||||
@@ -275,6 +276,8 @@ export class ConditionsManager implements ConditionsManagerReadonlyInterface {
|
||||
result:
|
||||
!!newState?.userAgent &&
|
||||
(!condition.user_agent || condition.user_agent === newState.userAgent) &&
|
||||
(condition.casting === undefined ||
|
||||
condition.casting === isBeingCasted(newState.userAgent)) &&
|
||||
(condition.companion === undefined ||
|
||||
condition.companion === isCompanionApp(newState.userAgent)) &&
|
||||
(condition.user_agent_re === undefined ||
|
||||
|
||||
@@ -5,5 +5,6 @@ export const userAgentConditionSchema = z.object({
|
||||
condition: z.literal('user_agent'),
|
||||
user_agent: z.string().optional(),
|
||||
user_agent_re: regexSchema.optional(),
|
||||
casting: z.boolean().optional(),
|
||||
companion: z.boolean().optional(),
|
||||
});
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/**
|
||||
* Determine if the card is currently being casted.
|
||||
* @returns
|
||||
*/
|
||||
export const isBeingCasted = (): boolean => {
|
||||
return !!navigator.userAgent.match(/CrKey\//);
|
||||
export const isBeingCasted = (userAgent: string = navigator.userAgent): boolean => {
|
||||
return !!userAgent.match(/CrKey\//);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user