Skip to content
Merged
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 @@ -396,7 +396,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 Down Expand Up @@ -448,10 +450,11 @@ const FilterBar: FC<FiltersBarProps> = ({
setClearAllTriggers(newClearAllTriggers);
}, [
dataMaskSelected,
nativeFilterValues,
setDataMaskSelected,
clearAllTriggers,
dataMaskApplied,
filtersInScope,
chartCustomizationItems,
clearAllTriggers,
dispatch,
]);

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) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be useful to add/enhance tests

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 @@ -406,7 +411,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 @@ -423,6 +430,7 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
formData,
data,
JSON.stringify(filterState.value),
clearAllTrigger,
]);

useEffect(() => {
Expand Down
Loading