From 72f5c44fad7afd4b7582500441e3b12a0457001c Mon Sep 17 00:00:00 2001 From: Daksh Shahani Date: Sat, 27 Jun 2026 20:52:05 -0700 Subject: [PATCH 1/5] edit filter function added --- .../features/query/popovers/filter-rows.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/features/query/popovers/filter-rows.tsx b/src/components/features/query/popovers/filter-rows.tsx index 7c92ec0..f8b690b 100644 --- a/src/components/features/query/popovers/filter-rows.tsx +++ b/src/components/features/query/popovers/filter-rows.tsx @@ -9,7 +9,7 @@ import { SelectValue, } from "@/components/ui/select"; import { Input } from "@/components/ui/input"; -import { X, Plus } from "lucide-react"; +import { X, Plus, Pencil } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import type { FilterRowsSelection } from "@/lib/firebase/types"; @@ -87,6 +87,14 @@ export function FilterRows({ onRemoveFilter(filterId); }; + const handleEditFilter = (filter: FilterRowsSelection) => { + setNewFilterColumn(filter.filterColumn); + setNewFilterCondition(filter.filterCondition); + setNewFilterValue(filter.filterValue); + setNewFilterOperator(filter.logicalOperator || 'AND'); + onRemoveFilter(filter.id); + }; + const getFilterDisplayText = (filter: FilterRowsSelection) => { const conditionLabel = CONDITION_OPTIONS[columnTypes[filter.filterColumn] || "string"] ?.find(opt => opt.value === filter.filterCondition)?.label || filter.filterCondition; @@ -165,6 +173,14 @@ export function FilterRows({ {getFilterDisplayText(filter)} + + {editingFilterId && ( + + )} From dc2e35ce149931fe7628c0689dd1af635e8874ea Mon Sep 17 00:00:00 2001 From: Daksh Shahani Date: Wed, 8 Jul 2026 22:15:29 -0700 Subject: [PATCH 5/5] chore(query): wire onFilterUpdate through query-filters consumer --- src/components/features/query/popovers/filter-rows.tsx | 4 ++-- src/components/features/query/query-filters.tsx | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/features/query/popovers/filter-rows.tsx b/src/components/features/query/popovers/filter-rows.tsx index eca9f8f..e87e89e 100644 --- a/src/components/features/query/popovers/filter-rows.tsx +++ b/src/components/features/query/popovers/filter-rows.tsx @@ -42,7 +42,7 @@ interface FilterRowsProps { filterSelections: FilterRowsSelection[]; onAddFilter: (filter: FilterRowsSelection) => void; onRemoveFilter: (filterId: string) => void; - onFilterUpdate?: (filterId: string, filter: FilterRowsSelection) => void; + onFilterUpdate: (filterId: string, filter: FilterRowsSelection) => void; onFilterOperatorChange: (filterId: string, operator: 'AND' | 'OR') => void; } @@ -79,7 +79,7 @@ export function FilterRows({ filterValue: newFilterValue, logicalOperator: newFilterOperator, }; - onFilterUpdate?.(editingFilterId, updatedFilter); + onFilterUpdate(editingFilterId, updatedFilter); } else { const newFilter: FilterRowsSelection = { id: crypto.randomUUID(), diff --git a/src/components/features/query/query-filters.tsx b/src/components/features/query/query-filters.tsx index 190e6aa..e52dd7d 100644 --- a/src/components/features/query/query-filters.tsx +++ b/src/components/features/query/query-filters.tsx @@ -18,6 +18,7 @@ export function QueryFilters({ availableColumns }: QueryFiltersProps) { filterSelections, onFilterAdd, onFilterRemove, + onFilterUpdate, onFilterOperatorChange, sorting, onSortingChange, @@ -115,6 +116,7 @@ export function QueryFilters({ availableColumns }: QueryFiltersProps) { filterSelections={filterSelections} onAddFilter={onFilterAdd} onRemoveFilter={onFilterRemove} + onFilterUpdate={onFilterUpdate} onFilterOperatorChange={onFilterOperatorChange} />