import { Fragment, useState } from 'react'
import EmailIcon from '@material-ui/icons/Email'
import SocialIcon from '@material-ui/icons/Public'
import UserIcon from '@material-ui/icons/Person'
import getConfig from 'next/config'
import MagicLinkEmail from './MagicLinkEmail'
import { Tabs, Tab } from '@material-ui/core'
import './style.scss'
import SocialLogin from './SocialLogin'
import PasswordLogin from './PasswordLogin'
const config = getConfig().publicRuntimeConfig
const TabPanel = (props: any) => {
const { children, value, index } = props
return (
{value === index && children}
)
}
const SignIn = () => {
let enableSmsMagicLink = true
let enableEmailMagicLink = true
let enableUserPassword = false
let isEnabledGithub = false
let isEnabledGoogle = false
let isEnabledFacebook = false
const [tabIndex, setTabIndex] = useState(0)
const handleChange = (event: any, newValue: number) => {
event.preventDefault()
setTabIndex(newValue)
}
if (config && config.auth) {
enableSmsMagicLink = config.auth.enableSmsMagicLink
enableEmailMagicLink = config.auth.enableEmailMagicLink
enableUserPassword = config.auth.enableUserPassword
isEnabledGithub = config.auth.isEnabledGithub
isEnabledGoogle = config.auth.isEnabledGoogle
isEnabledFacebook = config.auth.isEnabledFacebook
}
const socials = [
isEnabledGithub,
isEnabledGoogle,
isEnabledFacebook
]
const enabled = [
enableSmsMagicLink,
enableEmailMagicLink,
enableUserPassword,
isEnabledGithub,
isEnabledGoogle,
isEnabledFacebook
]
const enabledCount = enabled.filter(v => v).length
const socialCount = socials.filter(v => v).length
let component =
if (enabledCount === 1) {
if (enableSmsMagicLink) {
component =
} else if (enableEmailMagicLink) {
component =
} else if (enableUserPassword) {
component =
} else if (socialCount > 0) {
component =
}
} else {
let index = 0
const emailTab = (enableEmailMagicLink || enableSmsMagicLink) && } label="Email | SMS"/>
const emailTabPanel = (enableEmailMagicLink || enableSmsMagicLink) &&
;(enableEmailMagicLink || enableSmsMagicLink) && ++index
const userTab = enableUserPassword && } label="UserName + Password"/>
const userTabPanel = enableUserPassword &&
enableUserPassword && ++index
const socialTab = socialCount > 0 && } label="Social"/>
const socialTabPanel = socialCount > 0 &&
socialCount > 0 && ++index
console.log(socialCount, socialTabPanel)
component = (
{emailTab}
{userTab}
{socialTab}
{emailTabPanel}
{userTabPanel}
{socialTabPanel}
)
}
return component
}
export default SignIn