Start conversion

This commit is contained in:
Nathan Bierema 2023-12-10 23:29:18 -05:00
parent 5d6b5869be
commit 3890495587
2 changed files with 95 additions and 81 deletions

View File

@ -2,6 +2,7 @@ import React, { PureComponent } from 'react';
import { Base16Theme } from 'redux-devtools-themes'; import { Base16Theme } from 'redux-devtools-themes';
import { import {
getBase16Theme, getBase16Theme,
invertBase16Theme,
invertTheme, invertTheme,
StylingFunction, StylingFunction,
} from 'react-base16-styling'; } from 'react-base16-styling';
@ -15,6 +16,8 @@ import { Delta, DiffContext } from 'jsondiffpatch';
import { import {
createStylingFromTheme, createStylingFromTheme,
base16Themes, base16Themes,
inspectorCss,
inspectorWideCss,
} from './utils/createStylingFromTheme'; } from './utils/createStylingFromTheme';
import ActionList from './ActionList'; import ActionList from './ActionList';
import ActionPreview, { Tab } from './ActionPreview'; import ActionPreview, { Tab } from './ActionPreview';
@ -26,6 +29,7 @@ import {
reducer, reducer,
updateMonitorState, updateMonitorState,
} from './redux'; } from './redux';
import { ThemeProvider } from '@emotion/react';
const { const {
// eslint-disable-next-line @typescript-eslint/unbound-method // eslint-disable-next-line @typescript-eslint/unbound-method
@ -296,14 +300,14 @@ class DevtoolsInspector<S, A extends Action<string>> extends PureComponent<
const { base16Theme, styling } = themeState; const { base16Theme, styling } = themeState;
return ( return (
<ThemeProvider
theme={invertTheme ? invertBase16Theme(base16Theme) : base16Theme}
>
<div <div
key="inspector" key="inspector"
data-testid="inspector" data-testid="inspector"
ref={this.inspectorCreateRef} ref={this.inspectorCreateRef}
{...styling( css={[inspectorCss, isWideLayout && inspectorWideCss]}
['inspector', isWideLayout && 'inspectorWide'],
isWideLayout,
)}
> >
<ActionList <ActionList
{...{ {...{
@ -358,6 +362,7 @@ class DevtoolsInspector<S, A extends Action<string>> extends PureComponent<
onSelectTab={this.handleSelectTab} onSelectTab={this.handleSelectTab}
/> />
</div> </div>
</ThemeProvider>
); );
} }

View File

@ -1,6 +1,12 @@
import jss, { StyleSheet } from 'jss'; import jss, { StyleSheet } from 'jss';
import preset from 'jss-preset-default'; import preset from 'jss-preset-default';
import { createStyling, StylingFunction, Theme } from 'react-base16-styling'; import { css } from '@emotion/react';
import type { Interpolation, Theme } from '@emotion/react';
import {
createStyling,
StylingFunction,
Theme as Base16StylingTheme,
} from 'react-base16-styling';
import rgba from 'hex-rgba'; import rgba from 'hex-rgba';
import { Base16Theme } from 'redux-devtools-themes'; import { Base16Theme } from 'redux-devtools-themes';
import type { CurriedFunction1 } from 'lodash'; import type { CurriedFunction1 } from 'lodash';
@ -8,6 +14,11 @@ import inspector from '../themes/inspector';
import * as reduxThemes from 'redux-devtools-themes'; import * as reduxThemes from 'redux-devtools-themes';
import * as inspectorThemes from '../themes'; import * as inspectorThemes from '../themes';
declare module '@emotion/react' {
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface Theme extends Base16Theme {}
}
jss.setup(preset()); jss.setup(preset());
const colorMap = (theme: Base16Theme) => ({ const colorMap = (theme: Base16Theme) => ({
@ -41,25 +52,23 @@ type ColorMap = {
[color in Color]: string; [color in Color]: string;
}; };
const getSheetFromColorMap = (map: ColorMap) => ({ export const inspectorCss: Interpolation<Theme> = (theme) => ({
inspector: {
display: 'flex', display: 'flex',
'flex-direction': 'column', flexDirection: 'column',
width: '100%', width: '100%',
height: '100%', height: '100%',
'font-family': 'monaco, Consolas, "Lucida Console", monospace', fontFamily: 'monaco, Consolas, "Lucida Console", monospace',
'font-size': '12px', fontSize: '12px',
'font-smoothing': 'antialiased', WebkitFontSmoothing: 'antialiased',
'line-height': '1.5em', lineHeight: '1.5em',
'background-color': map.BACKGROUND_COLOR, backgroundColor: colorMap(theme).BACKGROUND_COLOR,
color: map.TEXT_COLOR, color: colorMap(theme).TEXT_COLOR,
}, });
inspectorWide: { export const inspectorWideCss = css({ flexDirection: 'column' });
'flex-direction': 'row',
},
const getSheetFromColorMap = (map: ColorMap) => ({
actionList: { actionList: {
'flex-basis': '40%', 'flex-basis': '40%',
'flex-shrink': 0, 'flex-shrink': 0,
@ -386,7 +395,7 @@ const getDefaultThemeStyling = (theme: Base16Theme) => {
export const base16Themes = { ...reduxThemes, ...inspectorThemes }; export const base16Themes = { ...reduxThemes, ...inspectorThemes };
export const createStylingFromTheme: CurriedFunction1< export const createStylingFromTheme: CurriedFunction1<
Theme | undefined, Base16StylingTheme | undefined,
StylingFunction StylingFunction
> = createStyling(getDefaultThemeStyling, { > = createStyling(getDefaultThemeStyling, {
defaultBase16: inspector, defaultBase16: inspector,