spacedrive/interface/hooks/useRouteTitle.ts
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

20 lines
581 B
TypeScript

import { createContext, useContext, useLayoutEffect } from 'react';
import { useRoutingContext } from '~/RoutingContext';
export function useRouteTitle(title: string) {
const routingCtx = useRoutingContext();
const ctx = useContext(RouteTitleContext);
// layout effect avoids 'New Tab' showing up briefly
useLayoutEffect(() => {
document.title = title;
if (ctx) ctx.setTitle(routingCtx.tabId, title);
}, [routingCtx.tabId, title, ctx]);
return title;
}
export const RouteTitleContext = createContext<{
setTitle: (id: string, title: string) => void;
} | null>(null);