ringcentral-widgets
Version:
RingCentral Integration Widget Library
45 lines (41 loc) • 1.33 kB
text/typescript
import { RcUIModuleV2 } from '@ringcentral-integration/core';
import Module from 'ringcentral-integration/lib/di/decorators/module';
import loginStatus from 'ringcentral-integration/modules/Auth/loginStatus';
import { Deps, GetLoginUIProps } from './LoginUI.interface';
export class LoginUI extends RcUIModuleV2<Deps> {
constructor({ deps = {}, ...options }: Deps & { deps: Record<string, any> }) {
super({
deps: {
...options,
...deps,
},
});
}
getUIProps(props: GetLoginUIProps) {
return {
currentLocale: this._deps.locale.currentLocale,
disabled:
!this._deps.oAuth.oAuthReady ||
this._deps.rateLimiter.throttling ||
!this._deps.connectivityMonitor.connectivity,
showSpinner:
!this._deps.auth.ready ||
this._deps.auth.loginStatus === loginStatus.loggingIn ||
this._deps.auth.loginStatus === loginStatus.loggingOut ||
this._deps.auth.loginStatus === loginStatus.beforeLogout ||
this._deps.auth.loginStatus === loginStatus.loggedIn,
...props,
};
}
getUIFunctions() {
return {
onLoginButtonClick: () => {
this._deps.oAuth.openOAuthPage();
},
};
}
}