import React from "react"; import PropTypes from "prop-types"; import Button from "@mui/material/Button"; import ClearIcon from "@mui/icons-material/Clear"; import FormControl from "@mui/material/FormControl"; import IconButton from "@mui/material/IconButton"; import InputAdornment from "@mui/material/InputAdornment"; import MenuItem from "@mui/material/MenuItem"; import Select from "@mui/material/Select"; import TextField from "@mui/material/TextField"; class SearchForm extends React.Component { static propTypes = { filter: PropTypes.func.isRequired }; constructor(props) { super(props); // NOTE: This state is for UI only, List state's "filter" is used for requests. this.state = { searchField: "port", searchValue: "" }; this.clearSearch = this.clearSearch.bind(this); this.submitSearch = this.submitSearch.bind(this); } clearSearch(_) { this.setState({ searchValue: "" }); this.props.filter(null, null); } submitSearch() { // e.preventDefault(); if (this.state.searchValue === "") this.clearSearch(); else this.props.filter(this.state.searchField, this.state.searchValue); } render() { return (