in packages/react/src/components/Authenticator/FederatedSignIn/FederatedSignIn.tsx [7:74]
export function FederatedSignIn() {
const { _state, route } = useAuthenticator();
const { socialProviders = [] } = _state.context.config;
if (socialProviders.length === 0) {
return null;
}
const federatedText = route === 'signUp' ? 'Up' : 'In';
return (
<Flex
direction="column"
padding={`0 0 1rem 0`}
className="federated-sign-in-container"
>
{socialProviders.map((provider) => {
switch (provider) {
case 'amazon':
return (
<FederatedSignInButton
icon="amazon"
key={provider}
provider={FederatedIdentityProviders.Amazon}
text={translate<string>(`Sign ${federatedText} with Amazon`)}
/>
);
case 'apple':
return (
<FederatedSignInButton
icon="apple"
key={provider}
provider={FederatedIdentityProviders.Apple}
text={translate<string>(`Sign ${federatedText} with Apple`)}
/>
);
case 'facebook':
return (
<FederatedSignInButton
icon="facebook"
key={provider}
provider={FederatedIdentityProviders.Facebook}
text={translate<string>(`Sign ${federatedText} with Facebook`)}
/>
);
case 'google':
return (
<FederatedSignInButton
icon="google"
key={provider}
provider={FederatedIdentityProviders.Google}
text={translate<string>(`Sign ${federatedText} with Google`)}
/>
);
default:
console.error(
`Authenicator does not support ${provider}. Please open an issue: https://github.com/aws-amplify/amplify-ui/issues/choose`
);
}
})}
<Flex data-or-container="">
<View data-or-line>or</View>
<Divider size="small" />
</Flex>
</Flex>
);
}