import * as React from "react"; import { connect } from "react-redux"; import { PointInventoryItem } from "./point_inventory_item"; 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 { selectAllGenericPointers } from "../../resources/selectors"; import { TaggedGenericPointer } from "farmbot"; import { t } from "../../i18next_wrapper"; import { SearchField } from "../../ui/search_field"; export interface PointsProps { genericPoints: TaggedGenericPointer[]; dispatch: Function; hoveredPoint: string | undefined; } interface PointsState { searchTerm: string; } export function mapStateToProps(props: Everything): PointsProps { const { hoveredPoint } = props.resources.consumers.farm_designer; return { genericPoints: selectAllGenericPointers(props.resources.index) .filter(x => x), dispatch: props.dispatch, hoveredPoint, }; } export class RawPoints extends React.Component { state: PointsState = { searchTerm: "" }; render() { return this.setState({ searchTerm })} /> 0} graphic={EmptyStateGraphic.points} title={t("No points yet.")} text={Content.NO_POINTS} colorScheme={"points"}> {this.props.genericPoints .filter(p => p.body.name.toLowerCase() .includes(this.state.searchTerm.toLowerCase())) .map(p => )} ; } } export const Points = connect(mapStateToProps)(RawPoints);