|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import React from 'react'; |
|
|
import CardPro from '../../common/ui/CardPro'; |
|
|
import ChannelsTable from './ChannelsTable'; |
|
|
import ChannelsActions from './ChannelsActions'; |
|
|
import ChannelsFilters from './ChannelsFilters'; |
|
|
import ChannelsTabs from './ChannelsTabs'; |
|
|
import { useChannelsData } from '../../../hooks/channels/useChannelsData'; |
|
|
import { useIsMobile } from '../../../hooks/common/useIsMobile'; |
|
|
import BatchTagModal from './modals/BatchTagModal'; |
|
|
import ModelTestModal from './modals/ModelTestModal'; |
|
|
import ColumnSelectorModal from './modals/ColumnSelectorModal'; |
|
|
import EditChannelModal from './modals/EditChannelModal'; |
|
|
import EditTagModal from './modals/EditTagModal'; |
|
|
import MultiKeyManageModal from './modals/MultiKeyManageModal'; |
|
|
import { createCardProPagination } from '../../../helpers/utils'; |
|
|
|
|
|
const ChannelsPage = () => { |
|
|
const channelsData = useChannelsData(); |
|
|
const isMobile = useIsMobile(); |
|
|
|
|
|
return ( |
|
|
<> |
|
|
{/* Modals */} |
|
|
<ColumnSelectorModal {...channelsData} /> |
|
|
<EditTagModal |
|
|
visible={channelsData.showEditTag} |
|
|
tag={channelsData.editingTag} |
|
|
handleClose={() => channelsData.setShowEditTag(false)} |
|
|
refresh={channelsData.refresh} |
|
|
/> |
|
|
<EditChannelModal |
|
|
refresh={channelsData.refresh} |
|
|
visible={channelsData.showEdit} |
|
|
handleClose={channelsData.closeEdit} |
|
|
editingChannel={channelsData.editingChannel} |
|
|
/> |
|
|
<BatchTagModal {...channelsData} /> |
|
|
<ModelTestModal {...channelsData} /> |
|
|
<MultiKeyManageModal |
|
|
visible={channelsData.showMultiKeyManageModal} |
|
|
onCancel={() => channelsData.setShowMultiKeyManageModal(false)} |
|
|
channel={channelsData.currentMultiKeyChannel} |
|
|
onRefresh={channelsData.refresh} |
|
|
/> |
|
|
|
|
|
{/* Main Content */} |
|
|
<CardPro |
|
|
type='type3' |
|
|
tabsArea={<ChannelsTabs {...channelsData} />} |
|
|
actionsArea={<ChannelsActions {...channelsData} />} |
|
|
searchArea={<ChannelsFilters {...channelsData} />} |
|
|
paginationArea={createCardProPagination({ |
|
|
currentPage: channelsData.activePage, |
|
|
pageSize: channelsData.pageSize, |
|
|
total: channelsData.channelCount, |
|
|
onPageChange: channelsData.handlePageChange, |
|
|
onPageSizeChange: channelsData.handlePageSizeChange, |
|
|
isMobile: isMobile, |
|
|
t: channelsData.t, |
|
|
})} |
|
|
t={channelsData.t} |
|
|
> |
|
|
<ChannelsTable {...channelsData} /> |
|
|
</CardPro> |
|
|
</> |
|
|
); |
|
|
}; |
|
|
|
|
|
export default ChannelsPage; |
|
|
|