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 @@ -73,6 +73,7 @@ export default function ExclusionZonesOptionsPanel(
setValue(
'zones',
getValues('zones').filter((_, i) => i !== index),
{ shouldDirty: true },
);
},
[getValues, setValue],
Expand Down
27 changes: 25 additions & 2 deletions src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ export const nonRemovableFilters = new Set<BaseFilterEntry['name']>([
'digitalFilter',
'digitalFilter2D',
]);
const readOnlyFilters = new Set<BaseFilterEntry['name']>([
'digitalFilter',
'shiftX',
'exclusionZones',
'fft',
'digitalFilter2D',
'fftDimension1',
'fftDimension2',
]);

const IconButton = styled(Button)`
font-size: 16px;
Expand Down Expand Up @@ -121,9 +130,14 @@ function FilterElements(props: FilterElementsProps) {
});
}

const isEditable =
!hideFilterRestoreButton &&
activeFilterID !== id &&
!readOnlyFilters.has(name);

return (
<>
{!hideFilterRestoreButton && activeFilterID !== id && (
{isEditable && (
<IconButton
intent="success"
tooltipProps={{
Expand Down Expand Up @@ -244,11 +258,20 @@ function FiltersInner(props: FiltersInnerProps) {
return null;
});
}
}, [filters, selectedTool]);

useEffect(() => {
if (Filters?.[selectedTool]) {
openSection(selectedTool);
return;
}
}, [filters, selectedTool]);

const filter = filters.find((filter) => filter.id === activeFilterID);

if (filter) {
openSection(filter.name);
}
}, [activeFilterID, filters, selectedTool]);

const filtersList = [...filters];

Expand Down
45 changes: 33 additions & 12 deletions src/component/reducer/actions/FiltersActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -446,9 +446,13 @@ function rollbackSpectrumByFilter(
const filterIndex = spectrum.filters.findIndex((f) => f[searchBy] === key);
if (filterIndex === -1 || reset) {
if (draft.tempData) {
const activeFilterIndex = toolData.activeFilterID
? spectrum.filters.findIndex((f) => f.id === toolData.activeFilterID)
: spectrum.filters.length - 1;
const activeFilterIndex =
!reset && toolData.activeFilterID
? spectrum.filters.findIndex(
(f) => f.id === toolData.activeFilterID,
)
: spectrum.filters.length;

const filters = spectrum.filters.slice(0, activeFilterIndex);
reapplyFilters(spectrum, filters);
}
Expand Down Expand Up @@ -793,6 +797,8 @@ function handleShiftSpectrumAlongXAxis(
return;
}

const activeFilterIndex = getActiveFilterIndex(draft);

//apply filter into the spectrum
const options = action.payload;

Expand All @@ -808,9 +814,14 @@ function handleShiftSpectrumAlongXAxis(
applyFilter: false,
});

Filters1DManager.applyFilters(draft.data[index] as Spectrum1D, [
{ name: 'shiftX', value: { shift } },
]);
Filters1DManager.applyFilters(
draft.data[index] as Spectrum1D,
[{ name: 'shiftX', value: { shift } }],
{
filterIndex: activeFilterIndex,
forceReapply: activeFilterIndex !== -1,
},
);

updateView(draft, shiftX.domainUpdateRules);
}
Expand All @@ -824,9 +835,14 @@ function handleShiftSpectrumAlongXAxis(
searchBy: 'name',
applyFilter: false,
});
Filters2DManager.applyFilters(draft.data[index] as Spectrum2D, [
{ name: 'shift2DX', value: { shift: shiftX } },
]);
Filters2DManager.applyFilters(
draft.data[index] as Spectrum2D,
[{ name: 'shift2DX', value: { shift: shiftX } }],
{
filterIndex: activeFilterIndex,
forceReapply: activeFilterIndex !== -1,
},
);
updateView(draft, shift2DX.domainUpdateRules);
}

Expand All @@ -836,9 +852,14 @@ function handleShiftSpectrumAlongXAxis(
searchBy: 'name',
applyFilter: false,
});
Filters2DManager.applyFilters(draft.data[index] as Spectrum2D, [
{ name: 'shift2DY', value: { shift: shiftY } },
]);
Filters2DManager.applyFilters(
draft.data[index] as Spectrum2D,
[{ name: 'shift2DY', value: { shift: shiftY } }],
{
filterIndex: activeFilterIndex,
forceReapply: activeFilterIndex !== -1,
},
);

updateView(draft, shift2DY.domainUpdateRules);
}
Expand Down
9 changes: 5 additions & 4 deletions src/component/reducer/actions/ToolsActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,11 @@ function handleResetSelectedTool(draft: Draft<State>) {
resetSelectedTool(draft);
}
function resetSelectedTool(draft: Draft<State>) {
if (
draft.toolOptions.selectedTool &&
Tools[draft.toolOptions.selectedTool].isFilter
) {
const {
selectedTool,
data: { activeFilterID },
} = draft.toolOptions;
if ((selectedTool && Tools[selectedTool].isFilter) || activeFilterID) {
resetTool(draft, { reset: true, toolId: draft.toolOptions.selectedTool });
}
}
Expand Down
Loading