import { createSlice, PayloadAction } from '@reduxjs/toolkit'; export interface ClosedRequestsFiltersState { searchTerm: string; statusFilter: string; priorityFilter: string; sortBy: 'created' | 'due' | 'priority'; sortOrder: 'asc' | 'desc'; currentPage: number; } const initialState: ClosedRequestsFiltersState = { searchTerm: '', statusFilter: 'all', priorityFilter: 'all', sortBy: 'created', sortOrder: 'desc', currentPage: 1, }; const closedRequestsSlice = createSlice({ name: 'closedRequests', initialState, reducers: { setSearchTerm: (state, action: PayloadAction) => { state.searchTerm = action.payload; }, setStatusFilter: (state, action: PayloadAction) => { state.statusFilter = action.payload; }, setPriorityFilter: (state, action: PayloadAction) => { state.priorityFilter = action.payload; }, setSortBy: (state, action: PayloadAction<'created' | 'due' | 'priority'>) => { state.sortBy = action.payload; }, setSortOrder: (state, action: PayloadAction<'asc' | 'desc'>) => { state.sortOrder = action.payload; }, setCurrentPage: (state, action: PayloadAction) => { state.currentPage = action.payload; }, clearFilters: (state) => { state.searchTerm = ''; state.statusFilter = 'all'; state.priorityFilter = 'all'; state.currentPage = 1; }, }, }); export const { setSearchTerm, setStatusFilter, setPriorityFilter, setSortBy, setSortOrder, setCurrentPage, clearFilters, } = closedRequestsSlice.actions; export default closedRequestsSlice;