Spaces:
Build error
Build error
| /* | |
| Copyright (C) 2025 QuantumNous | |
| This program is free software: you can redistribute it and/or modify | |
| it under the terms of the GNU Affero General Public License as | |
| published by the Free Software Foundation, either version 3 of the | |
| License, or (at your option) any later version. | |
| This program is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU Affero General Public License for more details. | |
| You should have received a copy of the GNU Affero General Public License | |
| along with this program. If not, see <https://www.gnu.org/licenses/>. | |
| For commercial licensing, please contact support@quantumnous.com | |
| */ | |
| 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; | |