| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | 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; |
| |
|