Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,9 @@ const FilterBar: FC<FiltersBarProps> = ({

const handleClearAll = useCallback(() => {
const newClearAllTriggers = { ...clearAllTriggers };
filtersInScope.filter(isNativeFilter).forEach(filter => {
// Clear all native filters, not just those in scope
// This ensures dependent filters are cleared even if parent was cleared first
nativeFilterValues.forEach(filter => {
const { id } = filter;
if (dataMaskSelected[id]) {
setDataMaskSelected(draft => {
Expand All @@ -302,7 +304,12 @@ const FilterBar: FC<FiltersBarProps> = ({
}
});
setClearAllTriggers(newClearAllTriggers);
}, [dataMaskSelected, filtersInScope, setDataMaskSelected, clearAllTriggers]);
}, [
dataMaskSelected,
nativeFilterValues,
setDataMaskSelected,
clearAllTriggers,
]);

const handleClearAllComplete = useCallback((filterId: string) => {
setClearAllTriggers(prev => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -349,17 +349,21 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
}

// Handle the default to first Value case
if (defaultToFirstItem) {
// Set to first item if defaultToFirstItem is true
const firstItem: SelectValue = data[0]
? (groupby.map(col => data[0][col]) as string[])
: null;
if (firstItem?.[0] !== undefined) {
updateDataMask(firstItem);
// Skip default values when clearAllTrigger is active to prevent
// defaults from being applied during Clear All operation
if (!clearAllTrigger) {
if (defaultToFirstItem) {
// Set to first item if defaultToFirstItem is true
const firstItem: SelectValue = data[0]
? (groupby.map(col => data[0][col]) as string[])
: null;
if (firstItem?.[0] !== undefined) {
updateDataMask(firstItem);
}
} else if (formData?.defaultValue) {
// Handle defalut value case
updateDataMask(formData.defaultValue);
}
} else if (formData?.defaultValue) {
// Handle defalut value case
updateDataMask(formData.defaultValue);
}
}, [
isDisabled,
Expand All @@ -370,6 +374,7 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
groupby,
col,
inverseSelection,
clearAllTrigger,
]);

useEffect(() => {
Expand Down Expand Up @@ -407,7 +412,9 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
? (groupby.map(col => data[0][col]) as string[])
: null;

// Skip default value update when clearAllTrigger is active
if (
!clearAllTrigger &&
defaultToFirstItem &&
Object.keys(formData?.extraFormData || {}).length &&
filterState.value !== undefined &&
Expand All @@ -425,6 +432,7 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
data,
JSON.stringify(filterState.value),
isChangedByUser.current,
clearAllTrigger,
]);

useEffect(() => {
Expand Down
Loading