| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import React from 'react'; |
| import CardPro from '../../common/ui/CardPro'; |
| import UsersTable from './UsersTable'; |
| import UsersActions from './UsersActions'; |
| import UsersFilters from './UsersFilters'; |
| import UsersDescription from './UsersDescription'; |
| import AddUserModal from './modals/AddUserModal'; |
| import EditUserModal from './modals/EditUserModal'; |
| import { useUsersData } from '../../../hooks/users/useUsersData'; |
| import { useIsMobile } from '../../../hooks/common/useIsMobile'; |
| import { createCardProPagination } from '../../../helpers/utils'; |
|
|
| const UsersPage = () => { |
| const usersData = useUsersData(); |
| const isMobile = useIsMobile(); |
|
|
| const { |
| |
| showAddUser, |
| showEditUser, |
| editingUser, |
| setShowAddUser, |
| closeAddUser, |
| closeEditUser, |
| refresh, |
|
|
| |
| formInitValues, |
| setFormApi, |
| searchUsers, |
| loadUsers, |
| activePage, |
| pageSize, |
| groupOptions, |
| loading, |
| searching, |
|
|
| |
| compactMode, |
| setCompactMode, |
|
|
| |
| t, |
| } = usersData; |
|
|
| return ( |
| <> |
| <AddUserModal |
| refresh={refresh} |
| visible={showAddUser} |
| handleClose={closeAddUser} |
| /> |
| |
| <EditUserModal |
| refresh={refresh} |
| visible={showEditUser} |
| handleClose={closeEditUser} |
| editingUser={editingUser} |
| /> |
| |
| <CardPro |
| type='type1' |
| descriptionArea={ |
| <UsersDescription |
| compactMode={compactMode} |
| setCompactMode={setCompactMode} |
| t={t} |
| /> |
| } |
| actionsArea={ |
| <div className='flex flex-col md:flex-row justify-between items-center gap-2 w-full'> |
| <UsersActions setShowAddUser={setShowAddUser} t={t} /> |
| |
| <UsersFilters |
| formInitValues={formInitValues} |
| setFormApi={setFormApi} |
| searchUsers={searchUsers} |
| loadUsers={loadUsers} |
| activePage={activePage} |
| pageSize={pageSize} |
| groupOptions={groupOptions} |
| loading={loading} |
| searching={searching} |
| t={t} |
| /> |
| </div> |
| } |
| paginationArea={createCardProPagination({ |
| currentPage: usersData.activePage, |
| pageSize: usersData.pageSize, |
| total: usersData.userCount, |
| onPageChange: usersData.handlePageChange, |
| onPageSizeChange: usersData.handlePageSizeChange, |
| isMobile: isMobile, |
| t: usersData.t, |
| })} |
| t={usersData.t} |
| > |
| <UsersTable {...usersData} /> |
| </CardPro> |
| </> |
| ); |
| }; |
|
|
| export default UsersPage; |
|
|