// 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. For the prototype we just hold the customer id. import type { CustomerOrg } from '~/data/customers' 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, setCustomer: (c: CustomerOrg | null) => { activeCustomerId.value = c?.id ?? null }, } }