bucket + card sharer
All checks were successful
Deploy App / build (push) Successful in 1m57s
Deploy App / deploy (push) Successful in 16s

This commit is contained in:
valere
2025-12-26 19:27:33 +01:00
parent d8fe645e5c
commit afb20fe75f
26 changed files with 1248 additions and 749 deletions

52
app/plugins/body-class.ts Normal file
View File

@@ -0,0 +1,52 @@
import { defineNuxtPlugin } from '#app'
import { useHead } from '#imports'
export default defineNuxtPlugin((nuxtApp) => {
// Fonction pour ajouter une classe au body
const addBodyClass = (className: string) => {
if (process.client) {
document.body.classList.add(className)
} else {
// Pour le SSR, on utilise useHead
useHead({
bodyAttrs: {
class: className
}
})
}
}
// Fonction pour supprimer une classe du body
const removeBodyClass = (className: string) => {
if (process.client) {
document.body.classList.remove(className)
}
// Pas besoin de gérer la suppression côté SSR
}
// Fonction pour vérifier si une classe est présente
const hasBodyClass = (className: string) => {
if (process.client) {
return document.body.classList.contains(className)
}
return false
}
// Exposition des méthodes via le plugin
return {
provide: {
bodyClass: {
add: addBodyClass,
remove: removeBodyClass,
has: hasBodyClass,
toggle: (className: string) => {
if (hasBodyClass(className)) {
removeBodyClass(className)
} else {
addBodyClass(className)
}
}
}
}
}
})