// Partner admin's "acting as a customer admin" state. When a partner clicks // into a customer org, the sidebar reshapes to that customer's admin nav and // a persistent banner indicates the partner context. // // In real use, every action while in this mode is logged with the partner's // identity (not the customer's) — the design spec is explicit about this for // trust. We hold the active customer's tenant _id (the same key the customers // page passes to enter()); consumers resolve it against the real tenant list. const activeCustomerId = ref(null) export const usePartnerMode = () => { function enter(customerId: string) { activeCustomerId.value = customerId if (import.meta.client) { sessionStorage.setItem('dezky-partner-active-customer', customerId) } } function exit() { activeCustomerId.value = null if (import.meta.client) { sessionStorage.removeItem('dezky-partner-active-customer') } } function hydrate() { if (!import.meta.client || activeCustomerId.value) return const stored = sessionStorage.getItem('dezky-partner-active-customer') if (stored) activeCustomerId.value = stored } return { activeCustomerId, isActive: computed(() => activeCustomerId.value !== null), enter, exit, hydrate, } }