Отключаемый модуль (instance_settings.device_check, дефолт выключен): запрос доступа к камере/микрофону на LoginPage и в карточке "Как вас зовут?" (JoinPage), живое зеркальное превью и кнопки вкл/выкл камеры и микрофона там же. На JoinPage кнопки определяют, с чем гость войдёт в конференцию (RoomPage.LiveKitRoom audio/video вместо жёстких false) — на LoginPage только пре-авторизуют разрешение, без UI (карточка ведёт в лобби, применить выбор некуда). Вход в комнату по умолчанию, как и раньше, с выключенными микрофоном/камерой. Публичный GET /api/v1/public/settings отдаёт флаг модуля обеим страницам до аутентификации.
13 lines
687 B
TypeScript
13 lines
687 B
TypeScript
import { useQuery } from '@tanstack/react-query'
|
||
import { getPublicSettings } from '@/api/public'
|
||
|
||
/**
|
||
* Публичные настройки инстанса (`GET /public/settings`) — общая точка для
|
||
* `LoginPage`/`JoinPage`, обе страницы публичные и `GET /admin/settings` им
|
||
* недоступен. Один и тот же `queryKey` на обеих страницах — переход
|
||
* login → join (или наоборот) не бьёт эндпоинт повторно, пока данные свежие.
|
||
*/
|
||
export function usePublicSettings() {
|
||
return useQuery({ queryKey: ['public-settings'], queryFn: getPublicSettings })
|
||
}
|