import { ReactNode, useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; import { NavigationContext } from '@/contexts/NavigationContext.tsx'; import { organizationSchema } from '@/schemas/organization.ts'; import { Organization } from '@/types.ts'; export const NavigationProvider = ({ children }: { children?: ReactNode }) => { const navigate = useNavigate(); const viewOrganization = useCallback( (org: Organization) => { const parsedOrg = organizationSchema.parse(org); navigate(`/organization/${parsedOrg.ID}`); window.scrollTo(0, 0); }, [navigate] ); const handleBackNavigation = useCallback(() => { navigate(-1); }, [navigate]); const handleFooterNavigate = useCallback( (path: string) => { navigate(path); window.scrollTo(0, 0); }, [navigate] ); const value = useMemo( () => ({ viewOrganization, handleBackNavigation, handleFooterNavigate, }), [viewOrganization, handleBackNavigation, handleFooterNavigate] ); return {children}; };