From bc023216896d73c3690fdf78f841f4b48a098f6a Mon Sep 17 00:00:00 2001 From: mabashian Date: Wed, 29 Jul 2020 08:45:06 -0400 Subject: [PATCH] Adopt useSelected --- .../src/screens/User/UserList/UserList.jsx | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/awx/ui_next/src/screens/User/UserList/UserList.jsx b/awx/ui_next/src/screens/User/UserList/UserList.jsx index 88c489c025..240720cec3 100644 --- a/awx/ui_next/src/screens/User/UserList/UserList.jsx +++ b/awx/ui_next/src/screens/User/UserList/UserList.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useCallback } from 'react'; +import React, { useEffect, useCallback } from 'react'; import { useLocation, useRouteMatch } from 'react-router-dom'; import { withI18n } from '@lingui/react'; import { t } from '@lingui/macro'; @@ -12,6 +12,7 @@ import PaginatedDataList, { ToolbarDeleteButton, } from '../../../components/PaginatedDataList'; import useRequest, { useDeleteItems } from '../../../util/useRequest'; +import useSelected from '../../../util/useSelected'; import { getQSConfig, parseQueryString } from '../../../util/qs'; import UserListItem from './UserListItem'; @@ -24,7 +25,6 @@ const QS_CONFIG = getQSConfig('user', { function UserList({ i18n }) { const location = useLocation(); const match = useRouteMatch(); - const [selected, setSelected] = useState([]); const { result: { users, itemCount, actions }, @@ -55,7 +55,9 @@ function UserList({ i18n }) { fetchUsers(); }, [fetchUsers]); - const isAllSelected = selected.length === users.length && selected.length > 0; + const { selected, isAllSelected, handleSelect, setSelected } = useSelected( + users + ); const { isLoading: isDeleteLoading, @@ -81,18 +83,6 @@ function UserList({ i18n }) { const hasContentLoading = isDeleteLoading || isLoading; const canAdd = actions && actions.POST; - const handleSelectAll = isSelected => { - setSelected(isSelected ? [...users] : []); - }; - - const handleSelect = row => { - if (selected.some(s => s.id === row.id)) { - setSelected(selected.filter(s => s.id !== row.id)); - } else { - setSelected(selected.concat(row)); - } - }; - return ( <> @@ -139,7 +129,9 @@ function UserList({ i18n }) { {...props} showSelectAll isAllSelected={isAllSelected} - onSelectAll={handleSelectAll} + onSelectAll={isSelected => + setSelected(isSelected ? [...users] : []) + } qsConfig={QS_CONFIG} additionalControls={[ ...(canAdd