refactor: convert partner/withdrawal modals to separate pages

Replace 7 modal dialogs with 8 dedicated page routes for better
mobile/Telegram WebApp UX. Add campaign management (assign/create
with auto-assign) to partner detail page.

New pages: AdminApplicationReview, AdminPartnerCommission,
AdminPartnerRevoke, AdminWithdrawalReject, AdminPartnerCampaignAssign,
AdminPartnerCampaignCreate, ReferralPartnerApply,
ReferralWithdrawalRequest.

~610 lines removed from parent pages, ~425 lines removed net.
This commit is contained in:
Fringg
2026-02-17 10:28:32 +03:00
parent 779fbf0dc6
commit 062976180c
17 changed files with 1320 additions and 614 deletions

View File

@@ -61,8 +61,16 @@ const AdminCampaignStats = lazy(() => import('./pages/AdminCampaignStats'));
const AdminCampaignEdit = lazy(() => import('./pages/AdminCampaignEdit'));
const AdminPartners = lazy(() => import('./pages/AdminPartners'));
const AdminPartnerDetail = lazy(() => import('./pages/AdminPartnerDetail'));
const AdminApplicationReview = lazy(() => import('./pages/AdminApplicationReview'));
const AdminPartnerCommission = lazy(() => import('./pages/AdminPartnerCommission'));
const AdminPartnerRevoke = lazy(() => import('./pages/AdminPartnerRevoke'));
const AdminPartnerCampaignAssign = lazy(() => import('./pages/AdminPartnerCampaignAssign'));
const AdminPartnerCampaignCreate = lazy(() => import('./pages/AdminPartnerCampaignCreate'));
const AdminWithdrawals = lazy(() => import('./pages/AdminWithdrawals'));
const AdminWithdrawalDetail = lazy(() => import('./pages/AdminWithdrawalDetail'));
const AdminWithdrawalReject = lazy(() => import('./pages/AdminWithdrawalReject'));
const ReferralPartnerApply = lazy(() => import('./pages/ReferralPartnerApply'));
const ReferralWithdrawalRequest = lazy(() => import('./pages/ReferralWithdrawalRequest'));
const AdminUsers = lazy(() => import('./pages/AdminUsers'));
const AdminPayments = lazy(() => import('./pages/AdminPayments'));
const AdminPaymentMethods = lazy(() => import('./pages/AdminPaymentMethods'));
@@ -221,6 +229,26 @@ function App() {
</ProtectedRoute>
}
/>
<Route
path="/referral/partner/apply"
element={
<ProtectedRoute>
<LazyPage>
<ReferralPartnerApply />
</LazyPage>
</ProtectedRoute>
}
/>
<Route
path="/referral/withdrawal/request"
element={
<ProtectedRoute>
<LazyPage>
<ReferralWithdrawalRequest />
</LazyPage>
</ProtectedRoute>
}
/>
<Route
path="/support"
element={
@@ -563,6 +591,56 @@ function App() {
</AdminRoute>
}
/>
<Route
path="/admin/partners/applications/:id/review"
element={
<AdminRoute>
<LazyPage>
<AdminApplicationReview />
</LazyPage>
</AdminRoute>
}
/>
<Route
path="/admin/partners/:userId/commission"
element={
<AdminRoute>
<LazyPage>
<AdminPartnerCommission />
</LazyPage>
</AdminRoute>
}
/>
<Route
path="/admin/partners/:userId/revoke"
element={
<AdminRoute>
<LazyPage>
<AdminPartnerRevoke />
</LazyPage>
</AdminRoute>
}
/>
<Route
path="/admin/partners/:userId/campaigns/assign"
element={
<AdminRoute>
<LazyPage>
<AdminPartnerCampaignAssign />
</LazyPage>
</AdminRoute>
}
/>
<Route
path="/admin/partners/:userId/campaigns/create"
element={
<AdminRoute>
<LazyPage>
<AdminPartnerCampaignCreate />
</LazyPage>
</AdminRoute>
}
/>
<Route
path="/admin/partners/:userId"
element={
@@ -583,6 +661,16 @@ function App() {
</AdminRoute>
}
/>
<Route
path="/admin/withdrawals/:id/reject"
element={
<AdminRoute>
<LazyPage>
<AdminWithdrawalReject />
</LazyPage>
</AdminRoute>
}
/>
<Route
path="/admin/withdrawals/:id"
element={