* 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)
29 lines
696 B
TypeScript
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);
|