ringcentral-widgets
Version:
RingCentral Integration Widget Library
68 lines (63 loc) • 2.45 kB
text/typescript
import {
RcUIModuleV2,
UIFunctions,
UIProps,
} from '@ringcentral-integration/core';
import { Module } from 'ringcentral-integration/lib/di';
import callingOptions from 'ringcentral-integration/modules/CallingSettings/callingOptions';
import { Deps, AudioSettingsPanelProps } from './AudioSettingsUI.interface';
class AudioSettingsUI extends RcUIModuleV2<Deps> {
constructor(deps: Deps) {
super({
deps,
});
}
getUIProps(): UIProps<AudioSettingsPanelProps> {
return {
currentLocale: this._deps.locale.currentLocale,
dialButtonVolume: this._deps.audioSettings.dialButtonVolume,
dialButtonMuted: this._deps.audioSettings.dialButtonMuted,
ringtoneVolume: this._deps.audioSettings.ringtoneVolume,
ringtoneMuted: this._deps.audioSettings.ringtoneMuted,
callVolume: this._deps.audioSettings.callVolume,
availableInputDevices: this._deps.audioSettings.availableInputDevices,
inputDeviceId: this._deps.audioSettings.inputDeviceId,
availableOutputDevices: this._deps.audioSettings.availableOutputDevices,
outputDeviceId: this._deps.audioSettings.outputDeviceId,
supportDevices: this._deps.audioSettings.supportDevices,
userMedia: this._deps.audioSettings.userMedia,
isWebRTC: this._deps.callingSettings.callWith === callingOptions.browser,
outputDeviceDisabled: !this._deps.audioSettings.availableOutputDevices
.length,
inputDeviceDisabled: !!(
!this._deps.audioSettings.availableInputDevices.length ||
(this._deps.webphone && this._deps.webphone.sessions.length > 0) ||
(this._deps.callMonitor.useTelephonySession &&
this._deps.callMonitor.activeRingCalls.length +
this._deps.callMonitor.activeOnHoldCalls.length +
this._deps.callMonitor.activeCurrentCalls.length >
0)
),
};
}
getUIFunctions(): UIFunctions<AudioSettingsPanelProps> {
return {
onBackButtonClick: () => this._deps.routerInteraction.goBack(),
onSave: (data) => this._deps.audioSettings.setData(data),
checkUserMedia: () => this._deps.audioSettings.getUserMedia(),
};
}
}
export { AudioSettingsUI };