mirror of
https://github.com/rjNemo/devbook_ts
synced 2026-06-12 13:36:43 +00:00
extract Alert component
This commit is contained in:
parent
252674c5bf
commit
31013d573a
3 changed files with 17 additions and 9 deletions
11
src/components/Alert.tsx
Normal file
11
src/components/Alert.tsx
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import React, {FC} from 'react';
|
||||
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
||||
import {faExclamationTriangle} from '@fortawesome/free-solid-svg-icons';
|
||||
|
||||
const Alert: FC = () => (
|
||||
<div className="alert alert-danger">
|
||||
<FontAwesomeIcon icon={faExclamationTriangle} /> Passwords don't match!
|
||||
</div>
|
||||
);
|
||||
|
||||
export default Alert;
|
||||
|
|
@ -9,10 +9,10 @@ import {withFirebase, WithFirebaseProps} from 'react-redux-firebase';
|
|||
import {selectProfile} from '../store/firebase';
|
||||
import User, {newUser} from '../models/User';
|
||||
// Style
|
||||
import Header from '../components/Header';
|
||||
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
||||
import {faExclamationTriangle} from '@fortawesome/free-solid-svg-icons';
|
||||
import GoogleButton from 'react-google-button';
|
||||
import Alert from '../components/Alert';
|
||||
import Header from '../components/Header';
|
||||
// Form
|
||||
import useForm from '../hooks';
|
||||
|
||||
// extends withFirebaseProps type to ad profile info
|
||||
|
|
@ -27,6 +27,7 @@ interface InitFormData {
|
|||
password: string;
|
||||
password2: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sign up form recieves firebase from withFirebase HOC
|
||||
*/
|
||||
|
|
@ -34,6 +35,7 @@ const SignUp: FC<IProps> = ({firebase, isEmpty, isLoaded}) => {
|
|||
const history = useHistory();
|
||||
const [error, setError] = useState(false);
|
||||
|
||||
// handle form data
|
||||
const initFormData: InitFormData = {
|
||||
name: '',
|
||||
email: '',
|
||||
|
|
@ -77,12 +79,7 @@ const SignUp: FC<IProps> = ({firebase, isEmpty, isLoaded}) => {
|
|||
|
||||
return (
|
||||
<section className="container">
|
||||
{error && (
|
||||
<div className="alert alert-danger">
|
||||
<FontAwesomeIcon icon={faExclamationTriangle} /> Passwords don't
|
||||
match!
|
||||
</div>
|
||||
)}
|
||||
{error && <Alert />}
|
||||
<Header title="Sign Up" lead="Create your account" />
|
||||
<GoogleButton type="light" className="my-1" onClick={loginWithGoogle} />
|
||||
<form className="form" onSubmit={handleSubmit}>
|
||||
|
|
|
|||
Loading…
Reference in a new issue