diff --git a/src/components/AuthorizerSocialLogin.tsx b/src/components/AuthorizerSocialLogin.tsx index a4d737e..ee7986b 100644 --- a/src/components/AuthorizerSocialLogin.tsx +++ b/src/components/AuthorizerSocialLogin.tsx @@ -10,6 +10,7 @@ import { LinkedIn } from '../icons/linkedin'; import { Apple } from '../icons/apple'; import { Twitter } from '../icons/twitter'; import { Microsoft } from '../icons/microsoft'; +import { Twitch } from '../icons/twitch'; export const AuthorizerSocialLogin: React.FC<{ urlProps?: Record; @@ -23,7 +24,8 @@ export const AuthorizerSocialLogin: React.FC<{ config.is_linkedin_login_enabled || config.is_apple_login_enabled || config.is_twitter_login_enabled || - config.is_microsoft_login_enabled; + config.is_microsoft_login_enabled || + config.is_twitch_login_enabled; const data: { scope?: string; @@ -139,6 +141,20 @@ export const AuthorizerSocialLogin: React.FC<{
)} + {config.is_twitch_login_enabled && ( + <> + { + window.location.href = `${config.authorizerURL}/oauth_login/twitch?${queryParams}`; + }} + > + + Continue with Twitch + +
+ + )} {hasSocialLogin && (config.is_basic_authentication_enabled || config.is_magic_link_login_enabled) && ( diff --git a/src/contexts/AuthorizerContext.tsx b/src/contexts/AuthorizerContext.tsx index 383aa4b..67a7469 100644 --- a/src/contexts/AuthorizerContext.tsx +++ b/src/contexts/AuthorizerContext.tsx @@ -28,6 +28,7 @@ const AuthorizerContext = createContext({ is_apple_login_enabled: false, is_twitter_login_enabled: false, is_microsoft_login_enabled: false, + is_twitch_login_enabled: false, is_email_verification_enabled: false, is_basic_authentication_enabled: false, is_magic_link_login_enabled: false, @@ -96,6 +97,7 @@ let initialState: AuthorizerState = { is_apple_login_enabled: false, is_twitter_login_enabled: false, is_microsoft_login_enabled: false, + is_twitch_login_enabled: false, is_email_verification_enabled: false, is_basic_authentication_enabled: false, is_magic_link_login_enabled: false, diff --git a/src/icons/twitch.tsx b/src/icons/twitch.tsx new file mode 100644 index 0000000..85ba8f9 --- /dev/null +++ b/src/icons/twitch.tsx @@ -0,0 +1,23 @@ +import React from 'react'; + +export const Twitch = () => { + return ( +
+ + + +
+ ); +}; diff --git a/src/types/index.ts b/src/types/index.ts index 1714b41..063c141 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -16,6 +16,7 @@ export type AuthorizerState = { is_apple_login_enabled: boolean; is_twitter_login_enabled: boolean; is_microsoft_login_enabled: boolean; + is_twitch_login_enabled: boolean; is_email_verification_enabled: boolean; is_basic_authentication_enabled: boolean; is_magic_link_login_enabled: boolean; @@ -41,6 +42,7 @@ export type AuthorizerContextPropsType = { is_apple_login_enabled: boolean; is_twitter_login_enabled: boolean; is_microsoft_login_enabled: boolean; + is_twitch_login_enabled: boolean; is_email_verification_enabled: boolean; is_basic_authentication_enabled: boolean; is_magic_link_login_enabled: boolean;