@@ -1,6 +1,6 @@ | |||||
import { IonButton, IonIcon } from '@ionic/react'; | import { IonButton, IonIcon } from '@ionic/react'; | ||||
import { eyeOutline, eyeOffOutline } from 'ionicons/icons'; | import { eyeOutline, eyeOffOutline } from 'ionicons/icons'; | ||||
import { Component } from 'react'; | |||||
import React, { useState } from 'react'; | |||||
import styles from './InputWidget.module.scss'; | import styles from './InputWidget.module.scss'; | ||||
type Props = { | type Props = { | ||||
@@ -10,37 +10,24 @@ type Props = { | |||||
hideEye?: boolean | hideEye?: boolean | ||||
}; | }; | ||||
type OwnState = { | |||||
showPassword: boolean, | |||||
}; | |||||
class InputWidget extends Component<Props, OwnState> { | |||||
constructor( | |||||
props: Props | |||||
) { | |||||
super(props); | |||||
this.state = { | |||||
showPassword: false | |||||
}; | |||||
} | |||||
const InputWidget: React.FC<Props> = (props) => { | |||||
let [showPassword, toggleEye] = useState(false); | |||||
render() { | |||||
return <section className={styles.inputHolder}> | |||||
{ this.props.icon && <IonIcon className={styles.leftIcon} icon={this.props.icon}></IonIcon> } | |||||
return (<section className={styles.inputHolder}> | |||||
{ props.icon && <IonIcon className={styles.leftIcon} icon={props.icon}></IonIcon> } | |||||
{ this.props.type === 'TEXT' && <input type='text' placeholder={this.props.placeholder} /> } | |||||
{ this.props.type === 'PASSWORD' && <input type={this.state.showPassword ? 'text' : 'password'} placeholder={this.props.placeholder} /> } | |||||
{ props.type === 'TEXT' && <input type='text' placeholder={props.placeholder} /> } | |||||
{ props.type === 'PASSWORD' && <input type={showPassword ? 'text' : 'password'} placeholder={props.placeholder} /> } | |||||
{ this.props.type === 'PHONE' && <input type='tel' placeholder={this.props.placeholder} /> } | |||||
{ props.type === 'PHONE' && <input type='tel' placeholder={props.placeholder} /> } | |||||
{ this.props.type === 'PASSWORD' && !this.props.hideEye && | |||||
<IonButton className={styles.eyeButton} onClick={e => this.setState({ showPassword: !this.state.showPassword })}> | |||||
{ this.state.showPassword && <IonIcon icon={eyeOffOutline}></IonIcon> } | |||||
{ !this.state.showPassword && <IonIcon icon={eyeOutline}></IonIcon> } | |||||
{ props.type === 'PASSWORD' && !props.hideEye && | |||||
<IonButton className={styles.eyeButton} onClick={ () => { toggleEye(showPassword = !showPassword) } }> | |||||
{ showPassword && <IonIcon icon={eyeOffOutline}></IonIcon> } | |||||
{ !showPassword && <IonIcon icon={eyeOutline}></IonIcon> } | |||||
</IonButton> | </IonButton> | ||||
} | } | ||||
</section> | |||||
}; | |||||
</section>); | |||||
}; | }; | ||||
export default InputWidget; | export default InputWidget; |
@@ -1,24 +1,15 @@ | |||||
import { IonContent, IonPage, IonButton } from '@ionic/react'; | import { IonContent, IonPage, IonButton } from '@ionic/react'; | ||||
import { personOutline, lockOpenOutline } from 'ionicons/icons'; | import { personOutline, lockOpenOutline } from 'ionicons/icons'; | ||||
import { Component } from 'react'; | |||||
import React from 'react'; | |||||
import InputWidget from '../../components/input/InputWidget'; | import InputWidget from '../../components/input/InputWidget'; | ||||
import styles from './Login.module.scss'; | import styles from './Login.module.scss'; | ||||
import { Link } from "react-router-dom"; | import { Link } from "react-router-dom"; | ||||
type Props = { }; | type Props = { }; | ||||
type OwnState = { }; | |||||
class LoginPage extends Component<Props, OwnState> { | |||||
constructor( | |||||
props: Props | |||||
) { | |||||
super(props); | |||||
this.state = {}; | |||||
} | |||||
render() { | |||||
return <IonPage> | |||||
const LoginPage: React.FC<Props> = () => { | |||||
return ( | |||||
<IonPage> | |||||
<IonContent fullscreen> | <IonContent fullscreen> | ||||
<section className={styles.upfold}> | <section className={styles.upfold}> | ||||
<div className={styles.container}> | <div className={styles.container}> | ||||
@@ -48,7 +39,7 @@ class LoginPage extends Component<Props, OwnState> { | |||||
<div className={ styles.navigationLink }> Don't have an account? <Link to='/signup'> <span> Signup </span> </Link> </div> | <div className={ styles.navigationLink }> Don't have an account? <Link to='/signup'> <span> Signup </span> </Link> </div> | ||||
</IonContent> | </IonContent> | ||||
</IonPage> | </IonPage> | ||||
}; | |||||
); | |||||
}; | }; | ||||
export default LoginPage; | export default LoginPage; |
@@ -1,45 +1,34 @@ | |||||
import { IonContent, IonPage, IonButton } from '@ionic/react'; | import { IonContent, IonPage, IonButton } from '@ionic/react'; | ||||
import { Component } from 'react'; | |||||
import React from 'react'; | |||||
import styles from './Welcome.module.scss'; | import styles from './Welcome.module.scss'; | ||||
type Props = { }; | type Props = { }; | ||||
type OwnState = { }; | |||||
const WelcomePage: React.FC<Props> = () => { | |||||
return (<IonPage> | |||||
<IonContent fullscreen> | |||||
<section className={styles.upfold}> | |||||
<figure> | |||||
<img src="assets/images/welcome/upfold.svg" alt="upfold image"/> | |||||
</figure> | |||||
</section> | |||||
class WelcomePage extends Component<Props, OwnState> { | |||||
constructor( | |||||
props: Props | |||||
) { | |||||
super(props); | |||||
this.state = {}; | |||||
} | |||||
<section className={styles.content}> | |||||
<div className={styles.container}> | |||||
<h2> Let's Get Started </h2> | |||||
<p> | |||||
Welcome to <strong> WorkX </strong> | |||||
</p> | |||||
render() { | |||||
return <IonPage> | |||||
<IonContent fullscreen> | |||||
<section className={styles.upfold}> | |||||
<figure> | |||||
<img src="assets/images/welcome/upfold.svg" alt="upfold image"/> | |||||
</figure> | |||||
</section> | |||||
<section className={styles.content}> | |||||
<div className={styles.container}> | |||||
<h2> Let's Get Started </h2> | |||||
<p> | |||||
Welcome to <strong> WorkX </strong> | |||||
</p> | |||||
<div className={styles.actionButtonsHolder}> | |||||
<IonButton className={styles.actionButton} expand="block" routerLink="/signup"> Create Account </IonButton> | |||||
<IonButton className={styles.actionButton} fill="outline" expand="block" routerLink="/login"> Login </IonButton> | |||||
</div> | |||||
<div className={styles.actionButtonsHolder}> | |||||
<IonButton className={styles.actionButton} expand="block" routerLink="/signup"> Create Account </IonButton> | |||||
<IonButton className={styles.actionButton} fill="outline" expand="block" routerLink="/login"> Login </IonButton> | |||||
</div> | </div> | ||||
</section> | |||||
</IonContent> | |||||
</IonPage> | |||||
}; | |||||
</div> | |||||
</section> | |||||
</IonContent> | |||||
</IonPage>); | |||||
}; | }; | ||||
export default WelcomePage; | export default WelcomePage; |
@@ -1,20 +1,7 @@ | |||||
import { IonContent, IonRange, IonButton, IonSlides, IonSlide, IonIcon } from '@ionic/react'; | import { IonContent, IonRange, IonButton, IonSlides, IonSlide, IonIcon } from '@ionic/react'; | ||||
import { Component } from 'react'; | |||||
import React, { useState, useRef, createRef } from 'react'; | |||||
import styles from './AdditionalQuestions.module.scss'; | import styles from './AdditionalQuestions.module.scss'; | ||||
type Props = { }; | |||||
type OwnState = { | |||||
index: number, | |||||
userType: 'INDIVIDUAL' | 'COMPANY' | '', | |||||
userSector: { | |||||
value: number, | |||||
icon: string, | |||||
text: string | |||||
} | undefined, | |||||
showPicker: boolean, | |||||
}; | |||||
const slideOpts = { | const slideOpts = { | ||||
initialSlide: 2, | initialSlide: 2, | ||||
speed: 400, | speed: 400, | ||||
@@ -66,124 +53,117 @@ const jobSectors = [{ | |||||
text: 'Others' | text: 'Others' | ||||
}]; | }]; | ||||
const AdditionalQuestions: React.FC = () => { | |||||
let [index, setIndex] = useState(0), | |||||
[userType, changeUserType] = useState('INDIVIDUAL'), | |||||
[userSector, changeUserSector] = useState(jobSectors[0]), | |||||
[showPicker, toggleShowPicker] = useState(false); | |||||
const additionalSlides: any = useRef(null); | |||||
class AdditionalQuestions extends Component<Props, OwnState> { | |||||
constructor( | |||||
props: Props | |||||
) { | |||||
super(props); | |||||
this.state = { | |||||
index: 0, | |||||
userType: 'INDIVIDUAL', | |||||
showPicker: false, | |||||
userSector: undefined, | |||||
}; | |||||
const changeIndex = async (event: any) => { | |||||
await event.target.getActiveIndex().then((index: number) => setIndex(index = index)); | |||||
} | } | ||||
getPadding = (digit: number) => { | |||||
const getPadding = (digit: number) => { | |||||
return digit.toString().padStart(2, '0'); | return digit.toString().padStart(2, '0'); | ||||
} | } | ||||
nextSlide = async () => { | |||||
let slides: any = document.querySelector('#slides'); | |||||
const swiper: any = await slides?.getSwiper(); | |||||
const nextSlide = async () => { | |||||
const swiper: any = await additionalSlides.current?.getSwiper(); | |||||
swiper.slideNext(); | swiper.slideNext(); | ||||
} | } | ||||
prevSlide = async () => { | |||||
let slides: any = document.querySelector('#slides'); | |||||
const swiper: any = await slides?.getSwiper(); | |||||
const prevSlide = async () => { | |||||
const swiper: any = await additionalSlides.current?.getSwiper(); | |||||
swiper.slidePrev(); | swiper.slidePrev(); | ||||
} | } | ||||
render() { | |||||
return <IonContent fullscreen> | |||||
<header className={styles.slidersNavBar}> | |||||
<h4> | |||||
{ this.getPadding(this.state.index + 1)}<span>/05 </span> | |||||
</h4> | |||||
<IonButton> Skip <IonIcon src='assets/images/signup/skip.svg'></IonIcon> </IonButton> | |||||
</header> | |||||
<IonSlides options={slideOpts} className={styles.slides} id="slides"> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> Select if you represent a <strong> company </strong> or if you're an <strong> individual </strong> </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
</div> | |||||
<div className={styles.choiceContainer}> | |||||
<div className={styles.optionButtons}> | |||||
<button className={ this.state.userType === 'COMPANY' ? styles.active : '' } | |||||
onClick={e => this.setState({ userType: 'COMPANY' })}> <IonIcon className={styles.leftIcon} src='assets/images/signup/building.svg'></IonIcon> Company <IonIcon className={styles.checkmark} src='assets/images/signup/checkmark.svg'></IonIcon> </button> | |||||
<button className={ this.state.userType === 'INDIVIDUAL' ? styles.active : '' } | |||||
onClick={e => this.setState({ userType: 'INDIVIDUAL' })}> <IonIcon className={styles.leftIcon} src='assets/images/signup/user.svg'></IonIcon> Individual <IonIcon className={styles.checkmark} src='assets/images/signup/checkmark.svg'></IonIcon> </button> | |||||
</div> | |||||
</div> | |||||
</IonSlide> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> Which <strong> sector </strong> | |||||
{ this.state.userType === 'COMPANY' && <span> does your company below to? </span> } | |||||
{ this.state.userType === 'INDIVIDUAL' && <span> do you work under? </span> } </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
return (<IonContent fullscreen> | |||||
<header className={styles.slidersNavBar}> | |||||
<h4> | |||||
{ getPadding(index + 1)}<span>/05 </span> | |||||
</h4> | |||||
<IonButton> Skip <IonIcon src='assets/images/signup/skip.svg'></IonIcon> </IonButton> | |||||
</header> | |||||
<IonSlides options={slideOpts} className={styles.slides} | |||||
ref={additionalSlides} onIonSlideDidChange={(e) => changeIndex(e)}> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> Select if you represent a <strong> company </strong> or if you're an <strong> individual </strong> </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
</div> | |||||
<div className={styles.choiceContainer}> | |||||
<div className={styles.optionButtons}> | |||||
<button className={ userType === 'COMPANY' ? styles.active : '' } | |||||
onClick={() => changeUserType(userType = 'COMPANY')}> <IonIcon className={styles.leftIcon} src='assets/images/signup/building.svg'></IonIcon> Company <IonIcon className={styles.checkmark} src='assets/images/signup/checkmark.svg'></IonIcon> </button> | |||||
<button className={ userType === 'INDIVIDUAL' ? styles.active : '' } | |||||
onClick={() => changeUserType(userType = 'INDIVIDUAL')}> <IonIcon className={styles.leftIcon} src='assets/images/signup/user.svg'></IonIcon> Individual <IonIcon className={styles.checkmark} src='assets/images/signup/checkmark.svg'></IonIcon> </button> | |||||
</div> | </div> | ||||
<div className={styles.choiceContainer}> | |||||
<div className={styles.optionButtons}> | |||||
<button className={styles.optionButton} onClick={ () => this.setState({ showPicker: true })}> { this.state.userSector ? <span> <IonIcon className={styles.sectorIcon} src={this.state.userSector.icon}></IonIcon> { this.state.userSector.text } </span> : <span> Select an Option </span> } <IonIcon className={styles.option} src='assets/images/signup/options.svg'></IonIcon> </button> | |||||
</div> | |||||
</div> | |||||
</IonSlide> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> Which <strong> sector </strong> | |||||
{ userType === 'COMPANY' && <span> does your company below to? </span> } | |||||
{ userType === 'INDIVIDUAL' && <span> do you work under? </span> } </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
</div> | |||||
<div className={styles.choiceContainer}> | |||||
<div className={styles.optionButtons}> | |||||
<button className={styles.optionButton} onClick={ () => toggleShowPicker( showPicker = true )}> { userSector ? <span> <IonIcon className={styles.sectorIcon} src={ userSector.icon }></IonIcon> { userSector.text } </span> : <span> Select an Option </span> } <IonIcon className={styles.option} src='assets/images/signup/options.svg'></IonIcon> </button> | |||||
</div> | </div> | ||||
</IonSlide> | |||||
</div> | |||||
</IonSlide> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> What is your working <strong> team size? </strong> </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
</div> | |||||
<div className={styles.choiceContainer}> | |||||
<IonRange mode={'ios'} value={30} min={1} max={100} step={10} snaps={true} /> | |||||
</div> | |||||
</IonSlide> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> What is your working <strong> team size? </strong> </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
</div> | |||||
<div className={styles.choiceContainer}> | |||||
<IonRange mode={'ios'} value={30} min={1} max={100} step={10} snaps={true} /> | |||||
</div> | |||||
</IonSlide> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> Select the <strong> modules </strong> that will be used. </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
</div> | |||||
<div className={styles.choiceContainer}> | |||||
<IonSlide> | |||||
<div className={styles.questionContainer}> | |||||
<p className={styles.question}> Select the <strong> modules </strong> that will be used. </p> | |||||
<p className={styles.hint}> Select answer below </p> | |||||
</div> | |||||
<div className={styles.choiceContainer}> | |||||
</div> | |||||
</IonSlide> | |||||
</IonSlides> | |||||
</div> | |||||
</IonSlide> | |||||
</IonSlides> | |||||
<IonButton className={styles.prevButton} fill="outline" onClick={ () => this.prevSlide() }> | |||||
<IonIcon src='assets/images/signup/arrow-next.svg'></IonIcon> | |||||
</IonButton> | |||||
<IonButton className={styles.prevButton} fill="outline" onClick={ () => prevSlide() }> | |||||
<IonIcon src='assets/images/signup/arrow-next.svg'></IonIcon> | |||||
</IonButton> | |||||
<IonButton className={styles.nextButton} onClick={ () => this.nextSlide() }> | |||||
Next <IonIcon src='assets/images/signup/arrow-next.svg'></IonIcon> | |||||
</IonButton> | |||||
<IonButton className={styles.nextButton} onClick={ () => nextSlide() }> | |||||
Next <IonIcon src='assets/images/signup/arrow-next.svg'></IonIcon> | |||||
</IonButton> | |||||
{ this.state.showPicker && <section className={styles.picker}> | |||||
<div className={styles.container}> | |||||
<ul> | |||||
{ jobSectors.map((sector) => <li key={sector.value} | |||||
className={this.state.userSector === sector ? styles.active : ''} | |||||
onClick={() => this.setState({ userSector: sector, showPicker: false })}> | |||||
<IonIcon src={sector.icon}></IonIcon> { sector.text } | |||||
</li>) } | |||||
</ul> | |||||
</div> | |||||
</section> } | |||||
{ showPicker && <section className={styles.picker}> | |||||
<div className={styles.container}> | |||||
<ul> | |||||
{ jobSectors.map((sector) => <li key={sector.value} | |||||
className={userSector === sector ? styles.active : ''} | |||||
onClick={() => { toggleShowPicker(showPicker = false); changeUserSector(userSector = sector); } }> | |||||
<IonIcon src={sector.icon}></IonIcon> { sector.text } | |||||
</li>) } | |||||
</ul> | |||||
</div> | |||||
</section> } | |||||
</IonContent> | |||||
}; | |||||
</IonContent>); | |||||
}; | }; | ||||
export default AdditionalQuestions; | export default AdditionalQuestions; |
@@ -134,13 +134,11 @@ | |||||
} | } | ||||
.navigationLink { | .navigationLink { | ||||
position: absolute; | |||||
left: 0; | |||||
width: 100%; | width: 100%; | ||||
bottom: 10px; | |||||
text-align: center; | text-align: center; | ||||
font-size: 14px; | font-size: 14px; | ||||
color: var(--rock); | |||||
color: var(--rock); | |||||
margin-top: 30px; | |||||
span, a { | span, a { | ||||
color: var(--shamrock); | color: var(--shamrock); | ||||
@@ -1,79 +1,65 @@ | |||||
import { IonContent, IonPage, IonButton, IonToggle } from '@ionic/react'; | import { IonContent, IonPage, IonButton, IonToggle } from '@ionic/react'; | ||||
import { personOutline, lockOpenOutline, mailOutline, phonePortraitOutline } from 'ionicons/icons'; | import { personOutline, lockOpenOutline, mailOutline, phonePortraitOutline } from 'ionicons/icons'; | ||||
import { Component } from 'react'; | |||||
import React, { useState } from 'react'; | |||||
import InputWidget from '../../components/input/InputWidget'; | import InputWidget from '../../components/input/InputWidget'; | ||||
import styles from './Signup.module.scss'; | import styles from './Signup.module.scss'; | ||||
import { Link } from "react-router-dom"; | import { Link } from "react-router-dom"; | ||||
import AdditionalQuestions from '../signup/AdditionalQuestions'; | import AdditionalQuestions from '../signup/AdditionalQuestions'; | ||||
type Props = { }; | |||||
type OwnState = { | |||||
signupStep: 'BASIC' | 'ADDITIONAL'; | |||||
}; | |||||
class SignupPage extends Component<Props, OwnState> { | |||||
constructor( | |||||
props: Props | |||||
) { | |||||
super(props); | |||||
this.state = { | |||||
signupStep: 'ADDITIONAL' | |||||
}; | |||||
} | |||||
const SignupPage: React.FC = () => { | |||||
let [signupStep, changeStep] = useState('BASIC'); | |||||
render() { | |||||
return <IonPage> | |||||
{ this.state.signupStep === 'BASIC' && | |||||
<IonContent fullscreen> | |||||
<section className={styles.upfold}> | |||||
<div className={styles.container}> | |||||
<figure> | |||||
<img src="assets/images/signup/rocket.svg" alt="rocket image"/> | |||||
</figure> | |||||
<h2> Let's Create </h2> | |||||
<p> Please provide few details below. </p> | |||||
</div> | |||||
</section> | |||||
return (<IonPage> | |||||
{ signupStep === 'BASIC' && | |||||
<IonContent fullscreen> | |||||
<section className={styles.upfold}> | |||||
<div className={styles.container}> | |||||
<figure> | |||||
<img src="assets/images/signup/rocket.svg" alt="rocket image"/> | |||||
</figure> | |||||
<h2> Let's Create </h2> | |||||
<p> Please provide few details below. </p> | |||||
</div> | |||||
</section> | |||||
<section className={styles.inputForm}> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'TEXT'} icon={personOutline} placeholder={'Full Name'} /> | |||||
</div> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'TEXT'} icon={mailOutline} placeholder={'Email'} /> | |||||
</div> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'PHONE'} icon={phonePortraitOutline} placeholder={'Phone'} /> | |||||
</div> | |||||
<section className={styles.separator}></section> | |||||
<section className={styles.inputForm}> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'TEXT'} icon={personOutline} placeholder={'Full Name'} /> | |||||
</div> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'TEXT'} icon={mailOutline} placeholder={'Email'} /> | |||||
</div> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'PHONE'} icon={phonePortraitOutline} placeholder={'Phone'} /> | |||||
</div> | |||||
<section className={styles.separator}></section> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'PASSWORD'} icon={lockOpenOutline} placeholder={'Password'} /> | |||||
</div> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'PASSWORD'} icon={lockOpenOutline} placeholder={'Password'} /> | |||||
</div> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'PASSWORD'} hideEye={true} icon={lockOpenOutline} placeholder={'Confirm Password'} /> | |||||
</div> | |||||
<div className={styles.input}> | |||||
<InputWidget type={'PASSWORD'} hideEye={true} icon={lockOpenOutline} placeholder={'Confirm Password'} /> | |||||
</div> | |||||
<div className={styles.confirmationAction}> | |||||
<label> Login with fingerprint scanner </label> | |||||
<IonToggle className={styles.toggle} /> | |||||
</div> | |||||
<div className={styles.confirmationAction}> | |||||
<label> Login with fingerprint scanner </label> | |||||
<IonToggle className={styles.toggle} /> | |||||
</div> | |||||
<div className={styles.actionButtonsHolder}> | |||||
<IonButton className={styles.actionButton} expand="block" | |||||
onClick={e => this.setState({ signupStep: 'ADDITIONAL' })}> Create </IonButton> | |||||
</div> | |||||
</section> | |||||
<div className={styles.actionButtonsHolder}> | |||||
<IonButton className={styles.actionButton} expand="block" | |||||
onClick={() => changeStep(signupStep = 'ADDITIONAL')}> Create </IonButton> | |||||
</div> | |||||
</section> | |||||
<div className={ styles.navigationLink }> Already have an account? <Link to='/login'> <span> Login </span> </Link> </div> | |||||
</IonContent> } | |||||
{ this.state.signupStep === 'ADDITIONAL' && <AdditionalQuestions /> } | |||||
</IonPage> | |||||
}; | |||||
<div className={ styles.navigationLink }> Already have an account? <Link to='/login'> <span> Login </span> </Link> </div> | |||||
</IonContent> } | |||||
{ signupStep === 'ADDITIONAL' && <AdditionalQuestions /> } | |||||
</IonPage>); | |||||
}; | }; | ||||
export default SignupPage; | export default SignupPage; |