MCPcopy Create free account
hub / github.com/OpenPipe/OpenPipe / TextFilter

Function TextFilter

app/src/components/Filters/Filter/TextFilter.tsx:12–51  ·  view source on GitHub ↗
({
  filterOptions,
  filter,
  urlKey,
}: {
  filterOptions: AtLeastOne<FilterOption>;
  filter: FilterData;
  urlKey?: string;
})

Source from the content-addressed store, hash-verified

10import { type AtLeastOne } from "~/types/shared.types";
11
12const TextFilter = ({
13 filterOptions,
14 filter,
15 urlKey,
16}: {
17 filterOptions: AtLeastOne<FilterOption>;
18 filter: FilterData;
19 urlKey?: string;
20}) => {
21 const { updateFilter, removeFilter } = useFilters({ urlKey });
22
23 const [editedValue, setEditedValue] = useState(filter.value as string);
24
25 const debouncedUpdateFilter = useCallback(
26 debounce((filter: FilterData) => updateFilter(filter), 500, {
27 leading: true,
28 }),
29 [updateFilter],
30 );
31
32 return (
33 <HStack>
34 <SelectFieldDropdown filterOptions={filterOptions} filter={filter} urlKey={urlKey} />
35 <SelectComparatorDropdown filter={filter} filterType="text" urlKey={urlKey} />
36 <Input
37 value={editedValue}
38 onChange={(e) => {
39 setEditedValue(e.target.value);
40 debouncedUpdateFilter({ ...filter, value: e.target.value });
41 }}
42 w={486}
43 />
44 <IconButton
45 aria-label="Remove Filter"
46 icon={<BsTrash />}
47 onClick={() => removeFilter(filter)}
48 />
49 </HStack>
50 );
51};
52
53export default TextFilter;

Callers

nothing calls this directly

Calls 3

useFiltersFunction · 0.90
removeFilterFunction · 0.85
updateFilterFunction · 0.50

Tested by

no test coverage detected