From 07c96009916c7fe7f74b4704ee4f59461ad841c3 Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Fri, 17 Jul 2026 12:14:48 +0330 Subject: [PATCH] fix(discount): move Discount Management tab to the /admin/subscription page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The discount tab was wired into AdminSubscriptionPage (route /admin/admin-subscription, admin-only) but /admin/subscription renders the doctor/clinic SubscriptionPage. Since discount rules are owner-scoped, add the segmented «مدیریت تخفیف‌ها» tab there and revert AdminSubscriptionPage. Co-Authored-By: Claude Fable 5 --- assets/admin/pages/AdminSubscriptionPage.tsx | 15 ++++++--------- assets/admin/pages/SubscriptionPage.tsx | 11 +++++++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/assets/admin/pages/AdminSubscriptionPage.tsx b/assets/admin/pages/AdminSubscriptionPage.tsx index dcd4d1cb..6e3a8f37 100644 --- a/assets/admin/pages/AdminSubscriptionPage.tsx +++ b/assets/admin/pages/AdminSubscriptionPage.tsx @@ -13,7 +13,6 @@ import Modal from '../components/ui/Modal'; import ConfirmDialog from '../components/ui/ConfirmDialog'; import PageHeader from '../components/ui/PageHeader'; import Pagination from '../components/ui/Pagination'; -import DiscountTab from '../components/DiscountTab'; // ── Types ───────────────────────────────────────────────────────────────── @@ -436,21 +435,19 @@ function ReportTab() { // ── Main ────────────────────────────────────────────────────────────────── export default function AdminSubscriptionPage() { - const [tab, setTab] = useState<'plans' | 'report' | 'discounts'>('plans'); + const [tab, setTab] = useState<'plans' | 'report'>('plans'); return ( <> - +
- - - + +
- {tab === 'plans' && } - {tab === 'discounts' && } - {tab === 'report' && } + {tab === 'plans' && } + {tab === 'report' && } ); } diff --git a/assets/admin/pages/SubscriptionPage.tsx b/assets/admin/pages/SubscriptionPage.tsx index 4ba11c44..4d03ff69 100644 --- a/assets/admin/pages/SubscriptionPage.tsx +++ b/assets/admin/pages/SubscriptionPage.tsx @@ -10,6 +10,7 @@ import { usePaymentConfig } from '../hooks/usePaymentConfig'; import { formatRial, formatNumber } from '../lib/utils'; import Modal from '../components/ui/Modal'; import SettingsLayout from '../components/layout/SettingsLayout'; +import DiscountTab from '../components/DiscountTab'; import { SparkleIcon, PlanCardPerson, CloseCircleFilled, GiftIcon, InfoCircleRedFilled, } from './subscriptionIcons'; @@ -55,6 +56,7 @@ export const planMetaOf = (name: string) => PLAN_META[name] ?? PLAN_META.free; export default function SubscriptionPage() { const qc = useQueryClient(); + const [tab, setTab] = useState<'plans' | 'discounts'>('plans'); const [purchaseTarget, setPurchaseTarget] = useState<{ period: SubscriptionPeriod; planName: string } | null>(null); const [selectedGateway, setSelectedGateway] = useState(''); @@ -122,6 +124,14 @@ export default function SubscriptionPage() { style={{ background: 'var(--surface)', minWidth: 0 }} className="px-4 py-4 md:px-6 md:py-6 rounded-[var(--r-lg)]" > +
+ + +
+ + {tab === 'discounts' ? ( + + ) : (
{/* ── Header: current plan (left) + title (right) ── */}
@@ -163,6 +173,7 @@ export default function SubscriptionPage() {
)}
+ )}