hedgedoc/src/components/landing/layout/navigation/sign-in-button.tsx
Erik Michelson b051b109e5
Show login-buttons and boxes only if providers are configured (#122)
* Hide "Sign-in via ..." box if no provider is enabled

* Show sign-in buttons only if auth-providers exist

* Rebase fixes

* Replaced ternary operators with ShowIf

* Added ShowIf on two other code positions
2020-06-04 23:38:21 +02:00

29 lines
1,003 B
TypeScript

import React from 'react'
import { Button } from 'react-bootstrap'
import { ButtonProps } from 'react-bootstrap/Button'
import { Trans, useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
import { LinkContainer } from 'react-router-bootstrap'
import { ApplicationState } from '../../../../redux'
import { ShowIf } from '../../../common/show-if'
type SignInButtonProps = {
className?: string
} & Omit<ButtonProps, 'href'>
export const SignInButton: React.FC<SignInButtonProps> = ({ variant, ...props }) => {
const { t } = useTranslation()
const authProviders = useSelector((state: ApplicationState) => state.backendConfig.authProviders)
return (
<ShowIf condition={Object.values(authProviders).includes(true)}>
<LinkContainer to="/login" title={t('login.signIn')}>
<Button
variant={variant || 'success'}
{...props}
>
<Trans i18nKey="login.signIn"/>
</Button>
</LinkContainer>
</ShowIf>
)
}