fix(admin): drop cached environment data when switching context
A doctor who also owns a clinic runs two environments, and a subscription belongs to an environment, not to the user. The panel treated it as the user's: the subscription query was keyed ['subscription-my'] with no context, and switching environments never touched the react-query cache. So upgrading the clinic left the personal practice showing the clinic's plan with its feature-gated menu items unlocked, and vice versa. The query key now carries the active dbUuid, and the context switch clears the whole cache — every cached response belongs to the environment it was fetched in, not just this one. The API was already correct: DualEnvironmentSubscriptionTest pins that granting one environment leaves the other on free. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,10 +6,14 @@ import type { MySubscriptionData } from '../types';
|
||||
|
||||
export function useSubscription() {
|
||||
const primaryRole = useAuthStore((s) => s.primaryRole);
|
||||
const dbUuid = useAuthStore((s) => s.dbUuid);
|
||||
const enabled = primaryRole === 'doctor' || primaryRole === 'clinic' || primaryRole === 'secretary';
|
||||
|
||||
// کلید شامل محیط فعال است: اشتراک روی محیط مینشیند، نه روی کاربر. پزشکی که هم
|
||||
// مطب شخصی دارد و هم کلینیک، با کلیدِ بدون محیط پلنِ محیط قبلی را میدید و هر دو
|
||||
// محیط ارتقایافته بهنظر میرسیدند.
|
||||
const { data } = useQuery<ApiResponse<MySubscriptionData>>({
|
||||
queryKey: ['subscription-my'],
|
||||
queryKey: ['subscription-my', dbUuid],
|
||||
queryFn: () => api.get('/api/v1/subscription/my'),
|
||||
enabled,
|
||||
staleTime: 2 * 60 * 1000,
|
||||
|
||||
Reference in New Issue
Block a user