Introduce "useAppTitle" hook

This commit is contained in:
schroda
2025-05-03 13:00:03 +02:00
parent 76cd9fd309
commit 3ab70c4802
28 changed files with 134 additions and 111 deletions

View File

@@ -0,0 +1,37 @@
/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
import { useLayoutEffect } from 'react';
import { useNavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx';
import { NavbarContextType } from '@/modules/navigation-bar/NavigationBar.types.ts';
export function useAppTitle(
title: NavbarContextType['title'],
browserTitleOrDependencies: string,
dependencies?: any[],
): void;
export function useAppTitle(title: NavbarContextType['title'], browserTitleOrDependencies?: any[]): void;
export function useAppTitle(
title: NavbarContextType['title'],
browserTitleOrDependencies?: string | any[],
dependencies: any[] = [title, browserTitleOrDependencies],
): void {
const { setTitle } = useNavBarContext();
useLayoutEffect(() => {
if (typeof browserTitleOrDependencies === 'string') {
setTitle(title, browserTitleOrDependencies);
} else {
setTitle(title);
}
return () => {
setTitle('');
};
}, dependencies);
}