spacedrive/interface/RoutingContext.tsx
Brendan Allan 74d97d4957
[ENG-1592] Correctly assign tab titles on desktop (#2030)
* correctly set tab titles

* use selectedTabIndex

* empty tabId

* prettier
2024-02-01 15:40:38 +00:00

31 lines
851 B
TypeScript

import { type Router } from '@remix-run/router';
import { createContext, useContext } from 'react';
import { createRoutes } from './app';
export const RoutingContext = createContext<{
visible: boolean;
currentIndex: number;
tabId: string;
maxIndex: number;
routes: ReturnType<typeof createRoutes>;
} | null>(null);
// We split this into a different context because we don't want to trigger the hook unnecessarily
export const RouterContext = createContext<Router | null>(null);
export function useRoutingContext() {
const ctx = useContext(RoutingContext);
if (!ctx) throw new Error('useRoutingContext must be used within a RoutingContext.Provider');
return ctx;
}
export function useRouter() {
const ctx = useContext(RouterContext);
if (!ctx) throw new Error('useRouter must be used within a RouterContext.Provider');
return ctx;
}