From 2f70694632c87847c2d44236a55a0c8be8b98180 Mon Sep 17 00:00:00 2001 From: Artem Tarasov Date: Thu, 25 Aug 2022 18:13:46 +0300 Subject: [PATCH] Web: Login: fix oAuth, modified types --- packages/login/index.d.ts | 4 ++++ packages/login/src/client/components/Login.tsx | 17 ++++++++++++----- .../components/sub-components/more-login.tsx | 4 +++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/login/index.d.ts b/packages/login/index.d.ts index 18f4d9c84d..1d2171cf05 100644 --- a/packages/login/index.d.ts +++ b/packages/login/index.d.ts @@ -104,4 +104,8 @@ declare global { [Login: string]: { [key: any]: string }; }; } + + type HTMLElementEvent = Event & { + target: T; + }; } diff --git a/packages/login/src/client/components/Login.tsx b/packages/login/src/client/components/Login.tsx index d75667d912..d9edf0c696 100644 --- a/packages/login/src/client/components/Login.tsx +++ b/packages/login/src/client/components/Login.tsx @@ -77,12 +77,19 @@ const Login: React.FC = ({ }; const onSocialButtonClick = useCallback( - (e: React.SyntheticEvent) => { - if (!(e.target instanceof HTMLButtonElement)) { - return; + (e: HTMLElementEvent) => { + const { target } = e; + let targetElement = target; + + if ( + !(targetElement instanceof HTMLButtonElement) && + target.parentElement + ) { + targetElement = target.parentElement; + console.log(targetElement); } - const providerName = e.target.dataset.providername; - const url = e.target.dataset.url || ""; + const providerName = targetElement.dataset.providername; + const url = targetElement.dataset.url || ""; try { const tokenGetterWin = isDesktopEditor diff --git a/packages/login/src/client/components/sub-components/more-login.tsx b/packages/login/src/client/components/sub-components/more-login.tsx index 2476d25dc9..0d47262908 100644 --- a/packages/login/src/client/components/sub-components/more-login.tsx +++ b/packages/login/src/client/components/sub-components/more-login.tsx @@ -51,7 +51,9 @@ interface IMoreLoginNodalProps { visible: boolean; onClose: VoidFunction; providers: ProvidersType; - onSocialLoginClick: (e: React.SyntheticEvent) => void; + onSocialLoginClick: ( + e: HTMLElementEvent + ) => void; ssoLabel: string; ssoUrl: string; }