Extract useIsVideoRoom hook (#12843)
* Extract useIsVideoRoom hook Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update RoomInfoLine.tsx --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
bc21ed3010
commit
2e6f8511f2
5 changed files with 29 additions and 14 deletions
|
@ -16,6 +16,26 @@ limitations under the License.
|
|||
|
||||
import type { Room } from "matrix-js-sdk/src/matrix";
|
||||
import SettingsStore from "../settings/SettingsStore";
|
||||
import { useFeatureEnabled } from "../hooks/useSettings";
|
||||
|
||||
function checkIsVideoRoom(room: Room, elementCallVideoRoomsEnabled: boolean): boolean {
|
||||
return room.isElementVideoRoom() || (elementCallVideoRoomsEnabled && room.isCallRoom());
|
||||
}
|
||||
|
||||
export const isVideoRoom = (room: Room): boolean =>
|
||||
room.isElementVideoRoom() || (SettingsStore.getValue("feature_element_call_video_rooms") && room.isCallRoom());
|
||||
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);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue