import React, { Component } from 'react';
import * as ReactDOM from 'react-dom';
import PokemonList from '../components/pokemon-list';
import ConnectModal from '../components/connect-modal';
import Menu from '../components/menu';
class App extends Component {
constructor(props) {
super(props);
this.state = {
pokemonList: [],
open: false,
pokemonWantList: [],
};
}
componentDidMount() {
fetch('/api/stored-pokemon-have')
.then(response => response.json())
.then((data) => {
this.setState({ pokemonList: data.pokemons });
});
}
render() {
const {
pokemonList, pokemonWantList, selectedId, linked,
} = this.state;
let { open } = this.state;
const handleAddPokemonClick = () => () => {
window.location.href = '/chose.html?type=have';
};
const onSelectPokemon = (selected, url, id, deselect) => {
fetch('/api/stored-pokemon-want')
.then(response => response.json())
.then((data) => {
open = true;
fetch('/api/linked-stored-pokemon')
.then(response => response.json())
.then((data2) => {
this.setState({
open, deselect, pokemonWantList: data, selectedId: id, linked: data2,
});
});
});
};
const onDeselectPokemon = () => {
const { deselect } = this.state;
open = false;
deselect();
this.setState({ open, deselect: undefined });
};
const handleLinkWantAndNeed = groupId => () => {
fetch('api/linked-stored-pokemon', {
method: 'POST',
body: JSON.stringify({
group_id: groupId,
selected_id: selectedId,
}),
}).then(() => {});
};
return (
<div>
<Menu active={0} />
<PokemonList pokemonList={pokemonList} onSelectPokemon={onSelectPokemon} />
<button style={{ fontSize: '10em' }} type="button" onClick={handleAddPokemonClick()}>Add</button>
<ConnectModal
pokemonWantList={pokemonWantList}
open={open}
onDeselectPokemon={onDeselectPokemon}
handleLinkWantAndNeed={handleLinkWantAndNeed}
linked={linked}
selectedId={selectedId}
/>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('main'));