feat: ajouter des sections de contact sur plusieurs pages et mettre à jour les informations de contact

This commit is contained in:
Puechberty Arthur
2026-04-01 21:16:46 +02:00
parent f63eeb2e84
commit 8dc530afb8
6 changed files with 115 additions and 64 deletions
+25
View File
@@ -0,0 +1,25 @@
Copyright (c) 2026 Arthur
Licence pour tous les projets Arthur
1. Définition
Cette licence définit les droits et obligations concernant l'utilisation, la modification et la redistribution du code fourni par l'auteur.
2. Autorisation d'utilisation
Vous êtes libre d'utiliser ce code pour vos projets personnels ou commerciaux. L'utilisation doit inclure une mention de l'auteur dune manière libre (ex: "inspiré de ArthurP").
3. Modification
Vous pouvez modifier, adapter ou améliorer le code pour vos besoins. Les modifications doivent être identifiées comme telles et ne doivent pas être présentées comme l'original.
4. Redistribution
- Le code original **ne peut pas être redistribué tel quel**.
- Les versions modifiées peuvent être partagées, sous réserve de mentionner l'auteur original.
5. Usage commercial
Lusage commercial des versions modifiées est autorisé. Vous pouvez générer des revenus avec votre version modifiée.
6. Attribution
L'auteur original doit être cité dune manière libre, mais visible, sur tout projet utilisant ce code ou ses dérivés.
7. Responsabilité
Le code est fourni "tel quel", sans garantie daucune sorte. Lauteur décline toute responsabilité pour tout dommage direct ou indirect résultant de lutilisation du code.
+4
View File
@@ -14,6 +14,10 @@ export default function CguPage() {
<h2 className="text-lg font-semibold text-slate-900 dark:text-white">Responsabilite</h2>
<p>ArthurP ne peut etre tenu responsable des dommages indirects lies a l&apos;usage des services.</p>
</section>
<section className="space-y-2">
<h2 className="text-lg font-semibold text-slate-900 dark:text-white">Contact</h2>
<p>Pour toute demande relative aux CGU: contact.arthurp.fr ou contact@arthurp.fr.</p>
</section>
</main>
);
}
+67 -50
View File
@@ -351,13 +351,13 @@ export default function ContactPageClient() {
<a
className="group rounded-2xl border border-slate-200 bg-white p-4 transition hover:border-cyan-300 hover:shadow-md dark:border-slate-800 dark:bg-slate-950/50"
href="https://discord.gg/NbMWHh54bp"
href="https://contact.arthurp.fr"
target="_blank"
rel="noopener noreferrer"
>
<MessageCircle className="mb-2 h-5 w-5 text-slate-700 group-hover:text-cyan-600 dark:text-slate-200 dark:group-hover:text-cyan-300" />
<p className="font-medium text-slate-900 dark:text-white">Discord</p>
<p className="text-slate-600 dark:text-slate-400">Discussion rapide</p>
<p className="font-medium text-slate-900 dark:text-white">contact.arthurp.fr</p>
<p className="text-slate-600 dark:text-slate-400">Canal de contact principal</p>
</a>
</div>
</section>
@@ -380,28 +380,76 @@ export default function ContactPageClient() {
</section>
</div>
<footer className="animate-fade-in w-full border-y border-slate-200 bg-white/90 text-sm text-slate-700 shadow-lg shadow-slate-900/5 dark:border-slate-800 dark:bg-slate-900/70 dark:text-slate-300">
<div className="mx-auto w-full max-w-6xl p-6 sm:p-8">
<div className="grid gap-6 sm:grid-cols-2">
<div>
<p className="text-lg font-semibold text-slate-900 dark:text-white">ArthurP</p>
<p>Developpeur web & homelab</p>
<p className="mt-3 text-xs text-slate-500 dark:text-slate-400">
Fait avec et auto-heberge sur Proxmox
</p>
<footer className="animate-fade-in w-full border-y border-slate-200 bg-linear-to-b from-white/95 to-slate-50 text-sm text-slate-700 shadow-lg shadow-slate-900/5 dark:border-slate-800 dark:from-slate-900/80 dark:to-slate-950 dark:text-slate-300">
<div className="mx-auto w-full max-w-6xl px-6 py-10 sm:px-8 sm:py-12">
<div className="rounded-3xl border border-slate-200 bg-white/80 p-5 shadow-sm dark:border-slate-800 dark:bg-slate-900/70 sm:p-6">
<p className="text-base font-semibold text-slate-900 dark:text-white">ArthurP</p>
<p className="mt-1 text-slate-600 dark:text-slate-400">Contact rapide et support projets via le hub de contact.</p>
<div className="mt-4 flex flex-wrap gap-3">
<a
className="inline-flex items-center rounded-xl border border-slate-200 bg-white px-3 py-2 text-xs font-medium text-slate-700 transition hover:border-cyan-300 hover:text-cyan-700 dark:border-slate-700 dark:bg-slate-950/50 dark:text-slate-200 dark:hover:border-cyan-500 dark:hover:text-cyan-300"
href="https://contact.arthurp.fr"
target="_blank"
rel="noopener noreferrer"
>
contact.arthurp.fr
</a>
<a
className="inline-flex items-center rounded-xl border border-slate-200 bg-white px-3 py-2 text-xs font-medium text-slate-700 transition hover:border-cyan-300 hover:text-cyan-700 dark:border-slate-700 dark:bg-slate-950/50 dark:text-slate-200 dark:hover:border-cyan-500 dark:hover:text-cyan-300"
href="mailto:contact@arthurp.fr"
>
contact@arthurp.fr
</a>
</div>
<div className="grid gap-10 sm:grid-cols-[minmax(180px,0.75fr)_minmax(0,1.25fr)]">
</div>
<div className="mt-8 grid gap-8 md:grid-cols-[minmax(0,0.8fr)_minmax(0,1fr)_minmax(0,1fr)]">
<div>
<p className="mb-2 font-semibold text-slate-900 dark:text-white">Navigation</p>
<ul className="space-y-1">
<p className="text-lg font-semibold text-slate-900 dark:text-white">Navigation</p>
<ul className="mt-3 space-y-2">
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="https://arthurp.fr" target="_blank" rel="noopener noreferrer">Accueil</a></li>
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="https://portfolio.arthurp.fr" target="_blank" rel="noopener noreferrer">Projets</a></li>
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="mailto:contact@arthurp.fr">Contact</a></li>
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="https://contact.arthurp.fr" target="_blank" rel="noopener noreferrer">Contact</a></li>
</ul>
</div>
<div>
<p className="mb-2 font-semibold text-slate-900 dark:text-white">Sites</p>
<ul className="grid grid-cols-1 gap-x-8 gap-y-2 sm:grid-cols-2">
<p className="text-lg font-semibold text-slate-900 dark:text-white">Liens</p>
<ul className="mt-3 space-y-2">
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="https://arthurp.fr" target="_blank" rel="noopener noreferrer">arthurp.fr</a></li>
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="https://github.com/arthur-pbty" target="_blank" rel="noopener noreferrer">GitHub</a></li>
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="mailto:contact@arthurp.fr">contact@arthurp.fr</a></li>
<li><a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="https://contact.arthurp.fr" target="_blank" rel="noopener noreferrer">contact.arthurp.fr</a></li>
</ul>
</div>
<div>
<p className="text-lg font-semibold text-slate-900 dark:text-white">Legal</p>
<ul className="mt-3 space-y-2">
<li><Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/mentions-legales">Mentions legales</Link></li>
<li><Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/politique-confidentialite">Politique de confidentialite</Link></li>
<li><Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/cgu">CGU</Link></li>
<li><Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/cookies">Cookies</Link></li>
<li><Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/admin">Admin</Link></li>
</ul>
</div>
</div>
<div className="mt-8 border-t border-slate-200 pt-5 text-xs text-slate-500 dark:border-slate-800 dark:text-slate-400">
<p>© 2026 Arthur P. Tous droits reserves.</p>
<p className="mt-1">Fait avec et auto-heberge sur Proxmox.</p>
</div>
<div className="mt-6 flex flex-wrap gap-2 text-xs text-slate-500 dark:text-slate-400">
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Docker</span>
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Proxmox</span>
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Next.js</span>
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Node.js</span>
</div>
<details className="mt-6 rounded-2xl border border-slate-200 bg-white/80 p-4 dark:border-slate-800 dark:bg-slate-900/60">
<summary className="cursor-pointer text-sm font-medium text-slate-900 dark:text-white">Afficher les autres sites ArthurP</summary>
<ul className="mt-4 grid grid-cols-1 gap-x-8 gap-y-2 sm:grid-cols-2">
{footerSites.map((site) => (
<li key={site.domain}>
<a
@@ -415,38 +463,7 @@ export default function ContactPageClient() {
</li>
))}
</ul>
</div>
</div>
</div>
<div className="mt-6 flex flex-wrap gap-2 text-xs text-slate-500 dark:text-slate-400">
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Docker</span>
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Proxmox</span>
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Next.js</span>
<span className="rounded-full border border-slate-200 px-2 py-1 dark:border-slate-700">Node.js</span>
</div>
<div className="mt-4 flex flex-wrap items-center gap-4 text-xs">
<a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="https://github.com/arthur-pbty" target="_blank" rel="noopener noreferrer">
GitHub
</a>
<a className="hover:text-cyan-600 dark:hover:text-cyan-300" href="mailto:contact@arthurp.fr">
Email
</a>
<Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/mentions-legales">
Mentions legales
</Link>
<Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/politique-confidentialite">
Confidentialite
</Link>
<Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/cgu">
CGU
</Link>
<Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/cookies">
Cookies
</Link>
<Link className="hover:text-cyan-600 dark:hover:text-cyan-300" href="/admin">
Admin
</Link>
</div>
</details>
</div>
</footer>
</div>
+4
View File
@@ -10,6 +10,10 @@ export default function CookiesPage() {
<h2 className="text-lg font-semibold text-slate-900 dark:text-white">Session admin</h2>
<p>Le cookie admin est HttpOnly, SameSite=Lax et expire automatiquement.</p>
</section>
<section className="space-y-2">
<h2 className="text-lg font-semibold text-slate-900 dark:text-white">Contact</h2>
<p>Pour toute question sur les cookies: contact.arthurp.fr ou contact@arthurp.fr.</p>
</section>
</main>
);
}
+2 -1
View File
@@ -5,6 +5,7 @@ export default function MentionsLegalesPage() {
<section className="space-y-2">
<h2 className="text-lg font-semibold text-slate-900 dark:text-white">Editeur</h2>
<p>ArthurP - Developpeur web & homelab</p>
<p>Site de contact: contact.arthurp.fr</p>
<p>Email: contact@arthurp.fr</p>
</section>
<section className="space-y-2">
@@ -17,7 +18,7 @@ export default function MentionsLegalesPage() {
</section>
<section className="space-y-2">
<h2 className="text-lg font-semibold text-slate-900 dark:text-white">Contact</h2>
<p>Pour toute question legale: contact@arthurp.fr</p>
<p>Pour toute question legale: contact.arthurp.fr ou contact@arthurp.fr</p>
</section>
</main>
);
+1 -1
View File
@@ -19,7 +19,7 @@ export default function PolitiqueConfidentialitePage() {
</section>
<section className="space-y-2">
<h2 className="text-lg font-semibold text-slate-900 dark:text-white">Droits</h2>
<p>Vous pouvez demander acces, rectification ou suppression via contact@arthurp.fr.</p>
<p>Vous pouvez demander acces, rectification ou suppression via contact.arthurp.fr ou contact@arthurp.fr.</p>
</section>
</main>
);