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