Фильтрация стейта через Redux
Имею такой редюсер
import {
GET_POSTS,
GET_POSTS_ERROR,
GET_POSTS_SUCCESS,
FILTER_BY_VALUE,
} from "../contstants";
import { initialStateType } from "../../types/types";
const initialState = {
posts: [],
loadingPosts: false,
error: false,
} as initialStateType;
const PostsReducer = (
state = initialState,
{ type, payload }: PayloadAction<any>
) => {
switch (type) {
case GET_POSTS:
state = { ...state, loadingPosts: true };
break;
case GET_POSTS_SUCCESS:
state = { ...state, posts: payload, loadingPosts: false };
break;
case GET_POSTS_ERROR:
state = {
...state,
error: true,
loadingPosts: false,
};
break;
case FILTER_BY_VALUE:
state = {
...state,
posts: [...state.posts].filter((v) => {
return v.title.toLowerCase().includes(payload);
}),
};
break;
default:
state = { ...state };
break;
}
return state;
};
export default PostsReducer;
как при пусто инпуте возвращать старый стейт?
З.Ы. Направьте меня в нужное русло: Я не должен получать все данные с АПИшки, только порционно, через пагинацию. Верно? В таком случае если реализовать фильтрацию, мне нужен полные данные с АПИшки? Или я должен через параметры сделать запрос на сервер, сервер мне выдаст нужные мне данные?