fixed reloads
This commit is contained in:
parent
71bf6baae5
commit
624797246e
2 changed files with 8 additions and 5 deletions
|
|
@ -42,10 +42,11 @@ export function useSubscription(mandateId?: string): UseSubscriptionReturn {
|
||||||
const [plan, setPlan] = useState<SubscriptionPlan | null>(null);
|
const [plan, setPlan] = useState<SubscriptionPlan | null>(null);
|
||||||
const [scheduled, setScheduled] = useState<MandateSubscription | null>(null);
|
const [scheduled, setScheduled] = useState<MandateSubscription | null>(null);
|
||||||
const [active, setActive] = useState(false);
|
const [active, setActive] = useState(false);
|
||||||
const { request, isLoading: loading, error: apiError } = useApiRequest();
|
const { request, isLoading: loading, error: apiError, clearCache } = useApiRequest();
|
||||||
const [error, setError] = useState<string | null>(null);
|
const [error, setError] = useState<string | null>(null);
|
||||||
|
|
||||||
const loadPlans = useCallback(async () => {
|
const loadPlans = useCallback(async () => {
|
||||||
|
clearCache('/api/subscription/plans', 'get');
|
||||||
try {
|
try {
|
||||||
const data = await fetchSelectablePlans(request, mandateId);
|
const data = await fetchSelectablePlans(request, mandateId);
|
||||||
setPlans(Array.isArray(data) ? data : []);
|
setPlans(Array.isArray(data) ? data : []);
|
||||||
|
|
@ -53,9 +54,10 @@ export function useSubscription(mandateId?: string): UseSubscriptionReturn {
|
||||||
console.error('Error loading plans:', err);
|
console.error('Error loading plans:', err);
|
||||||
setPlans([]);
|
setPlans([]);
|
||||||
}
|
}
|
||||||
}, [request, mandateId]);
|
}, [request, mandateId, clearCache]);
|
||||||
|
|
||||||
const loadStatus = useCallback(async () => {
|
const loadStatus = useCallback(async () => {
|
||||||
|
clearCache('/api/subscription/status', 'get');
|
||||||
try {
|
try {
|
||||||
const data: SubscriptionStatusResponse = await fetchSubscriptionStatus(request, mandateId);
|
const data: SubscriptionStatusResponse = await fetchSubscriptionStatus(request, mandateId);
|
||||||
setActive(data.active);
|
setActive(data.active);
|
||||||
|
|
@ -69,7 +71,7 @@ export function useSubscription(mandateId?: string): UseSubscriptionReturn {
|
||||||
setPlan(null);
|
setPlan(null);
|
||||||
setScheduled(null);
|
setScheduled(null);
|
||||||
}
|
}
|
||||||
}, [request, mandateId]);
|
}, [request, mandateId, clearCache]);
|
||||||
|
|
||||||
const activatePlan = useCallback(async (planKey: string) => {
|
const activatePlan = useCallback(async (planKey: string) => {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -605,6 +605,7 @@ export const BillingAdmin: React.FC = () => {
|
||||||
const [adminTab, setAdminTab] = useState<AdminTabType>(
|
const [adminTab, setAdminTab] = useState<AdminTabType>(
|
||||||
['settings', 'credit', 'subscription', 'transactions'].includes(_initialAdminTab) ? _initialAdminTab : 'settings'
|
['settings', 'credit', 'subscription', 'transactions'].includes(_initialAdminTab) ? _initialAdminTab : 'settings'
|
||||||
);
|
);
|
||||||
|
const [subscriptionTabKey, setSubscriptionTabKey] = useState(0);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (adminTab === 'subscription' || searchParams.get('tab') === 'subscription') return;
|
if (adminTab === 'subscription' || searchParams.get('tab') === 'subscription') return;
|
||||||
|
|
@ -736,7 +737,7 @@ export const BillingAdmin: React.FC = () => {
|
||||||
<button onClick={() => setAdminTab('credit')} style={_tabStyle(adminTab === 'credit')}>
|
<button onClick={() => setAdminTab('credit')} style={_tabStyle(adminTab === 'credit')}>
|
||||||
Guthaben
|
Guthaben
|
||||||
</button>
|
</button>
|
||||||
<button onClick={() => setAdminTab('subscription')} style={_tabStyle(adminTab === 'subscription')}>
|
<button onClick={() => { setAdminTab('subscription'); setSubscriptionTabKey(k => k + 1); }} style={_tabStyle(adminTab === 'subscription')}>
|
||||||
Abonnement
|
Abonnement
|
||||||
</button>
|
</button>
|
||||||
<button onClick={() => setAdminTab('transactions')} style={_tabStyle(adminTab === 'transactions')}>
|
<button onClick={() => setAdminTab('transactions')} style={_tabStyle(adminTab === 'transactions')}>
|
||||||
|
|
@ -769,7 +770,7 @@ export const BillingAdmin: React.FC = () => {
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{adminTab === 'subscription' && (
|
{adminTab === 'subscription' && (
|
||||||
<SubscriptionTab mandateId={selectedMandateId} />
|
<SubscriptionTab key={subscriptionTabKey} mandateId={selectedMandateId} />
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{adminTab === 'transactions' && (
|
{adminTab === 'transactions' && (
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue