mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
- 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.
42 lines
1.1 KiB
TypeScript
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>;
|
|
};
|