Files
Desktop/ts/util/isGroupOrAdhocCall.std.ts
2025-12-19 10:16:43 -06:00

35 lines
1016 B
TypeScript

// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { CallMode } from '../types/CallDisposition.std.js';
import type {
ActiveCallType,
ActiveGroupCallType,
} from '../types/Calling.std.js';
import type {
DirectCallStateType,
GroupCallStateType,
} from '../state/ducks/calling.preload.js';
export function isGroupOrAdhocActiveCall(
activeCall: ActiveCallType | undefined
): activeCall is ActiveGroupCallType {
return Boolean(activeCall && isGroupOrAdhocCallMode(activeCall.callMode));
}
export function isGroupOrAdhocCallMode(
callMode: CallMode | undefined | null
): callMode is CallMode.Group | CallMode.Adhoc {
return callMode === CallMode.Group || callMode === CallMode.Adhoc;
}
export function isGroupOrAdhocCallState(
callState: DirectCallStateType | GroupCallStateType | undefined
): callState is GroupCallStateType {
return Boolean(
callState &&
(callState.callMode === CallMode.Group ||
callState.callMode === CallMode.Adhoc)
);
}