import React, { Fragment } from 'react'; import { Route, Switch, Link } from 'react-router-dom'; import '../../node_modules/bootstrap/dist/css/bootstrap.min.css'; import './app.css'; import AboutPage from './about'; import BuildingEdit from './building-edit'; import BuildingView from './building-view'; import ColouringMap from './map'; import Header from './header'; import Overview from './overview'; import Login from './login'; import MyAccountPage from './my-account'; import SignUp from './signup'; import Welcome from './welcome'; class App extends React.Component { constructor(props) { super(props); this.state = { user: props.user, building: props.building, building_like: props.building_like }; this.login = this.login.bind(this); this.updateUser = this.updateUser.bind(this); this.logout = this.logout.bind(this); this.selectBuilding = this.selectBuilding.bind(this); } login(user) { if (user.error) { this.logout(); return } this.setState({user: user}); } updateUser(user){ console.log(user); this.setState({user: { ...this.state.user, ...user }}); } logout() { this.setState({user: undefined}); } selectBuilding(building) { // get UPRNs and update fetch(`/building/${building.building_id}/uprns.json`, { method: 'GET', headers:{ 'Content-Type': 'application/json' }, credentials: 'same-origin' }).then( res => res.json() ).then((res) => { if (res.error) { console.error(res); } else { building.uprns = res.uprns; this.setState({building: building}); } }).catch((err) => { console.error(err) this.setState({building: building}); }); // get if liked and update fetch(`/building/${building.building_id}/like.json`, { method: 'GET', headers:{ 'Content-Type': 'application/json' }, credentials: 'same-origin' }).then( res => res.json() ).then((res) => { if (res.error) { console.error(res); } else { this.setState({building_like: res.like}); } }).catch((err) => { console.error(err) this.setState({building_like: false}); }); } render() { return (
( ) } /> ( ) } /> ( ) } /> ( ) } /> ( ) } />
); } } const NotFound = () => (

Page not found

We can't find that one anywhere.

Back home
); export default App;