Advertisement
vandasche

Untitled

Apr 11th, 2020
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.45 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import {
  3. Nav,
  4. Navbar,
  5. Form,
  6. Container,
  7. FormControl,
  8. Button,
  9. Dropdown,
  10. DropdownButton,
  11. Modal,
  12. } from 'react-bootstrap';
  13. import '../style/header.css';
  14.  
  15. import Logo from '../pic/Icon.png';
  16.  
  17. class Header extends Component {
  18. state = {
  19. signIn: false,
  20. signUp: false,
  21. email: '',
  22. password: '',
  23. userData: null,
  24. };
  25.  
  26. componentDidMount() {
  27. this.handleCheckLogin();
  28. }
  29. handleChangeTxt = (e) => {
  30. this.setState({ [e.target.name]: e.target.value });
  31. };
  32. handleCheckLogin = () => {
  33. const user = localStorage.getItem('auth');
  34. if (user) {
  35. this.setState({ userData: JSON.parse(user) });
  36. }
  37. };
  38.  
  39. handleLogin = () => {
  40. const user = { email: this.state.email, password: this.state.password };
  41. this.setState({ userData: user });
  42. localStorage.setItem('auth', JSON.stringify(user));
  43. alert('login berhasi;');
  44. };
  45.  
  46. handleLogOut = () => {
  47. this.setState({ userData: null });
  48. localStorage.clear();
  49. };
  50.  
  51. showSignIn = () => {
  52. this.setState({ signIn: true });
  53. };
  54.  
  55. closeSignIn = () => {
  56. this.setState({ signIn: false });
  57. };
  58.  
  59. showSignUp = () => {
  60. this.setState({ signUp: true });
  61. };
  62.  
  63. closeSignUp = () => {
  64. this.setState({ signUp: false });
  65. };
  66.  
  67. render() {
  68. return (
  69. <Container fluid>
  70. <Navbar className='justify-content-between' fixed='top'>
  71. <Navbar.Brand>
  72. <img src={Logo} alt=''></img>
  73. </Navbar.Brand>
  74.  
  75. <Form inline>
  76. <FormControl type='text' placeholder='Tangerang Selatan' />
  77. <div className='home-search-line' />
  78. <Button variant='outline-success'>Search</Button>
  79. </Form>
  80. <Nav>
  81. <Button variant='white' onClick={this.showSignIn} size='lg'>
  82. Sign In
  83. </Button>
  84. <Button variant='dark' onClick={this.showSignUp} size='lg'>
  85. Sign Up
  86. </Button>
  87. </Nav>
  88. </Navbar>
  89.  
  90. <Modal
  91. show={this.state.signUp}
  92. onHide={this.closeSignUp}
  93. size='lg'
  94. aria-labelledby='contained-modal-title-vcenter'
  95. centered
  96. >
  97. <Modal.Header closeButton></Modal.Header>
  98. <Modal.Body>
  99. <Form>
  100. <h1 style={{ textAlign: 'center' }}>SIGN UP</h1>
  101. <Form.Group controlId='signUpName'>
  102. <Form.Label>Fullname</Form.Label>
  103. <Form.Control type='email' placeholder='Enter Fullname' />
  104. </Form.Group>
  105. <Form.Group controlId='signUpUsername'>
  106. <Form.Label>Username</Form.Label>
  107. <Form.Control type='text' placeholder='Enter Username' />
  108. </Form.Group>
  109. <Form.Group controlId='singUpEmail'>
  110. <Form.Label>Email</Form.Label>
  111. <Form.Control type='email' placeholder='Enter Email' />
  112. </Form.Group>
  113. <Form.Group controlId='signUpPassword'>
  114. <Form.Label>Password</Form.Label>
  115. <Form.Control type='password' placeholder='Enter Password' />
  116. </Form.Group>
  117. <Form.Group controlId='signUpStatus'>
  118. <Form.Label>List As</Form.Label>
  119. <Form.Control as='select' required>
  120. <option>Tenant</option>
  121. <option>Owner</option>
  122. </Form.Control>
  123. </Form.Group>
  124. <Form.Group controlId='signUpGender'>
  125. <Form.Label>Gender</Form.Label>
  126. <Form.Control as='select' required>
  127. <option>Male</option>
  128. <option>Female</option>
  129. </Form.Control>
  130. </Form.Group>
  131. <Form.Group controlId='singUpAddress'>
  132. <Form.Label>Address</Form.Label>
  133. <Form.Control as='textarea' rows='3' />
  134. </Form.Group>
  135. <div style={{ display: 'flex', justifyContent: 'center' }}>
  136. <Button
  137. variant='primary'
  138. style={{ display: 'flex', justifyContent: 'center' }}
  139. onClick={this.closeSignUp}
  140. >
  141. SIGN UP
  142. </Button>
  143. </div>
  144. </Form>
  145. </Modal.Body>
  146. </Modal>
  147.  
  148. <Modal
  149. size='lg'
  150. aria-labelledby='contained-modal-title-vcenter'
  151. centered
  152. show={this.state.signIn}
  153. onHide={this.closeSignIn}
  154. >
  155. <Modal.Header closeButton></Modal.Header>
  156. <Modal.Body>
  157. <Form>
  158. <h1 style={{ textAlign: 'center' }}>SIGN IN</h1>
  159. <Form.Group controlId='formBasicEmail'>
  160. <Form.Label>Email address</Form.Label>
  161. <Form.Control
  162. type='email'
  163. placeholder='Enter email'
  164. onChange={this.handleChangeTxt}
  165. value={this.state.email}
  166. />
  167. </Form.Group>
  168.  
  169. <Form.Group controlId='formBasicPassword'>
  170. <Form.Label>Password</Form.Label>
  171. <Form.Control
  172. type='password'
  173. placeholder='Password'
  174. onChange={this.handleChangeTxt}
  175. value={this.state.password}
  176. />
  177. </Form.Group>
  178. <Form.Group controlId='formBasicCheckbox'>
  179. <Form.Text className='text-muted'>
  180. Dont have an account? Click Here
  181. </Form.Text>
  182. </Form.Group>
  183. <div style={{ display: 'flex', justifyContent: 'center' }}>
  184. <Button
  185. variant='primary'
  186. style={{ display: 'flex', justifyContent: 'center' }}
  187. type='submit'
  188. onClick={this.handleLogin}
  189. >
  190. SIGN IN
  191. </Button>
  192. </div>
  193. </Form>
  194. </Modal.Body>
  195. <Modal.Footer>
  196. <p
  197. onClick={() => {
  198. this.closeSignIn();
  199. this.showSignUp();
  200. }}
  201. >
  202. Don't have an account? <b>Click Here!</b>
  203. </p>
  204. </Modal.Footer>
  205. </Modal>
  206. </Container>
  207. );
  208. }
  209. }
  210.  
  211. export default Header;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement