import { tokenStorage } from "./storage"

function decodeJwtPayload(token: string): any | null {
  try {
    const payload = token.split(".")[1]
    const json = atob(payload.replace(/-/g, "+").replace(/_/g, "/"))
    return JSON.parse(decodeURIComponent(escape(json)))
  } catch {
    return null
  }
}

export function hasValidAccessToken(): boolean {
  const access = tokenStorage.getAccess()
  if (!access) return false

  const payload = decodeJwtPayload(access)
  const exp = payload?.exp
  if (!exp) return false

  // exp est en secondes
  const now = Math.floor(Date.now() / 1000)
  return exp > now
}
