Advertisement
Guest User

Untitled

a guest
Dec 19th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.20 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import logo from './logo.svg';
  3. import './App.css';
  4. import "./bootstrap/css/bootstrap.css";
  5. import { InputGroup, Navbar, Alert, NavItem, Nav, Grid, Row, Col, Button, Form, FormGroup, FormLabel, ControlLabel, FormControl, Checkbox} from "react-bootstrap";
  6. import axios from 'axios';
  7. import { Map, Marker, MarkerLayout } from 'yandex-map-react';
  8.  
  9. const markerStyles = {
  10. width: '50px',
  11. height: '50px',
  12. overflow: 'visible'
  13. };
  14.  
  15. const mapState = {
  16. controls: ['default']
  17. };
  18.  
  19. class Auth extends Component {
  20. constructor(props) {
  21. super(props);
  22. this.state = {
  23. login: '',
  24. password: '',
  25. autherror: null,
  26. authsuccess: null,
  27. username: null
  28. };
  29.  
  30. this.handleChangeLogin = this.handleChangeLogin.bind(this);
  31. this.handleChangePassword = this.handleChangePassword.bind(this);
  32. this.handleSubmit = this.handleSubmit.bind(this);
  33. }
  34.  
  35. handleSubmit(event) {
  36. event.preventDefault();
  37. var self = this;
  38. axios.get('https://api.siberiaq.com/zmaps/Auth/', {
  39. params: {
  40. login: this.state.login,
  41. password: this.state.password
  42. }
  43. })
  44. .then(function (response) {
  45. if (response.data.status == 'complete') {
  46. self.setState({authsuccess: true});
  47. self.setState({username: response.data.name});
  48. var map = document.getElementById('mapp');
  49. map.style.display = 'block';
  50. } else if(response.data.status == 'error') {
  51. self.setState({autherror: response.data.message});
  52. } else {
  53. console.log('?');
  54. }
  55. })
  56. }
  57. handleChangeLogin(event) {
  58. this.setState({login: event.target.value});
  59. this.setState({autherror: null});
  60. }
  61. handleChangePassword(event) {
  62. this.setState({password: event.target.value});
  63. this.setState({autherror: null});
  64. }
  65. render() {
  66. return (
  67. <div>
  68. <Form style={this.state.authsuccess ? {display: 'none'} : {}} onSubmit={this.handleSubmit} horizontal>
  69. <FormGroup bsSize="large" controlId="formHorizontalEmail">
  70. <Col sm={10}>
  71. <InputGroup>
  72. <InputGroup.Addon>@</InputGroup.Addon>
  73. <FormControl name="login" type="text" value={this.state.login} onChange={this.handleChangeLogin} placeholder="Email" />
  74. </InputGroup>
  75. </Col>
  76. </FormGroup>
  77.  
  78. <FormGroup bsSize="large" controlId="formHorizontalPassword">
  79. <Col sm={10}>
  80. <InputGroup>
  81. <InputGroup.Addon>X</InputGroup.Addon>
  82. <FormControl name="password" type="password" value={this.state.password} onChange={this.handleChangePassword} placeholder="Password" />
  83. </InputGroup>
  84. </Col>
  85. </FormGroup>
  86.  
  87. <FormGroup>
  88. <Col smOffset={2} sm={10}>
  89. <Button bsSize="large" type="submit" block>
  90. Sign in
  91. </Button>
  92. </Col>
  93. </FormGroup>
  94. </Form>
  95. <div style={{width: 295}}>
  96. <Alert style={this.state.autherror ? {} : { display: 'none' }} bsStyle="danger">
  97. <strong>{this.state.autherror}</strong>
  98. </Alert>
  99. </div>
  100. <div style={{width: 295}} style={this.state.authsuccess ? {} : { display: 'none' }}>
  101. <Alert bsStyle="success">
  102. <strong>{this.state.username}, welcome to Zombie Maps!</strong>
  103. </Alert>
  104. <Button bsSize="large" block>
  105. Sign out
  106. </Button>
  107. </div>
  108. </div>
  109. );
  110. }
  111. }
  112.  
  113. class App extends Component {
  114. render() {
  115. return (
  116. <div className="App">
  117. <header className="App-header">
  118. <h1 className="App-title">Zombie Maps</h1>
  119. </header>
  120. <Grid>
  121. <Row style={{padding: 30}}>
  122. </Row>
  123. <Row>
  124. <Col xs={12} md={8}>
  125. <div id="mapp" style={{ display: 'none' }}>
  126. <Map onAPIAvailable={function () { console.log('API loaded'); }} state={mapState} center={[33.557858, -84.684935]} zoom={8}>
  127. <Marker lat={33.557858} lon={-84.684935}>
  128. <MarkerLayout>
  129. <img style={markerStyles} src="https://lh4.ggpht.com/sgCVzA-ij2wYAd5p0NhpcLDzw7wxWagjFCRlU92SVhgA4U35wdw7pHAz6-T49GX1C6M=w300"/>
  130. </MarkerLayout>
  131. </Marker>
  132. <Marker lat={33.558859} lon={-83.684935}>
  133. <MarkerLayout>
  134. <img style={markerStyles} src="http://lh6.ggpht.com/IcOuvzMu4ARryJ8jlY9I0K-icSjJBU-zY64T4tRJakNA0-MPBR0HmkA_zqhVazxtYuo=w300"/>
  135. </MarkerLayout>
  136. </Marker>
  137. <Marker lat={32.558859} lon={-85.684935}>
  138. <MarkerLayout>
  139. <img style={markerStyles} src="https://www.netfort.com/assets/zombie.png"/>
  140. </MarkerLayout>
  141. </Marker>
  142. </Map>
  143. </div>
  144. </Col>
  145. <Col xs={6} md={4}>
  146. <Auth/>
  147. </Col>
  148. </Row>
  149. </Grid>
  150. </div>
  151. );
  152. }
  153. }
  154.  
  155. export default App;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement