fix(install): LiveKit перезапускается при изменении конфига
LiveKit читает livekit.yaml только при старте, а compose не замечает правок в примонтированном файле — из-за этого вебхуки не включались после обновления. Установщик сравнивает sha256 конфига с сохранённым и перезапускает сервис.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
|
||||
import { useVoiceStore, type VoiceDeviceKind } from '@/stores/voice';
|
||||
import { useVoiceConnectionStore } from '@/stores/voiceConnection';
|
||||
|
||||
/** Устройство ввода/вывода в том виде, в каком его показывает интерфейс. */
|
||||
export interface MediaDevice {
|
||||
@@ -72,6 +73,9 @@ export function useMediaDevices(kind: VoiceDeviceKind): MediaDevicesResult {
|
||||
/**
|
||||
* Выбранное устройство нужного вида из стора предпочтений.
|
||||
* Одна обёртка на три вида — чтобы не дублировать селекторы в компонентах.
|
||||
*
|
||||
* Смена устройства сразу применяется к активной голосовой сессии
|
||||
* (`switchActiveDevice`), а выбор сохраняется в предпочтениях клиента.
|
||||
*/
|
||||
export function useDeviceChoice(kind: VoiceDeviceKind): {
|
||||
value: string;
|
||||
@@ -87,5 +91,11 @@ export function useDeviceChoice(kind: VoiceDeviceKind): {
|
||||
return state.outputDeviceId;
|
||||
});
|
||||
const selectDevice = useVoiceStore((state) => state.selectDevice);
|
||||
return { value, select: (deviceId: string) => selectDevice(kind, deviceId) };
|
||||
return {
|
||||
value,
|
||||
select: (deviceId: string) => {
|
||||
selectDevice(kind, deviceId);
|
||||
void useVoiceConnectionStore.getState().switchActiveDevice(kind, deviceId);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user