diff --git a/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js b/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js index 97eff4159..b52a0d0a5 100644 --- a/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js +++ b/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js @@ -48,20 +48,13 @@ export const TasksTableQueryReducer = (state = initialState, action) => { case OPEN_SELECT_ALL: return state.set('showSelectAll', true); case UNSELECT_ROWS: - if (state.allRowsSelected) { - // User can unselect rows if only the page rows are selected - return state - .set( - 'selectedRows', - payload.results.map(row => row.id).filter(row => row !== payload.id) - ) - .set('allRowsSelected', false) - .set('showSelectAll', false); - } - return state.set( - 'selectedRows', - state.selectedRows.filter(row => row !== payload.id) - ); + return state + .set( + 'selectedRows', + state.selectedRows.filter(row => row !== payload.id) + ) + .set('showSelectAll', false) + .set('allRowsSelected', false); case UNSELECT_ALL_ROWS: return state .set('selectedRows', []) diff --git a/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableReducer.test.js b/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableReducer.test.js index 9ceb82dde..b08de885c 100644 --- a/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableReducer.test.js +++ b/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableReducer.test.js @@ -73,7 +73,9 @@ const fixtures = { }, }, 'should handle UNSELECT_ROWS with all rows selected': { - state: Immutable({ tasksTableQuery: { allRowsSelected: true } }), + state: Immutable({ + tasksTableQuery: { allRowsSelected: true, selectedRows: [3, 4, 5] }, + }), action: { type: UNSELECT_ROWS, payload: { id: [4], results: [{ id: 3 }, { id: 4 }, { id: 5 }] }, diff --git a/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap b/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap index f4308b11a..44e56cd1c 100644 --- a/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap +++ b/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap @@ -80,7 +80,9 @@ Object { exports[`TasksTableReducer reducer should handle UNSELECT_ROWS 1`] = ` Object { "tasksTableQuery": Object { + "allRowsSelected": false, "selectedRows": Array [], + "showSelectAll": false, }, } `;