Files
ThreadNet-Web/src/utils/video-rooms.ts
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

34 lines
1.4 KiB
TypeScript
Raw Normal View History

2022-09-16 11:12:27 -04:00
/*
2024-09-09 14:57:16 +01:00
Copyright 2024 New Vector Ltd.
2022-09-16 11:12:27 -04:00
Copyright 2022 The Matrix.org Foundation C.I.C.
2024-09-09 14:57:16 +01:00
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
2022-09-16 11:12:27 -04:00
*/
import type { Room } from "matrix-js-sdk/src/matrix";
2022-09-16 11:12:27 -04:00
import SettingsStore from "../settings/SettingsStore";
2024-07-30 18:36:04 +01:00
import { useFeatureEnabled } from "../hooks/useSettings";
function checkIsVideoRoom(room: Room, elementCallVideoRoomsEnabled: boolean): boolean {
return room.isElementVideoRoom() || (elementCallVideoRoomsEnabled && room.isCallRoom());
}
2022-09-16 11:12:27 -04:00
export const isVideoRoom = (room: Room): boolean =>
2024-07-30 18:36:04 +01:00
checkIsVideoRoom(room, SettingsStore.getValue("feature_element_call_video_rooms"));
/**
* Returns whether the given room is a video room based on the current feature flags.
* @param room The room to check.
* @param skipVideoRoomsEnabledCheck If true, the check for the video rooms feature flag is skipped,
* useful for suggesting to the user to enable the labs flag.
*/
export const useIsVideoRoom = (room?: Room, skipVideoRoomsEnabledCheck = false): boolean => {
const videoRoomsEnabled = useFeatureEnabled("feature_video_rooms");
const elementCallVideoRoomsEnabled = useFeatureEnabled("feature_element_call_video_rooms"); // react to updates as isVideoRoom reads the value itself
if (!room) return false;
if (!videoRoomsEnabled && !skipVideoRoomsEnabledCheck) return false;
return checkIsVideoRoom(room, elementCallVideoRoomsEnabled);
};