chahinebrini f6852be760 fix(native): useUserPlan derive from useMe (was a stale module cache)
useUserPlan had its own module-level cache + fetch-once-on-mount, separate
from useMe's invalidateMe(). So the __DEV__ tier-override toggle (which calls
invalidateMe()) never reached useUserPlan consumers → the app didn't react to
a plan switch. Now useUserPlan just reads me.plan from useMe → inherits its
live-invalidation, the toggle propagates everywhere.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 15:18:59 +02:00

19 lines
720 B
TypeScript

import { useMe } from "./useMe";
import type { Plan } from "./useMe";
export type { Plan };
/**
* Plan des eingeloggten Users — abgeleitet aus useMe() (single source of truth,
* inkl. Live-Invalidierung via invalidateMe()).
*
* Vorher hatte useUserPlan einen eigenen Modul-Cache + fetch-once-on-mount —
* das war ein Bug: der __DEV__-Tier-Toggle (ruft invalidateMe() auf) erreichte
* die useUserPlan-Consumer NICHT, also reagierte die App nicht auf den Plan-Wechsel.
* Jetzt erbt useUserPlan die Invalidierung von useMe → Toggle propagiert überall.
*/
export function useUserPlan(): { plan: Plan; loading: boolean } {
const { me, loading } = useMe();
return { plan: me?.plan ?? "free", loading };
}