refactor: filters modal with context

This commit is contained in:
2025-09-04 14:54:20 +04:00
parent a5afb03be6
commit 7694b4ae03
4 changed files with 118 additions and 95 deletions

View File

@ -8,7 +8,7 @@ import ToolPanelAction from "@/app/deals/components/desktop/ToolPanelAction/Tool
import ViewSelector from "@/app/deals/components/desktop/ViewSelector/ViewSelector";
import { useDealsContext } from "@/app/deals/contexts/DealsContext";
import { useProjectsContext } from "@/app/deals/contexts/ProjectsContext";
import DealsTableFiltersModal from "@/app/deals/modals/DealsTableFiltersModal/DealsTableFiltersModal";
import { DealsFiltersForm } from "@/app/deals/hooks/useDealsFilters";
import ProjectSelect from "@/components/selects/ProjectSelect/ProjectSelect";
import { useDrawersContext } from "@/drawers/DrawersContext";
import useIsMobile from "@/hooks/utils/useIsMobile";
@ -49,6 +49,21 @@ const TopToolPanel: FC<Props> = ({ view, setView }) => {
});
};
const onFiltersClick = () => {
modals.openContextModal({
modal: "dealsFiltersModal",
title: "Фильтры",
withCloseButton: true,
innerProps: {
value: dealsFiltersForm.values,
onChange: (values: DealsFiltersForm) =>
dealsFiltersForm.setValues(values),
project: selectedProject,
boardAndStatusEnabled: view === "table",
},
});
};
return (
<Group justify={"space-between"}>
<ViewSelector
@ -59,22 +74,15 @@ const TopToolPanel: FC<Props> = ({ view, setView }) => {
wrap={"nowrap"}
align={"center"}
gap={"sm"}>
<DealsTableFiltersModal
getOpener={onFiltersClick => (
<Indicator
zIndex={100}
disabled={!isChangedFilters}
offset={3}
size={8}>
<ToolPanelAction onClick={onFiltersClick}>
<IconFilter />
</ToolPanelAction>
</Indicator>
)}
filtersForm={dealsFiltersForm}
selectedProject={selectedProject}
boardAndStatusEnabled={view === "table"}
/>
<Indicator
zIndex={100}
disabled={!isChangedFilters}
offset={3}
size={8}>
<ToolPanelAction onClick={onFiltersClick}>
<IconFilter />
</ToolPanelAction>
</Indicator>
<ToolPanelAction onClick={onEditClick}>
<IconEdit />
</ToolPanelAction>