mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-21 12:49:06 +00:00
fix: meeting useEffect frontend-only dedupe (#647)
* meeting useEffect frontend-only dedupe * format * also get room by name backend fix --------- Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com>
This commit is contained in:
@@ -147,7 +147,12 @@ class MeetingController:
|
||||
Get a meeting by room name.
|
||||
For backward compatibility, returns the most recent meeting.
|
||||
"""
|
||||
query = meetings.select().where(meetings.c.room_name == room_name).order_by(end_date.desc())
|
||||
end_date = getattr(meetings.c, "end_date")
|
||||
query = (
|
||||
meetings.select()
|
||||
.where(meetings.c.room_name == room_name)
|
||||
.order_by(end_date.desc())
|
||||
)
|
||||
result = await get_database().fetch_one(query)
|
||||
if not result:
|
||||
return None
|
||||
|
||||
@@ -165,6 +165,7 @@ async def rooms_get_by_name(
|
||||
):
|
||||
user_id = user["sub"] if user else None
|
||||
room = await rooms_controller.get_by_name(room_name)
|
||||
logger.debug("room: %s", room)
|
||||
if not room:
|
||||
raise HTTPException(status_code=404, detail="Room not found")
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { useEffect, useState, useRef } from "react";
|
||||
import { useError } from "../(errors)/errorContext";
|
||||
import type { components } from "../reflector-api";
|
||||
import { shouldShowError } from "../lib/errorUtils";
|
||||
@@ -37,11 +37,16 @@ const useRoomMeeting = (
|
||||
const createMeetingMutation = useRoomsCreateMeeting();
|
||||
const reloadHandler = () => setReload((prev) => prev + 1);
|
||||
|
||||
// this is to undupe dev mode room creation
|
||||
const creatingRef = useRef(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (!roomName) return;
|
||||
if (creatingRef.current) return;
|
||||
|
||||
// For any case where we need a meeting (with or without meetingId),
|
||||
const createMeeting = async () => {
|
||||
creatingRef.current = true;
|
||||
try {
|
||||
const result = await createMeetingMutation.mutateAsync({
|
||||
params: {
|
||||
@@ -64,6 +69,8 @@ const useRoomMeeting = (
|
||||
} else {
|
||||
setError(error);
|
||||
}
|
||||
} finally {
|
||||
creatingRef.current = false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user