/* 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, { useContext } from 'react'; import { Banner } from '@douyinfe/semi-ui'; import CardPro from '../../common/ui/CardPro'; import SubscriptionsTable from './SubscriptionsTable'; import SubscriptionsActions from './SubscriptionsActions'; import SubscriptionsDescription from './SubscriptionsDescription'; import AddEditSubscriptionModal from './modals/AddEditSubscriptionModal'; import { useSubscriptionsData } from '../../../hooks/subscriptions/useSubscriptionsData'; import { useIsMobile } from '../../../hooks/common/useIsMobile'; import { createCardProPagination } from '../../../helpers/utils'; import { StatusContext } from '../../../context/Status'; const SubscriptionsPage = () => { const subscriptionsData = useSubscriptionsData(); const isMobile = useIsMobile(); const [statusState] = useContext(StatusContext); const enableEpay = !!statusState?.status?.enable_online_topup; const { showEdit, editingPlan, sheetPlacement, closeEdit, refresh, openCreate, compactMode, setCompactMode, t, } = subscriptionsData; return ( <> } actionsArea={
{/* Mobile: actions first; Desktop: actions left */}
} paginationArea={createCardProPagination({ currentPage: subscriptionsData.activePage, pageSize: subscriptionsData.pageSize, total: subscriptionsData.planCount, onPageChange: subscriptionsData.handlePageChange, onPageSizeChange: subscriptionsData.handlePageSizeChange, isMobile, t: subscriptionsData.t, })} t={t} >
); }; export default SubscriptionsPage;