Sacha VAUDEY 57f5807876
Some checks failed
Build and Test / Classic Build (pull_request) Failing after 2m19s
Build and Test / Docker Build (pull_request) Has been skipped
optimize archi
2025-09-14 12:54:18 +02:00

34 lines
880 B
TypeScript

import { useState, useCallback } from 'react';
/**
* Hook personnalisé pour gérer l'état des accordéons
* Optimisé avec des callbacks memoized et une API simplifiée
*/
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,
};
};