import React, { Component, Fragment } from "react"; import { AdvancedCreatureSearch } from "../../services/advanced-creature-search"; import { CollapsableContainer } from "../containers/collapsable-container"; import { MonsterBlock } from "../monster-block/monster-block"; import { ICreatureSearchState } from "./interfaces/i-creature-search-state"; import { ICreatureSearchProps } from "./interfaces/i-creature-search-props"; class CreatureSearch extends Component< ICreatureSearchProps, ICreatureSearchState > { static defaultProps = { creatures: [] }; constructor(props) { super(props); this.state = { creatures: [], name: "", type: "", minCr: "", maxCr: "", alignment: "" }; } search() { this.setState({ creatures: AdvancedCreatureSearch.search(this.props.creatures, { name: this.state.name, type: this.state.type, minCr: this.state.minCr, maxCr: this.state.maxCr, alignment: this.state.alignment }) }); } handleName(e) { this.setState({ name: e.target.value }, this.search); } handleType(e) { this.setState({ type: e.target.value }, this.search); } handleMinCr(e) { this.setState({ minCr: e.target.value }, this.search); } handleMaxCr(e) { this.setState({ maxCr: e.target.value }, this.search); } handleAlignment(e) { this.setState({ alignment: e.target.value }, this.search); } componentDidMount() { this.search(); } render() { return (
{this.state.creatures.map((item, index) => { return ( ); })}
); } } export { CreatureSearch };