refactor(useIssues): Улучшен поиск и фильтрация Issues

This commit is contained in:
Андрей Дувакин 2025-06-08 14:37:31 +05:00
parent 0a7fd16a29
commit 76b72dce1c

View File

@ -13,9 +13,8 @@ import {
setCurrentPage, setCurrentPage,
setEndFilterDate, setEndFilterDate,
setPageSize, setPageSize,
setSearchText, setViewMode,
setStartFilterDate, setStartFilterDate,
setViewMode
} from "../../../Redux/Slices/lensIssuesSlice.js"; } from "../../../Redux/Slices/lensIssuesSlice.js";
import {getCachedInfo} from "../../../Utils/cachedInfoUtils.js"; import {getCachedInfo} from "../../../Utils/cachedInfoUtils.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
@ -24,7 +23,6 @@ import {useGetNotIssuedLensesQuery} from "../../../Api/lensesApi.js";
const useIssues = () => { const useIssues = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const { const {
searchText,
currentPage, currentPage,
pageSize, pageSize,
selectedIssue, selectedIssue,
@ -34,7 +32,7 @@ const useIssues = () => {
endFilterDate, endFilterDate,
} = useSelector(state => state.lensIssuesUI); } = useSelector(state => state.lensIssuesUI);
const [tempSearchText, setTempSearchText] = useState(searchText); const [tempSearchText, setTempSearchText] = useState("");
const { const {
data: issuesData = {issues: [], total_count: 0}, data: issuesData = {issues: [], total_count: 0},
@ -45,7 +43,7 @@ const useIssues = () => {
} = useGetLensIssuesQuery({ } = useGetLensIssuesQuery({
page: currentPage, page: currentPage,
pageSize, pageSize,
search: searchText || undefined, search: tempSearchText || undefined, // Используем tempSearchText напрямую
sortOrder: 'desc', sortOrder: 'desc',
startDate: startFilterDate ? dayjs(startFilterDate).format('YYYY-MM-DD') : undefined, startDate: startFilterDate ? dayjs(startFilterDate).format('YYYY-MM-DD') : undefined,
endDate: endFilterDate ? dayjs(endFilterDate).format('YYYY-MM-DD') : undefined, endDate: endFilterDate ? dayjs(endFilterDate).format('YYYY-MM-DD') : undefined,
@ -107,18 +105,12 @@ const useIssues = () => {
const handleSetTempSearchText = (value) => { const handleSetTempSearchText = (value) => {
setTempSearchText(value); setTempSearchText(value);
handleSearch(); dispatch(setCurrentPage(1)); // Сбрасываем на первую страницу
}; refetch(); // Обновляем данные при изменении поиска
const handleSearch = () => {
dispatch(setSearchText(tempSearchText));
dispatch(setCurrentPage(1));
refetch();
}; };
const handleClearSearch = () => { const handleClearSearch = () => {
setTempSearchText(''); setTempSearchText('');
dispatch(setSearchText(''));
dispatch(setCurrentPage(1)); dispatch(setCurrentPage(1));
refetch(); refetch();
}; };
@ -202,8 +194,7 @@ const useIssues = () => {
isLoading, isLoading,
isError, isError,
isProcessing: isAdding, isProcessing: isAdding,
searchText, tempSearchText, // Возвращаем только tempSearchText
tempSearchText,
selectedIssue, selectedIssue,
isModalVisible, isModalVisible,
viewMode, viewMode,
@ -220,7 +211,6 @@ const useIssues = () => {
handleAddIssue, handleAddIssue,
handlePaginationChange, handlePaginationChange,
handleSetTempSearchText, handleSetTempSearchText,
handleSearch,
handleClearSearch, handleClearSearch,
handleSetViewMode, handleSetViewMode,
handleCloseModal, handleCloseModal,