import { auditRoute } from '@/app/router/routes/audit';
import { useGetApiV1MessageQuery } from '@/shared/api/audit/client';
import { useState } from 'react';
import { useAdditionalFilters } from './useAdditionalFilters';
import { useAuditOptions } from './useAuditOptions';
import { useBaseFilters } from './useBaseFilters';
import { useSearchUpdater } from './useSearchUpdater';
import { useSmartRoomIdFilter } from './useSmartRoomIdFilter';
export const useAuditSideFilter = () => {
const searchParams = auditRoute.useSearch();
const { refetch } = useGetApiV1MessageQuery(searchParams);
const { updateParamAndResetPage, updateParamsAndResetPage } =
useSearchUpdater();
const [isEquipmentFiltersOpen, setIsEquipmentFiltersOpen] = useState(false);
const auditOptions = useAuditOptions(searchParams);
const smartRoomFilter = useSmartRoomIdFilter({
initialValue: searchParams.smartroomId,
updateParamAndResetPage,
});
const additionalFilters = useAdditionalFilters({
searchParams,
updateParamAndResetPage,
updateParamsAndResetPage,
});
const baseFilters = useBaseFilters({
updateParamAndResetPage,
refetch,
resetSmartRoomId: smartRoomFilter.resetSmartRoomId,
clearAdditionalFilters: additionalFilters.clearAdditionalFilters,
resetAdditionalFilterInputs:
additionalFilters.resetAdditionalFilterInputs,
});
const handleEquipmentFiltersToggle = () => {
setIsEquipmentFiltersOpen((prev) => !prev);
};
return {
searchParams,
isEquipmentFiltersOpen,
...auditOptions,
...smartRoomFilter,
...additionalFilters,
...baseFilters,
handleEquipmentFiltersToggle,
};
};