fixed reloads

This commit is contained in:
ValueOn AG 2026-03-31 00:06:33 +02:00
parent 71bf6baae5
commit 624797246e
2 changed files with 8 additions and 5 deletions

View file

@ -42,10 +42,11 @@ export function useSubscription(mandateId?: string): UseSubscriptionReturn {
const [plan, setPlan] = useState<SubscriptionPlan | null>(null);
const [scheduled, setScheduled] = useState<MandateSubscription | null>(null);
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 loadPlans = useCallback(async () => {
clearCache('/api/subscription/plans', 'get');
try {
const data = await fetchSelectablePlans(request, mandateId);
setPlans(Array.isArray(data) ? data : []);
@ -53,9 +54,10 @@ export function useSubscription(mandateId?: string): UseSubscriptionReturn {
console.error('Error loading plans:', err);
setPlans([]);
}
}, [request, mandateId]);
}, [request, mandateId, clearCache]);
const loadStatus = useCallback(async () => {
clearCache('/api/subscription/status', 'get');
try {
const data: SubscriptionStatusResponse = await fetchSubscriptionStatus(request, mandateId);
setActive(data.active);
@ -69,7 +71,7 @@ export function useSubscription(mandateId?: string): UseSubscriptionReturn {
setPlan(null);
setScheduled(null);
}
}, [request, mandateId]);
}, [request, mandateId, clearCache]);
const activatePlan = useCallback(async (planKey: string) => {
try {

View file

@ -605,6 +605,7 @@ export const BillingAdmin: React.FC = () => {
const [adminTab, setAdminTab] = useState<AdminTabType>(
['settings', 'credit', 'subscription', 'transactions'].includes(_initialAdminTab) ? _initialAdminTab : 'settings'
);
const [subscriptionTabKey, setSubscriptionTabKey] = useState(0);
useEffect(() => {
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')}>
Guthaben
</button>
<button onClick={() => setAdminTab('subscription')} style={_tabStyle(adminTab === 'subscription')}>
<button onClick={() => { setAdminTab('subscription'); setSubscriptionTabKey(k => k + 1); }} style={_tabStyle(adminTab === 'subscription')}>
Abonnement
</button>
<button onClick={() => setAdminTab('transactions')} style={_tabStyle(adminTab === 'transactions')}>
@ -769,7 +770,7 @@ export const BillingAdmin: React.FC = () => {
)}
{adminTab === 'subscription' && (
<SubscriptionTab mandateId={selectedMandateId} />
<SubscriptionTab key={subscriptionTabKey} mandateId={selectedMandateId} />
)}
{adminTab === 'transactions' && (