room edition state granular management

This commit is contained in:
Igor Loskutov
2025-09-03 07:25:22 -04:00
parent 08b82c76ce
commit 048ebbd654

View File

@@ -87,7 +87,6 @@ export default function RoomsList() {
const recordingTypeCollection = createListCollection({ const recordingTypeCollection = createListCollection({
items: recordingTypeOptions, items: recordingTypeOptions,
}); });
const [room_, setRoom] = useState(roomInitialState);
const [roomInput, setRoomInput] = useState<null | typeof roomInitialState>( const [roomInput, setRoomInput] = useState<null | typeof roomInitialState>(
null, null,
); );
@@ -136,8 +135,8 @@ export default function RoomsList() {
[detailedEditedRoom], [detailedEditedRoom],
); );
// here for minimal change in unrelated PR to make it work "backward-compatible" way. TODO make sense of it // a room input value or a last api room state
const room = roomInput || editedRoom || room_; const room = roomInput || editedRoom || roomInitialState;
const roomTestWebhookMutation = useRoomTestWebhook(); const roomTestWebhookMutation = useRoomTestWebhook();
@@ -283,7 +282,7 @@ export default function RoomsList() {
}); });
} }
setRoom(roomInitialState); setRoomInput(null);
setIsEditing(false); setIsEditing(false);
setEditRoomId(""); setEditRoomId("");
setNameError(""); setNameError("");
@@ -378,7 +377,7 @@ export default function RoomsList() {
colorPalette="primary" colorPalette="primary"
onClick={() => { onClick={() => {
setIsEditing(false); setIsEditing(false);
setRoom(roomInitialState); setRoomInput(null);
setNameError(""); setNameError("");
setShowWebhookSecret(false); setShowWebhookSecret(false);
setWebhookTestResult(null); setWebhookTestResult(null);
@@ -447,7 +446,7 @@ export default function RoomsList() {
<Select.Root <Select.Root
value={[room.roomMode]} value={[room.roomMode]}
onValueChange={(e) => onValueChange={(e) =>
setRoom({ ...room, roomMode: e.value[0] }) setRoomInput({ ...room, roomMode: e.value[0] })
} }
collection={roomModeCollection} collection={roomModeCollection}
> >
@@ -477,7 +476,7 @@ export default function RoomsList() {
<Select.Root <Select.Root
value={[room.recordingType]} value={[room.recordingType]}
onValueChange={(e) => onValueChange={(e) =>
setRoom({ setRoomInput({
...room, ...room,
recordingType: e.value[0], recordingType: e.value[0],
recordingTrigger: recordingTrigger:
@@ -512,7 +511,7 @@ export default function RoomsList() {
<Select.Root <Select.Root
value={[room.recordingTrigger]} value={[room.recordingTrigger]}
onValueChange={(e) => onValueChange={(e) =>
setRoom({ ...room, recordingTrigger: e.value[0] }) setRoomInput({ ...room, recordingTrigger: e.value[0] })
} }
collection={recordingTriggerCollection} collection={recordingTriggerCollection}
disabled={room.recordingType !== "cloud"} disabled={room.recordingType !== "cloud"}
@@ -567,7 +566,7 @@ export default function RoomsList() {
<Select.Root <Select.Root
value={room.zulipStream ? [room.zulipStream] : []} value={room.zulipStream ? [room.zulipStream] : []}
onValueChange={(e) => onValueChange={(e) =>
setRoom({ setRoomInput({
...room, ...room,
zulipStream: e.value[0], zulipStream: e.value[0],
zulipTopic: "", zulipTopic: "",
@@ -602,7 +601,7 @@ export default function RoomsList() {
<Select.Root <Select.Root
value={room.zulipTopic ? [room.zulipTopic] : []} value={room.zulipTopic ? [room.zulipTopic] : []}
onValueChange={(e) => onValueChange={(e) =>
setRoom({ ...room, zulipTopic: e.value[0] }) setRoomInput({ ...room, zulipTopic: e.value[0] })
} }
collection={topicCollection} collection={topicCollection}
disabled={!room.zulipAutoPost} disabled={!room.zulipAutoPost}