1212// See the License for the specific language governing permissions and
1313// limitations under the License.
1414
15- import React from 'react'
15+ import React , { useMemo } from 'react'
1616import { useDispatch , useSelector } from 'react-redux'
1717import { defineMessages } from 'react-intl'
1818import { createSelector } from 'reselect'
@@ -30,7 +30,6 @@ import Message from '@ttn-lw/lib/components/message'
3030import DateTime from '@ttn-lw/lib/components/date-time'
3131
3232import sharedMessages from '@ttn-lw/lib/shared-messages'
33- import PropTypes from '@ttn-lw/lib/prop-types'
3433import { getUserId } from '@ttn-lw/lib/selectors/id'
3534import attachPromise from '@ttn-lw/lib/store/actions/attach-promise'
3635
@@ -111,21 +110,20 @@ const state = {
111110 } ,
112111}
113112
114- const UsersTable = props => {
115- const { pageSize } = props
113+ const UsersTable = ( ) => {
116114 const dispatch = useDispatch ( )
117115 const currentUserId = useSelector ( selectUserId )
118116 const mayInvite = useSelector ( state => checkFromState ( maySendInvites , state ) )
119117 const mayPerformAllActions = useSelector ( state => checkFromState ( mayPerformAllUserActions , state ) )
120118 const mayCreate = useSelector ( state => checkFromState ( mayCreateUsers , state ) )
121-
122- const tabsWithInvitations = [
123- ...tabs ,
124- { title : sharedMessages . userInvitations , name : INVITATIONS_TAB } ,
125- ]
126119 const [ tab , setTab ] = React . useState ( USERS_TAB )
127- const isInvitationsTab = tab === INVITATIONS_TAB
128- const isDeletedTab = tab === DELETED_TAB
120+ const isInvitationsTab = useMemo ( ( ) => tab === INVITATIONS_TAB , [ tab ] )
121+ const isDeletedTab = useMemo ( ( ) => tab === DELETED_TAB , [ tab ] )
122+
123+ const tabsWithInvitations = useMemo (
124+ ( ) => [ ...tabs , { title : sharedMessages . userInvitations , name : INVITATIONS_TAB } ] ,
125+ [ ] ,
126+ )
129127
130128 const handleRestore = React . useCallback (
131129 async id => {
@@ -187,7 +185,7 @@ const UsersTable = props => {
187185 [ dispatch ] ,
188186 )
189187
190- const headers = React . useMemo ( ( ) => {
188+ const headers = useMemo ( ( ) => {
191189 const baseHeaders = [ ]
192190
193191 if ( tab === INVITATIONS_TAB ) {
@@ -354,22 +352,12 @@ const UsersTable = props => {
354352 getItemPathPrefix = { isInvitationsTab ? getItemPathPrefix : undefined }
355353 tableTitle = { < Message content = { sharedMessages . users } /> }
356354 getItemsAction = { getItems }
357- searchItemsAction = { getItems }
358355 baseDataSelector = { isInvitationsTab ? invitationsBaseDataSelector : usersBaseDataSelector }
359- pageSize = { pageSize }
360356 clickable = { ! isDeletedTab }
361357 tabs = { mayInvite ? tabsWithInvitations : tabs }
362358 searchable = { ! isInvitationsTab }
363359 />
364360 )
365361}
366362
367- UsersTable . propTypes = {
368- pageSize : PropTypes . number ,
369- }
370-
371- UsersTable . defaultProps = {
372- pageSize : undefined ,
373- }
374-
375363export default UsersTable
0 commit comments