Загрузка данных


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,
  };
};