// Gestionnaire d'onglets pour les cartes NFC
export function openOrFocusCard(slug: string) {
  const url = `${window.location.origin}/card/${slug}`

  // Vérifier si un onglet est déjà ouvert
  const isTabOpen = localStorage.getItem('nfc-active-tab') === 'true'

  if (isTabOpen) {
    // Si un onglet est déjà ouvert, on envoie un message pour le rafraîchir
    const channel = new BroadcastChannel('nfc-channel')
    channel.postMessage({
      type: 'nfc-focus',
      slug: slug,
      timestamp: Date.now()
    })

    // On se concentre sur l'onglet existant
    window.focus()

    // On ferme le canal après un court délai
    setTimeout(() => channel.close(), 1000)

    // On empêche l'ouverture d'un nouvel onglet
    return false
  }

  // Aucun onglet ouvert, on en ouvre un nouveau
  window.open(url, '_blank')
  return true
}

// Fonction pour formater l'URL à utiliser dans la carte NFC
export function getNfcCardUrl(slug: string): string {
  return `javascript:(function(){
    const url = '${window.location.origin}/card/${slug}';
    const isTabOpen = localStorage.getItem('nfc-active-tab') === 'true';
    
    if (isTabOpen) {
      const channel = new BroadcastChannel('nfc-channel');
      channel.postMessage({ 
        type: 'nfc-focus',
        slug: '${slug}',
        timestamp: Date.now()
      });
      setTimeout(() => channel.close(), 1000);
      window.focus();
      window.location.href = url;
    } else {
      window.open(url, '_blank');
    }
  })();`
}
