import { useState, useMemo } from "react"; import { Group, TextInput, UnstyledButton, Text } from "@mantine/core"; import { IconSearch } from "@tabler/icons-react"; import type { IBaseProperty } from "@/ee/base/types/base.types"; import classes from "@/ee/base/styles/formula.module.css"; export function PropertyChipRow({ properties, onInsert, }: { properties: IBaseProperty[]; onInsert: (name: string) => void; }) { const [query, setQuery] = useState(""); const visible = useMemo(() => { const q = query.trim().toLowerCase(); if (!q) return properties; return properties.filter((p) => p.name.toLowerCase().includes(q)); }, [properties, query]); return (
Properties } value={query} onChange={(e) => setQuery(e.currentTarget.value)} w={140} /> {visible.length === 0 ? ( No matches. ) : ( {visible.map((p) => ( onInsert(p.name)} className={classes.propChip} > {p.name} ))} )}
); }