ghost-portal/packages/react-hooks/src/useTheme.ts
Jaco 37f44367b4
Rework context usage (& move most to react-hooks) (#8731)
* Rework context usage (& move most to react-hooks)

* Move use{Accounts, Addresses} to use contexts

* Cleanups

* Global alignment renames

* Combine keyring subjects into KeyringCtx

* Cleanups to contexts

* Small adjustment to window size usage

* Popup test via data-testid

* Fix Bounties tests

* Move getStats to correct location

* Adjust ApiStats

* Do add unsubs (although unneeded)
2023-01-09 12:56:38 +02:00

29 lines
696 B
TypeScript

// Copyright 2017-2023 @polkadot/react-hooks authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { ThemeDef } from './ctx/types';
import { useContext, useMemo } from 'react';
import { ThemeContext } from 'styled-components';
import { createNamedHook } from './createNamedHook';
interface Theme {
theme: ThemeDef['theme'];
themeClassName: `theme--${ThemeDef['theme']}`;
}
function useThemeImpl (): Theme {
const { theme } = useContext(ThemeContext as React.Context<ThemeDef>);
return useMemo(
(): Theme => ({
theme,
themeClassName: `theme--${theme}`
}),
[theme]
);
}
export const useTheme = createNamedHook('useTheme', useThemeImpl);