@tencentcloud/call-uikit-vue
Version:
An Open-source Voice & Video Calling UI Component Based on Tencent Cloud Service.
33 lines (27 loc) • 1.11 kB
text/typescript
import { CallStatus, LayoutMode, ViewName } from '../../../../TUICallService/const';
import { ref, watch, toRefs } from '../../../../adapter-vue';
import { useCallInfoContext, useCustomUI, useUserInfoExcludeVolumeContext } from '../../../hooks';
export function useGetLargeViewName() {
const config = useCustomUI();
const { callStatus } = toRefs(useCallInfoContext());
const largeViewName = ref(ViewName.LOCAL);
const { remoteUserListExcludeVolume } = toRefs(useUserInfoExcludeVolumeContext());
watch([remoteUserListExcludeVolume, config, callStatus], () => {
if (callStatus.value === CallStatus.CALLING) {
return;
}
const c2cLayoutModes = [LayoutMode.RemoteInLargeView, LayoutMode.LocalInLargeView];
const customLayoutMode = config.value?.layoutMode;
if (c2cLayoutModes.includes(customLayoutMode)) {
// @ts-ignore
largeViewName.value = config.value?.layoutMode;
return;
}
if (remoteUserListExcludeVolume.value?.[0]?.isEnter) {
largeViewName.value = ViewName.REMOTE;
}
}, {
immediate: true,
});
return largeViewName;
}