import { useTheme } from "@xtablo/shared/contexts/ThemeContext";
import { Button } from "@xtablo/ui/components/button";
import { MonitorIcon, MoonIcon, SunIcon } from "lucide-react";
import { Link } from "react-router-dom";

export function LegalNoticePage() {
  const { theme, setTheme } = useTheme();

  const toggleTheme = () => {
    if (theme === "light") {
      setTheme("dark");
    } else if (theme === "dark") {
      setTheme("system");
    } else {
      setTheme("light");
    }
  };

  const getThemeIcon = () => {
    switch (theme) {
      case "light":
        return <SunIcon className="w-5 h-5" />;
      case "dark":
        return <MoonIcon className="w-5 h-5" />;
      case "system":
        return <MonitorIcon className="w-5 h-5" />;
      default:
        return <SunIcon className="w-5 h-5" />;
    }
  };

  return (
    <div className="min-h-screen bg-background">
      <div className="container mx-auto px-4 py-8 max-w-4xl">
        {/* Header */}
        <div className="mb-8 flex items-center justify-between">
          <Link
            to="/"
            className="inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors"
          >
            <svg className="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
              <path
                strokeLinecap="round"
                strokeLinejoin="round"
                strokeWidth={2}
                d="M15 19l-7-7 7-7"
              />
            </svg>
            Retour
          </Link>

          <Button
            variant="ghost"
            size="icon"
            onClick={toggleTheme}
            className="text-muted-foreground hover:text-foreground p-2"
            aria-label="Changer le thème"
          >
            {getThemeIcon()}
          </Button>
        </div>

        {/* Content */}
        <div className="bg-card rounded-lg border border-border p-8 shadow-sm">
          <h1 className="text-4xl font-bold text-foreground mb-8">Mentions légales</h1>

          <div className="prose prose-slate dark:prose-invert max-w-none space-y-6">
            {/* Éditeur du site */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">Éditeur du site</h2>
              <div className="text-muted-foreground space-y-2">
                <p>
                  <strong className="text-foreground">Nom de l'entreprise :</strong> Xtablo
                </p>
                <p>
                  <strong className="text-foreground">Forme juridique :</strong> Société par actions
                  simplifiée (SAS)
                </p>
                <p>
                  <strong className="text-foreground">Siège social :</strong> France
                </p>
                <p>
                  <strong className="text-foreground">Email :</strong>{" "}
                  <a href="mailto:support@xtablo.com" className="text-primary hover:underline">
                    support@xtablo.com
                  </a>
                </p>
                <p>
                  <strong className="text-foreground">Site web :</strong>{" "}
                  <a
                    href="https://www.xtablo.com"
                    target="_blank"
                    rel="noopener noreferrer"
                    className="text-primary hover:underline"
                  >
                    https://www.xtablo.com
                  </a>
                </p>
              </div>
            </section>

            {/* Directeur de la publication */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">
                Directeur de la publication
              </h2>
              <p className="text-muted-foreground">
                Le directeur de la publication du site est le représentant légal de la société
                Xtablo.
              </p>
            </section>

            {/* Hébergement */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">Hébergement</h2>
              <div className="text-muted-foreground space-y-2">
                <p>
                  <strong className="text-foreground">Hébergeur :</strong> Cloudflare, Inc.
                </p>
                <p>
                  <strong className="text-foreground">Adresse :</strong> 101 Townsend St, San
                  Francisco, CA 94107, États-Unis
                </p>
                <p>
                  <strong className="text-foreground">Site web :</strong>{" "}
                  <a
                    href="https://www.cloudflare.com"
                    target="_blank"
                    rel="noopener noreferrer"
                    className="text-primary hover:underline"
                  >
                    https://www.cloudflare.com
                  </a>
                </p>
              </div>
            </section>

            {/* Propriété intellectuelle */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">
                Propriété intellectuelle
              </h2>
              <p className="text-muted-foreground mb-3">
                L'ensemble des contenus présents sur ce site, incluant, de façon non limitative, les
                graphismes, images, textes, vidéos, animations, sons, logos, icônes ainsi que leur
                mise en forme sont la propriété exclusive de Xtablo à l'exception des marques, logos
                ou contenus appartenant à d'autres sociétés partenaires ou auteurs.
              </p>
              <p className="text-muted-foreground">
                Toute reproduction, distribution, modification, adaptation, retransmission ou
                publication, même partielle, de ces différents éléments est strictement interdite
                sans l'accord exprès par écrit de Xtablo. Cette représentation ou reproduction, par
                quelque procédé que ce soit, constitue une contrefaçon sanctionnée par les articles
                L.335-2 et suivants du Code de la propriété intellectuelle.
              </p>
            </section>

            {/* Responsabilité */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">Responsabilité</h2>
              <p className="text-muted-foreground mb-3">
                Les informations fournies sur ce site le sont à titre informatif. Xtablo s'efforce
                d'assurer l'exactitude et la mise à jour des informations diffusées sur ce site,
                dont elle se réserve le droit de corriger, à tout moment et sans préavis, le
                contenu.
              </p>
              <p className="text-muted-foreground mb-3">
                Toutefois, Xtablo ne peut garantir l'exactitude, la précision ou l'exhaustivité des
                informations mises à disposition sur ce site. En conséquence, Xtablo décline toute
                responsabilité pour toute imprécision, inexactitude ou omission portant sur des
                informations disponibles sur ce site.
              </p>
              <p className="text-muted-foreground">
                Xtablo ne pourra être tenu responsable des dommages directs et indirects causés au
                matériel de l'utilisateur, lors de l'accès au site, et résultant soit de
                l'utilisation d'un matériel ne répondant pas aux spécifications indiquées, soit de
                l'apparition d'un bug ou d'une incompatibilité.
              </p>
            </section>

            {/* Liens hypertextes */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">Liens hypertextes</h2>
              <p className="text-muted-foreground mb-3">
                Le site peut contenir des liens hypertextes vers d'autres sites présents sur le
                réseau Internet. Les liens vers ces autres ressources vous font quitter le site. Il
                est possible de créer un lien vers la page de présentation de ce site sans
                autorisation expresse de Xtablo.
              </p>
              <p className="text-muted-foreground">
                Aucune autorisation ou demande d'information préalable ne peut être exigée par
                l'éditeur à l'égard d'un site qui souhaite établir un lien vers le site de
                l'éditeur. Il convient toutefois d'afficher ce site dans une nouvelle fenêtre du
                navigateur. Cependant, Xtablo se réserve le droit de demander la suppression d'un
                lien qu'il estime non conforme à l'objet du site.
              </p>
            </section>

            {/* Données personnelles */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">Données personnelles</h2>
              <p className="text-muted-foreground mb-3">
                Xtablo s'engage à ce que la collecte et le traitement de vos données, effectués à
                partir du site www.xtablo.com, soient conformes au règlement général sur la
                protection des données (RGPD) et à la loi Informatique et Libertés.
              </p>
              <p className="text-muted-foreground">
                Pour en savoir plus sur la gestion de vos données personnelles et pour exercer vos
                droits, reportez-vous à notre{" "}
                <Link to="/privacy-policy" className="text-primary hover:underline">
                  Politique de confidentialité
                </Link>
                .
              </p>
            </section>

            {/* Cookies */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">Cookies</h2>
              <p className="text-muted-foreground mb-3">
                Le site peut être amené à vous demander l'acceptation des cookies pour des besoins
                de statistiques et d'affichage. Un cookie est une information déposée sur votre
                disque dur par le serveur du site que vous visitez.
              </p>
              <p className="text-muted-foreground">
                Il contient plusieurs données qui sont stockées sur votre ordinateur dans un simple
                fichier texte auquel un serveur accède pour lire et enregistrer des informations.
                Certaines parties de ce site ne peuvent être fonctionnelles sans l'acceptation de
                cookies.
              </p>
            </section>

            {/* Droit applicable */}
            <section>
              <h2 className="text-2xl font-semibold text-foreground mb-4">
                Droit applicable et juridiction compétente
              </h2>
              <p className="text-muted-foreground">
                Les présentes mentions légales sont régies par le droit français. En cas de litige
                et à défaut d'accord amiable, le litige sera porté devant les tribunaux français
                conformément aux règles de compétence en vigueur.
              </p>
            </section>

            {/* Date de mise à jour */}
            <section className="pt-6 border-t border-border">
              <p className="text-sm text-muted-foreground italic">
                Dernière mise à jour :{" "}
                {new Date().toLocaleDateString("fr-FR", {
                  year: "numeric",
                  month: "long",
                  day: "numeric",
                })}
              </p>
            </section>
          </div>
        </div>
      </div>
    </div>
  );
}
