turash/bugulma/frontend/providers/NavigationProvider.tsx
Damir Mukimov 6347f42e20
Consolidate repositories: Remove nested frontend .git and merge into main repository
- Remove nested git repository from bugulma/frontend/.git
- Add all frontend files to main repository tracking
- Convert from separate frontend/backend repos to unified monorepo
- Preserve all frontend code and development history as tracked files
- Eliminate nested repository complexity for simpler development workflow

This creates a proper monorepo structure with frontend and backend
coexisting in the same repository for easier development and deployment.
2025-11-25 06:02:57 +01:00

42 lines
1.1 KiB
TypeScript

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 <NavigationContext.Provider value={value}>{children}</NavigationContext.Provider>;
};