/**
 * Onglet actif transmis d'une page a l'autre via l'etat d'historique
 * (`history.state`), SANS le mettre dans l'URL. Sert a preserver l'onglet courant
 * au passage consultation <-> edition d'un client (dans les deux sens).
 *
 * On reste donc fidele a la regle « etat d'UI local, pas dans l'URL » : l'onglet
 * voyage dans l'entree d'historique de la navigation, l'URL ne change pas.
 */

/**
 * Lit la cle d'onglet posee par la page precedente (`history.state.tab`) si elle
 * fait partie des onglets valides pour l'utilisateur. Retourne `null` sinon :
 * navigation directe / deep link, rechargement de page, ou onglet inexistant
 * pour ce role (ex: Comptabilite sans la permission).
 */
export function readHistoryTab(validKeys: string[]): string | null {
    if (typeof window === 'undefined') {
        return null
    }
    const tab = (window.history.state as Record<string, unknown> | null)?.tab
    return typeof tab === 'string' && validKeys.includes(tab) ? tab : null
}
