@@ -5,16 +5,28 @@ import AnimatedRoutes from './components/AnimatedRoutes';
55import { ToastProvider } from './context/ToastContext' ;
66import ScrollToTop from './components/ScrollToTop' ;
77import ContactModal from './components/ContactModal' ;
8+ import GenericModal from './components/GenericModal' ;
89import { AnimationProvider } from './context/AnimationContext' ; // Import AnimationProvider
910
1011function App ( ) {
1112 const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
1213 const [ isSearchVisible , setIsSearchVisible ] = useState ( false ) ;
14+ const [ isGenericModalOpen , setIsGenericModalOpen ] = useState ( false ) ;
15+ const [ genericModalContent , setGenericModalContent ] = useState ( { title : '' , content : null } ) ;
1316
1417 const toggleModal = ( ) => {
1518 setIsModalOpen ( ! isModalOpen ) ;
1619 } ;
1720
21+ const openGenericModal = ( title , content ) => {
22+ setGenericModalContent ( { title, content } ) ;
23+ setIsGenericModalOpen ( true ) ;
24+ } ;
25+
26+ const closeGenericModal = ( ) => {
27+ setIsGenericModalOpen ( false ) ;
28+ } ;
29+
1830 const toggleSearch = ( ) => {
1931 setIsSearchVisible ( ! isSearchVisible ) ;
2032 window . scrollTo ( { top : 0 , behavior : 'smooth' } ) ; // Scroll to top
@@ -31,10 +43,18 @@ function App() {
3143 toggleModal = { toggleModal }
3244 isSearchVisible = { isSearchVisible }
3345 toggleSearch = { toggleSearch }
46+ openGenericModal = { openGenericModal }
3447 >
3548 < AnimatedRoutes />
3649 </ Layout >
3750 < ContactModal isOpen = { isModalOpen } onClose = { toggleModal } />
51+ < GenericModal
52+ isOpen = { isGenericModalOpen }
53+ onClose = { closeGenericModal }
54+ title = { genericModalContent . title }
55+ >
56+ { genericModalContent . content }
57+ </ GenericModal >
3858 </ ToastProvider >
3959 </ Router >
4060 </ AnimationProvider >
0 commit comments