diff --git a/webapp/packages/authentication/src/Dialog/AuthDialog.tsx b/webapp/packages/authentication/src/Dialog/AuthDialog.tsx index 18cbe67015..2823f8bd67 100644 --- a/webapp/packages/authentication/src/Dialog/AuthDialog.tsx +++ b/webapp/packages/authentication/src/Dialog/AuthDialog.tsx @@ -7,8 +7,9 @@ */ import { observer } from 'mobx-react'; -import { useEffect } from 'react'; -import { useTabState, Tab as BaseTab, TabList } from 'reakit/Tab'; +import { + useTabState, Tab as BaseTab, TabList +} from 'reakit/Tab'; import styled, { css } from 'reshadow'; import { SubmittingForm, ErrorMessage } from '@dbeaver/core/blocks'; @@ -102,7 +103,6 @@ export const AuthDialog: DialogComponent = observer( selectedId: controller.provider?.id, }); tab.selectedId = controller.provider?.id || null; - useEffect(() => controller.selectProvider(tab.selectedId!), [tab.selectedId]); return styled(useStyles(styles))( = observer( header={( {controller.providers.map(provider => ( - {provider.label} + controller.selectProvider(provider.id)} + > + {provider.label} + ))} )} @@ -131,6 +139,7 @@ export const AuthDialog: DialogComponent = observer( authenticate={controller.isAuthenticating} /> )} + {!controller.provider && <>Select available provider} {controller.error.responseMessage && ( { + if (providerId === this.provider?.id) { + return; + } this.provider = this.authProviderService .providers.data.find(provider => provider.id === providerId) || null; this.credentials = {};