|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import React from 'react'; |
|
|
import CardPro from '../../common/ui/CardPro'; |
|
|
import RedemptionsTable from './RedemptionsTable'; |
|
|
import RedemptionsActions from './RedemptionsActions'; |
|
|
import RedemptionsFilters from './RedemptionsFilters'; |
|
|
import RedemptionsDescription from './RedemptionsDescription'; |
|
|
import EditRedemptionModal from './modals/EditRedemptionModal'; |
|
|
import { useRedemptionsData } from '../../../hooks/redemptions/useRedemptionsData'; |
|
|
import { useIsMobile } from '../../../hooks/common/useIsMobile'; |
|
|
import { createCardProPagination } from '../../../helpers/utils'; |
|
|
|
|
|
const RedemptionsPage = () => { |
|
|
const redemptionsData = useRedemptionsData(); |
|
|
const isMobile = useIsMobile(); |
|
|
|
|
|
const { |
|
|
|
|
|
showEdit, |
|
|
editingRedemption, |
|
|
closeEdit, |
|
|
refresh, |
|
|
|
|
|
|
|
|
selectedKeys, |
|
|
setEditingRedemption, |
|
|
setShowEdit, |
|
|
batchCopyRedemptions, |
|
|
batchDeleteRedemptions, |
|
|
|
|
|
|
|
|
formInitValues, |
|
|
setFormApi, |
|
|
searchRedemptions, |
|
|
loading, |
|
|
searching, |
|
|
|
|
|
|
|
|
compactMode, |
|
|
setCompactMode, |
|
|
|
|
|
|
|
|
t, |
|
|
} = redemptionsData; |
|
|
|
|
|
return ( |
|
|
<> |
|
|
<EditRedemptionModal |
|
|
refresh={refresh} |
|
|
editingRedemption={editingRedemption} |
|
|
visiable={showEdit} |
|
|
handleClose={closeEdit} |
|
|
/> |
|
|
|
|
|
<CardPro |
|
|
type='type1' |
|
|
descriptionArea={ |
|
|
<RedemptionsDescription |
|
|
compactMode={compactMode} |
|
|
setCompactMode={setCompactMode} |
|
|
t={t} |
|
|
/> |
|
|
} |
|
|
actionsArea={ |
|
|
<div className='flex flex-col md:flex-row justify-between items-center gap-2 w-full'> |
|
|
<RedemptionsActions |
|
|
selectedKeys={selectedKeys} |
|
|
setEditingRedemption={setEditingRedemption} |
|
|
setShowEdit={setShowEdit} |
|
|
batchCopyRedemptions={batchCopyRedemptions} |
|
|
batchDeleteRedemptions={batchDeleteRedemptions} |
|
|
t={t} |
|
|
/> |
|
|
|
|
|
<div className='w-full md:w-full lg:w-auto order-1 md:order-2'> |
|
|
<RedemptionsFilters |
|
|
formInitValues={formInitValues} |
|
|
setFormApi={setFormApi} |
|
|
searchRedemptions={searchRedemptions} |
|
|
loading={loading} |
|
|
searching={searching} |
|
|
t={t} |
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
} |
|
|
paginationArea={createCardProPagination({ |
|
|
currentPage: redemptionsData.activePage, |
|
|
pageSize: redemptionsData.pageSize, |
|
|
total: redemptionsData.tokenCount, |
|
|
onPageChange: redemptionsData.handlePageChange, |
|
|
onPageSizeChange: redemptionsData.handlePageSizeChange, |
|
|
isMobile: isMobile, |
|
|
t: redemptionsData.t, |
|
|
})} |
|
|
t={redemptionsData.t} |
|
|
> |
|
|
<RedemptionsTable {...redemptionsData} /> |
|
|
</CardPro> |
|
|
</> |
|
|
); |
|
|
}; |
|
|
|
|
|
export default RedemptionsPage; |
|
|
|