import * as React from "react"; import { connect } from "react-redux"; import { Everything } from "../../interfaces"; import { DesignerNavTabs, Panel } from "../panel_header"; import { EmptyStateWrapper, EmptyStateGraphic } from "../../ui/empty_state_wrapper"; import { Content } from "../../constants"; import { DesignerPanel, DesignerPanelContent, DesignerPanelTop } from "../designer_panel"; import { t } from "../../i18next_wrapper"; import { TaggedGenericPointer } from "farmbot"; import { selectAllGenericPointers } from "../../resources/selectors"; import { PointInventoryItem } from "./point_inventory_item"; export interface WeedsProps { genericPoints: TaggedGenericPointer[]; dispatch: Function; hoveredPoint: string | undefined; } interface WeedsState { searchTerm: string; } export const isAWeed = (pointName: string, type?: string) => type == "weed" || pointName.toLowerCase().includes("weed"); export const mapStateToProps = (props: Everything): WeedsProps => ({ genericPoints: selectAllGenericPointers(props.resources.index) .filter(x => !x.body.discarded_at) .filter(x => isAWeed(x.body.name, x.body.meta.type)), dispatch: props.dispatch, hoveredPoint: props.resources.consumers.farm_designer.hoveredPoint, }); export class RawWeeds extends React.Component { state: WeedsState = { searchTerm: "" }; update = ({ currentTarget }: React.SyntheticEvent) => { this.setState({ searchTerm: currentTarget.value }); } render() { return 0} graphic={EmptyStateGraphic.weeds} title={t("No weeds yet.")} text={Content.NO_WEEDS} colorScheme={"weeds"}> {this.props.genericPoints .filter(p => p.body.name.toLowerCase() .includes(this.state.searchTerm.toLowerCase())) .map(p => )} ; } } export const Weeds = connect(mapStateToProps)(RawWeeds);