/* * 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 React, { useContext, useEffect } from 'react'; type ContextType = { // Default back button url defaultBackTo: string | undefined; setDefaultBackTo: React.Dispatch>; // AppBar title title: string; setTitle: (title: string) => void; // AppBar action buttons action: any; setAction: React.Dispatch>; // Allow default navbar to be overrided override: INavbarOverride; setOverride: React.Dispatch>; }; const NavBarContext = React.createContext({ defaultBackTo: undefined, setDefaultBackTo: (): void => {}, title: 'Tachidesk', setTitle: (): void => {}, action:
, setAction: (): void => {}, override: { status: false, value:
}, setOverride: (): void => {}, }); export default NavBarContext; export const useNavBarContext = () => useContext(NavBarContext); export const useSetDefaultBackTo = (value: string) => { const { setDefaultBackTo } = useNavBarContext(); useEffect(() => { setDefaultBackTo(value); return () => setDefaultBackTo(undefined); }, [value]); };