Sacha VAUDEY 545b7f9d91
Some checks failed
Build / build-check (pull_request) Failing after 1m46s
archi cleaning
2025-09-13 18:51:09 +02:00

34 lines
884 B
TypeScript

import { useState, useCallback } from 'react';
/**
* Hook personnalisé pour gérer l'état des accordéons
* Remplace la logique dans App.tsx et simplifie la gestion d'état
*/
export const useAccordion = (initialState: string | null = null) => {
const [openAccordion, setOpenAccordion] = useState<string | null>(initialState);
const toggleAccordion = useCallback((title: string) => {
setOpenAccordion(prev => prev === title ? null : title);
}, []);
const openSpecificAccordion = useCallback((title: string) => {
setOpenAccordion(title);
}, []);
const closeAccordion = useCallback(() => {
setOpenAccordion(null);
}, []);
const isOpen = useCallback((title: string) => {
return openAccordion === title;
}, [openAccordion]);
return {
openAccordion,
toggleAccordion,
openSpecificAccordion,
closeAccordion,
isOpen,
};
};