2017-12-21 22:08:54 +01:00
import React from 'react' ;
import { BusyMessage } from 'component/common' ;
import Link from 'component/link' ;
import UserEmailNew from 'component/userEmailNew' ;
import UserEmailVerify from 'component/userEmailVerify' ;
import UserVerify from 'component/userVerify' ;
2017-07-19 01:00:13 +02:00
export class AuthPage extends React . PureComponent {
componentWillMount ( ) {
this . navigateIfAuthenticated ( this . props ) ;
}
componentWillReceiveProps ( nextProps ) {
this . navigateIfAuthenticated ( nextProps ) ;
}
navigateIfAuthenticated ( props ) {
const { isPending , user } = props ;
if (
! isPending &&
user &&
user . has _verified _email &&
2017-07-25 20:34:28 +02:00
( user . is _reward _approved || user . is _identity _verified )
2017-07-19 01:00:13 +02:00
) {
2017-07-19 17:09:40 +02:00
props . navigate ( props . pathAfterAuth ) ;
2017-07-19 01:00:13 +02:00
}
}
getTitle ( ) {
const { email , isPending , isVerificationCandidate , user } = this . props ;
if ( isPending || ( user && ! user . has _verified _email && ! email ) ) {
2017-12-21 22:08:54 +01:00
return _ _ ( 'Human Proofing' ) ;
2017-07-19 01:00:13 +02:00
} else if ( user && ! user . has _verified _email ) {
2017-12-21 22:08:54 +01:00
return _ _ ( 'Confirm Email' ) ;
2017-07-25 20:34:28 +02:00
} else if ( user && ! user . is _identity _verified && ! user . is _reward _approved ) {
2017-12-21 22:08:54 +01:00
return _ _ ( 'Final Verification' ) ;
2017-07-19 01:00:13 +02:00
}
2017-12-21 22:08:54 +01:00
return _ _ ( 'Welcome to LBRY' ) ;
2017-07-19 01:00:13 +02:00
}
renderMain ( ) {
const { email , isPending , isVerificationCandidate , user } = this . props ;
if ( isPending ) {
2017-12-21 22:08:54 +01:00
return [ < BusyMessage message = { _ _ ( 'Authenticating' ) } / > , true ] ;
2017-07-19 01:00:13 +02:00
} else if ( user && ! user . has _verified _email && ! email ) {
2017-08-26 05:21:26 +02:00
return [ < UserEmailNew / > , true ] ;
2017-07-19 01:00:13 +02:00
} else if ( user && ! user . has _verified _email ) {
2017-08-26 05:21:26 +02:00
return [ < UserEmailVerify / > , true ] ;
2017-07-19 01:00:13 +02:00
} else if ( user && ! user . is _identity _verified ) {
2017-08-26 05:21:26 +02:00
return [ < UserVerify / > , false ] ;
2017-07-19 01:00:13 +02:00
}
2017-12-21 22:08:54 +01:00
return [ < span className = "empty" > { _ _ ( 'No further steps.' ) } < / span > , true ] ;
2017-07-19 01:00:13 +02:00
}
render ( ) {
2017-07-29 18:58:31 +02:00
const { email , user , isPending , navigate } = this . props ;
2017-08-26 05:21:26 +02:00
const [ innerContent , useTemplate ] = this . renderMain ( ) ;
2017-07-19 01:00:13 +02:00
2017-11-24 15:31:05 +01:00
return useTemplate ? (
< main >
< section className = "card card--form" >
< div className = "card__title-primary" >
< h1 > { this . getTitle ( ) } < / h1 >
< / div >
< div className = "card__content" > { innerContent } < / div >
< div className = "card__content" >
< div className = "help" >
2017-12-21 22:08:54 +01:00
{ ` ${ _ _ (
2018-03-08 05:21:33 +01:00
'This information is disclosed only to LBRY, Inc. and not to the LBRY network. It is only required to earn LBRY rewards and may be used to sync usage data across devices.'
2017-12-21 22:08:54 +01:00
) } ` }
< Link onClick = { ( ) => navigate ( '/discover' ) } label = { _ _ ( 'Return home' ) } / > .
2017-08-26 05:21:26 +02:00
< / div >
2017-11-24 15:31:05 +01:00
< / div >
< / section >
< / main >
) : (
innerContent
) ;
2017-07-19 01:00:13 +02:00
}
}
export default AuthPage ;