Skip to content

Commit

Permalink
add onFilterUpdate handler to list view filters
Browse files Browse the repository at this point in the history
  • Loading branch information
riahk committed Sep 12, 2022
1 parent 9c285da commit 3c8b1d8
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ function SelectFilter(
};

const onClear = () => {
onSelect(undefined);
onSelect(undefined, true);
setSelectedOption(undefined);
};

Expand Down
37 changes: 32 additions & 5 deletions superset-frontend/src/components/ListView/Filters/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,18 @@ function UIFilters(
return (
<>
{filters.map(
({ Header, fetchSelects, id, input, paginate, selects }, index) => {
(
{
Header,
fetchSelects,
id,
input,
paginate,
selects,
onFilterUpdate,
},
index,
) => {
const initialValue =
internalFilters[index] && internalFilters[index].value;
if (input === 'select') {
Expand All @@ -74,9 +85,19 @@ function UIFilters(
initialValue={initialValue}
key={id}
name={id}
onSelect={(option: SelectOption | undefined) =>
updateFilterValue(index, option)
}
onSelect={(
option: SelectOption | undefined,
isClear: boolean,
) => {
if (onFilterUpdate) {
// Filter change triggers both onChange AND onClear, only want to track onChange
if (!isClear) {
onFilterUpdate(option);
}
}

updateFilterValue(index, option);
}}
paginate={paginate}
selects={selects}
/>
Expand All @@ -90,7 +111,13 @@ function UIFilters(
initialValue={initialValue}
key={id}
name={id}
onSubmit={(value: string) => updateFilterValue(index, value)}
onSubmit={(value: string) => {
if (onFilterUpdate) {
onFilterUpdate(value);
}

updateFilterValue(index, value);
}}
/>
);
}
Expand Down
1 change: 1 addition & 0 deletions superset-frontend/src/components/ListView/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export interface Filter {
unfilteredLabel?: string;
selects?: SelectOption[];
onFilterOpen?: () => void;
onFilterUpdate?: (value?: any) => void;
fetchSelects?: (
filterValue: string,
page: number,
Expand Down

0 comments on commit 3c8b1d8

Please sign in to comment.