/* 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 . For commercial licensing, please contact support@quantumnous.com */ import React from 'react'; import { Banner } from '@douyinfe/semi-ui'; import { IconAlertTriangle } from '@douyinfe/semi-icons'; 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 */} channelsData.setShowEditTag(false)} refresh={channelsData.refresh} /> channelsData.setShowMultiKeyManageModal(false)} channel={channelsData.currentMultiKeyChannel} onRefresh={channelsData.refresh} /> {/* Main Content */} {channelsData.globalPassThroughEnabled ? ( } description={channelsData.t( '已开启全局请求透传:参数覆写、模型重定向、渠道适配等 NewAPI 内置功能将失效,非最佳实践;如因此产生问题,请勿提交 issue 反馈。', )} style={{ marginBottom: 12 }} /> ) : null} } actionsArea={} searchArea={} 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} > ); }; export default ChannelsPage;