diff --git a/src/features/TodolistsList/TodolistsList.tsx b/src/features/TodolistsList/TodolistsList.tsx index e5c829a..4039790 100644 --- a/src/features/TodolistsList/TodolistsList.tsx +++ b/src/features/TodolistsList/TodolistsList.tsx @@ -80,7 +80,7 @@ export const TodolistsList: React.FC = ({ demo = false }) => { value: FilterValuesType, todolistId: string ) { - const action = changeTodolistFilterAC(todolistId, value) + const action = changeTodolistFilterAC({ id: todolistId, filter: value }) dispatch(action) }, []) diff --git a/src/features/TodolistsList/todolists-reducer.test.ts b/src/features/TodolistsList/todolists-reducer.test.ts index f0c095d..dbd262b 100644 --- a/src/features/TodolistsList/todolists-reducer.test.ts +++ b/src/features/TodolistsList/todolists-reducer.test.ts @@ -65,7 +65,10 @@ test('correct todolist should be added', () => { test('correct todolist should change its name', () => { let newTodolistTitle = 'New Todolist' - const action = changeTodolistTitleAC(todolistId2, newTodolistTitle) + const action = changeTodolistTitleAC({ + id: todolistId2, + title: newTodolistTitle, + }) const endState = todolistsReducer(startState, action) @@ -76,7 +79,7 @@ test('correct todolist should change its name', () => { test('correct filter of todolist should be changed', () => { let newFilter: FilterValuesType = 'completed' - const action = changeTodolistFilterAC(todolistId2, newFilter) + const action = changeTodolistFilterAC({ id: todolistId2, filter: newFilter }) const endState = todolistsReducer(startState, action) @@ -93,7 +96,10 @@ test('todolists should be added', () => { test('correct entity status of todolist should be changed', () => { let newStatus: RequestStatusType = 'loading' - const action = changeTodolistEntityStatusAC(todolistId2, newStatus) + const action = changeTodolistEntityStatusAC({ + id: todolistId2, + status: newStatus, + }) const endState = todolistsReducer(startState, action) diff --git a/src/features/TodolistsList/todolists-reducer.ts b/src/features/TodolistsList/todolists-reducer.ts index d30fde5..2ac4118 100644 --- a/src/features/TodolistsList/todolists-reducer.ts +++ b/src/features/TodolistsList/todolists-reducer.ts @@ -50,24 +50,43 @@ export const todolistsReducer = ( // actions export const removeTodolistAC = (id: string) => ({ type: 'REMOVE-TODOLIST', id }) as const + export const addTodolistAC = (todolist: TodolistType) => ({ type: 'ADD-TODOLIST', todolist }) as const -export const changeTodolistTitleAC = (id: string, title: string) => + +export const changeTodolistTitleAC = ({ + id, + title, +}: { + id: string + title: string +}) => ({ type: 'CHANGE-TODOLIST-TITLE', id, title, }) as const -export const changeTodolistFilterAC = (id: string, filter: FilterValuesType) => + +export const changeTodolistFilterAC = ({ + id, + filter, +}: { + id: string + filter: FilterValuesType +}) => ({ type: 'CHANGE-TODOLIST-FILTER', id, filter, }) as const -export const changeTodolistEntityStatusAC = ( - id: string, + +export const changeTodolistEntityStatusAC = ({ + id, + status, +}: { + id: string status: RequestStatusType -) => +}) => ({ type: 'CHANGE-TODOLIST-ENTITY-STATUS', id, @@ -96,7 +115,9 @@ export const removeTodolistTC = (todolistId: string) => { //изменим глобальный статус приложения, чтобы вверху полоса побежала dispatch(setAppStatusAC('loading')) //изменим статус конкретного тудулиста, чтобы он мог задизеблить что надо - dispatch(changeTodolistEntityStatusAC(todolistId, 'loading')) + dispatch( + changeTodolistEntityStatusAC({ id: todolistId, status: 'loading' }) + ) todolistsAPI.deleteTodolist(todolistId).then((res) => { dispatch(removeTodolistAC(todolistId)) //скажем глобально приложению, что асинхронная операция завершена @@ -116,7 +137,7 @@ export const addTodolistTC = (title: string) => { export const changeTodolistTitleTC = (id: string, title: string) => { return (dispatch: Dispatch) => { todolistsAPI.updateTodolist(id, title).then((res) => { - dispatch(changeTodolistTitleAC(id, title)) + dispatch(changeTodolistTitleAC({ id: id, title: title })) }) } }