import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Modal from '@material-ui/core/Modal';
import PokemonList from './pokemon-list';
import WantGroup from './want-group';
function getModalStyle() {
const top = 50;
const left = 50;
return {
top: `${top}%`,
left: `${left}%`,
transform: `translate(-${top}%, -${left}%)`,
};
}
const useStyles = makeStyles(theme => ({
paper: {
position: 'absolute',
width: '80%',
height: '90%',
backgroundColor: theme.palette.background.paper,
border: '2px solid #000',
boxShadow: theme.shadows[5],
padding: theme.spacing(2, 4, 3),
overflow: 'scroll',
},
}));
export default function ConnectModal(props) {
const classes = useStyles();
// getModalStyle is not a pure function, we roll the style only on the first render
const [modalStyle] = React.useState(getModalStyle);
const {
pokemonWantList, onDeselectPokemon, open, handleLinkWantAndNeed, linked, selectedId,
} = props;
const body = (
<div style={modalStyle} className={classes.paper}>
{
pokemonWantList.map(wantGroup => (
<WantGroup
handleLinkWantAndNeed={handleLinkWantAndNeed}
pokemonList={wantGroup.pokemons}
groupId={wantGroup.id}
groupName={wantGroup.group_name}
linked={linked}
selectedId={selectedId}
connect
/>
))
}
</div>
);
return (
<div>
<Modal
open={open}
onClose={onDeselectPokemon}
aria-labelledby="simple-modal-title"
aria-describedby="simple-modal-description"
>
{body}
</Modal>
</div>
);
}