From 3ad78be7628c0d029296b301a0e87236c76b7598 Mon Sep 17 00:00:00 2001 From: Sergey Mankovsky Date: Wed, 3 Dec 2025 16:49:17 +0100 Subject: [PATCH] fix: hide rooms settings instead of disabling (#763) * Hide rooms settings instead of disabling * Reset recording trigger --- www/app/(app)/rooms/page.tsx | 220 +++++++++++++++++++++++------------ 1 file changed, 147 insertions(+), 73 deletions(-) diff --git a/www/app/(app)/rooms/page.tsx b/www/app/(app)/rooms/page.tsx index 198df774..147f8351 100644 --- a/www/app/(app)/rooms/page.tsx +++ b/www/app/(app)/rooms/page.tsx @@ -15,9 +15,12 @@ import { createListCollection, useDisclosure, Tabs, + Popover, + Text, + HStack, } from "@chakra-ui/react"; import { useEffect, useMemo, useState } from "react"; -import { LuEye, LuEyeOff } from "react-icons/lu"; +import { LuEye, LuEyeOff, LuInfo } from "react-icons/lu"; import useRoomList from "./useRoomList"; import type { components } from "../../reflector-api"; import { @@ -534,6 +537,10 @@ export default function RoomsList() { room.recordingType === "cloud" ? "automatic-2nd-participant" : "none"; + } else { + if (room.recordingType !== "cloud") { + updates.recordingTrigger = "none"; + } } setRoomInput({ ...room, ...updates }); }} @@ -583,39 +590,75 @@ export default function RoomsList() { Locked room + {room.platform !== "daily" && ( + + Room size + + setRoomInput({ ...room, roomMode: e.value[0] }) + } + collection={roomModeCollection} + > + + + + + + + + + + + + {roomModeOptions.map((option) => ( + + {option.label} + + + ))} + + + + + )} - Room size - - setRoomInput({ ...room, roomMode: e.value[0] }) - } - collection={roomModeCollection} - disabled={room.platform === "daily"} - > - - - - - - - - - - - - {roomModeOptions.map((option) => ( - - {option.label} - - - ))} - - - - - - Recording type + + Recording type + + + + + + + + + + + + None: No recording will be + created. +
+
+ Local: Recording happens on + each participant's device. Files are saved + locally. +
+
+ Cloud: Recording happens on + the platform's servers and is available after + the meeting ends. +
+
+
+
+
+
{ @@ -623,14 +666,12 @@ export default function RoomsList() { const updates: Partial = { recordingType: newRecordingType, }; - // For Daily: if cloud, use automatic; otherwise none if (room.platform === "daily") { updates.recordingTrigger = newRecordingType === "cloud" ? "automatic-2nd-participant" : "none"; } else { - // For Whereby: if not cloud, set to none updates.recordingTrigger = newRecordingType !== "cloud" ? "none" @@ -661,44 +702,77 @@ export default function RoomsList() {
- - Recording start trigger - - setRoomInput({ - ...room, - recordingTrigger: e.value[0], - }) - } - collection={recordingTriggerCollection} - disabled={ - room.recordingType !== "cloud" || - (room.platform === "daily" && - room.recordingType === "cloud") - } - > - - - - - - - - - - - - {recordingTriggerOptions.map((option) => ( - - {option.label} - - - ))} - - - - + {room.recordingType === "cloud" && + room.platform !== "daily" && ( + + + Recording start trigger + + + + + + + + + + + + None: Recording must be + started manually by a participant. +
+
+ Prompt: Participants will + be prompted to start recording when they + join. +
+
+ Automatic: Recording + starts automatically when a second + participant joins. +
+
+
+
+
+
+ + setRoomInput({ + ...room, + recordingTrigger: e.value[0], + }) + } + collection={recordingTriggerCollection} + > + + + + + + + + + + + + {recordingTriggerOptions.map((option) => ( + + {option.label} + + + ))} + + + +
+ )}