+19
src/lib/navigation/router.tsx
+19
src/lib/navigation/router.tsx
···
5
5
type JSX,
6
6
type Owner,
7
7
createContext,
8
8
+
createEffect,
8
9
createMemo,
9
10
createRoot,
10
11
createSignal,
···
273
274
274
275
cb();
275
276
onCleanup(routerEvents.on(route.id, (e) => e.enter && cb()));
277
277
+
};
278
278
+
279
279
+
export const createFocusEffect = (cb: () => void) => {
280
280
+
const { route } = useViewContext();
281
281
+
const [active, setActive] = createSignal(true);
282
282
+
283
283
+
onCleanup(routerEvents.on(route.id, (e) => setActive(e.focus)));
284
284
+
createEffect(() => {
285
285
+
if (active()) {
286
286
+
cb();
287
287
+
}
288
288
+
});
289
289
+
};
290
290
+
291
291
+
export const useTitle = (cb: () => string) => {
292
292
+
createFocusEffect(() => {
293
293
+
document.title = cb();
294
294
+
});
276
295
};
277
296
278
297
export interface RouterViewProps {