Advertisement
Guest User

Untitled

a guest
Dec 19th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.18 KB | None | 0 0
  1. import React from "react";
  2. import withStyles from "@material-ui/core/styles/withStyles";
  3. import InputAdornment from "@material-ui/core/InputAdornment";
  4. import { OldSocialLogin as SocialLogin } from 'react-social-login';
  5. import Checkbox from "@material-ui/core/Checkbox";
  6. import FormControlLabel from "@material-ui/core/FormControlLabel";
  7. import Icon from "@material-ui/core/Icon";
  8. import Email from "@material-ui/icons/Email";
  9. import Check from "@material-ui/icons/Check";
  10. import Face from "@material-ui/icons/Face";
  11. import Button from "components/CustomButtons/Button.jsx";
  12. import Card from "components/Card/Card.jsx";
  13. import CardBody from "components/Card/CardBody.jsx";
  14. import CardHeader from "components/Card/CardHeader.jsx";
  15. import CustomInput from "components/CustomInput/CustomInput.jsx";
  16. import loginPageStyle from "assets/jss/material-kit-pro-react/views/loginPageStyle.jsx";
  17. import ServiceUser from "../../services/ServiceUser";
  18. import Footerbottom from "../../components/Footer/Footerbottom";
  19. import { NavLink } from "reactstrap";
  20. import { Link } from "react-router-dom";
  21. import GridContainer from "components/Grid/GridContainer.jsx";
  22. import GridItem from "components/Grid/GridItem.jsx";
  23. import SnackBar from "../../components/Snackbar/SnackbarContent";
  24. import "assets/css/view/SignupPage/Signup.css";
  25. import strings from "../../config/localization";
  26.  
  27. class Signup extends React.Component {
  28. constructor(props) {
  29. super(props);
  30. this.state = {
  31. name: "",
  32. email: "",
  33. password: "",
  34. checked: false,
  35. status: null,
  36. };
  37. this.handleToggle = this.handleToggle.bind(this);
  38. }
  39.  
  40. handleToggle(value) {
  41. this.setState({
  42. checked: this.state.checked ? false : true
  43. });
  44. }
  45.  
  46. handleName = event => {
  47. this.setState({
  48. name: event.target.value
  49. });
  50. };
  51.  
  52. handleEmail = event => {
  53. this.setState({
  54. email: event.target.value
  55. });
  56. };
  57.  
  58. handlePassword = event => {
  59. this.setState({
  60. password: event.target.value
  61. });
  62. };
  63.  
  64. handleSubmit = event => {
  65. event.preventDefault();
  66. this.setState({
  67. status: null
  68. })
  69. const user = {
  70. name: this.state.name,
  71. email: this.state.email,
  72. password: this.state.password
  73. };
  74. // let service = new Service();
  75. // service.modelSignup(user);
  76. ServiceUser.apiSignUp(user).then(res => {
  77. this.setState({
  78. status: {
  79. success: true,
  80. message: "Pendaftaran berhasil"
  81. }
  82. })
  83. }).catch(err => {
  84. this.setState({
  85. status: {
  86. success: false,
  87. message: err.data.message
  88. }
  89. })
  90. })
  91.  
  92. };
  93.  
  94. signUpSosmed = (user, err) => {
  95. console.log(user._profile, "aa")
  96. const params = {
  97. email: user._profile.email,
  98. name: user._profile.name,
  99. password: user._profile.email,
  100. platform: user._profile.id,
  101. platformId: user._profile.id,
  102. }
  103.  
  104. ServiceUser.apiSignUpSosmed(params).then(res => {
  105. console.log(res, 'ab')
  106. this.setState({
  107. status: {
  108. success: true,
  109. message: "Pendaftaran berhasil"
  110. }
  111. })
  112. }).catch(err => {
  113. console.log(err, 'bb')
  114. this.setState({
  115. status: {
  116. success: false,
  117. message: err.data.message
  118. }
  119. })
  120. })
  121.  
  122. }
  123.  
  124. componentDidMount() {
  125. window.scrollTo(0, 0);
  126. document.body.scrollTop = 0;
  127. }
  128.  
  129. render() {
  130. console.log(this.state);
  131. const { classes } = this.props;
  132. return (
  133. <div>
  134. <div className={classes.container}>
  135. <GridContainer className="content-signup">
  136. <GridItem md={4}>
  137. </GridItem>
  138. <GridItem md={4} xs={12}>
  139. <NavLink tag={Link} to="/">
  140. <img
  141. src={require("assets/img/monggopesen_logo.png")}
  142. className="img-responsive"
  143. style={{ marginTop: "56px" }}
  144. />
  145. </NavLink>
  146. <Card>
  147. <form className={classes.form} onSubmit={this.handleSubmit}>
  148. <CardHeader>
  149. <div className={classes.socialLine}>
  150. <h3 className="content-signup-text">Daftar</h3>
  151. <SocialLogin
  152. style={{ display: "unset" }}
  153. provider='facebook'
  154. appId='2144052345912887'
  155. className={classes.iconButtons}
  156. callback={this.signUpSosmed.bind(this)}>
  157.  
  158. <Button justIcon link>
  159. <i className="fab fa-facebook-square" />
  160. </Button>
  161.  
  162. </SocialLogin>
  163. <SocialLogin
  164. style={{ display: "unset" }}
  165. provider='google'
  166. className={classes.iconButtons}
  167. appId='615585105258-0bokifsov91evfhuhjst3qnlc3ab1gvl.apps.googleusercontent.com'
  168. callback={this.signUpSosmed.bind(this)}>
  169.  
  170. <Button justIcon link>
  171. <i className="fab fa-google-plus-g" />
  172. </Button>
  173.  
  174. </SocialLogin>
  175. </div>
  176. </CardHeader>
  177. <p className={`${classes.description} ${classes.textCenter}`}>
  178. {strings.login_or}
  179. </p>
  180. <CardBody>
  181. <CustomInput
  182. id="name"
  183. formControlProps={{
  184. fullWidth: true
  185. }}
  186. inputProps={{
  187. placeholder: strings.label_name,
  188. type: "text",
  189. name: "name",
  190. onChange: this.handleName,
  191. required: true,
  192. startAdornment: (
  193. <InputAdornment position="start">
  194. <Face className={classes.inputAdornmentIcon} />
  195. </InputAdornment>
  196. )
  197. }}
  198. />
  199. <CustomInput
  200. id="email"
  201. formControlProps={{
  202. fullWidth: true
  203. }}
  204. inputProps={{
  205. placeholder: strings.label_email,
  206. type: "email",
  207. name: "email",
  208. onChange: this.handleEmail,
  209. required: true,
  210. startAdornment: (
  211. <InputAdornment position="start">
  212. <Email className={classes.inputIconsColor} />
  213. </InputAdornment>
  214. )
  215. }}
  216. />
  217. <CustomInput
  218. id="pass"
  219. formControlProps={{
  220. fullWidth: true
  221. }}
  222. inputProps={{
  223. placeholder: strings.label_password,
  224. type: "password",
  225. name: "password",
  226. onChange: this.handlePassword,
  227. required: true,
  228. startAdornment: (
  229. <InputAdornment position="start">
  230. <Icon className={classes.inputIconsColor}>
  231. lock_utline
  232. </Icon>
  233. </InputAdornment>
  234. )
  235. }}
  236. />
  237. </CardBody>
  238. {
  239. this.state.status != null && <CardBody>
  240. <SnackBar
  241. classes={classes}
  242. color={this.state.status.success ? "success" : "danger"}
  243. close={true}
  244. message={
  245. <span>
  246. <b>{this.state.status.success ? "Berhasil" : "Gagal"}</b> {this.state.status.message}
  247. </span>
  248. }
  249. />
  250. </CardBody>
  251.  
  252. }
  253. <FormControlLabel
  254. className="signup-controllabel"
  255. control={
  256. <Checkbox
  257. tabIndex={-1}
  258. onClick={() => this.handleToggle()}
  259. checked={
  260. this.state.checked
  261. }
  262. checkedIcon={<Check className={classes.checkedIcon} />}
  263. classes={{
  264. checked: classes.checked,
  265. root: classes.checkRoot
  266. }}
  267. />
  268. }
  269. label={
  270. <span className="text-signup">
  271. Saya setuju dengan <a href="#pablo">syarat dan ketentuan</a>
  272. .
  273. </span>
  274. }
  275. />
  276. <div className={classes.textCenter}>
  277. <Button type="submit" justButton>
  278. Daftar
  279. </Button>
  280. </div>
  281. <p style={{ marginTop: "16px" }} className={`${classes.description} ${classes.textCenter}`}>
  282. Sudah punya Akun MonggoPesen ?{" "}
  283. <NavLink tag={Link} to="/login">
  284. Login Sekarang
  285. </NavLink>
  286. </p>
  287. </form>
  288. </Card>
  289. </GridItem>
  290. <GridItem md={4}></GridItem>
  291. </GridContainer>
  292. </div>
  293. <GridContainer>
  294. <GridItem md={12}>
  295. <Footerbottom />
  296. </GridItem>
  297. </GridContainer>
  298. </div>
  299. );
  300. }
  301. }
  302.  
  303. export default withStyles(loginPageStyle)(Signup);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement