From fa5036a7a5cce6e3d93f657a5c625c49062824bd Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Mon, 11 Dec 2023 22:07:35 -0500 Subject: [PATCH] Rework theme resolution --- .../demo/src/DevTools.tsx | 9 +++----- .../demo/src/DevTools.tsx | 8 +++---- .../src/DevtoolsInspector.tsx | 23 ++++++++++--------- .../src/index.ts | 2 +- .../src/utils/createStylingFromTheme.ts | 18 ++++++++++++++- 5 files changed, 36 insertions(+), 24 deletions(-) diff --git a/packages/redux-devtools-inspector-monitor-test-tab/demo/src/DevTools.tsx b/packages/redux-devtools-inspector-monitor-test-tab/demo/src/DevTools.tsx index 4866708b..8b68a2b6 100644 --- a/packages/redux-devtools-inspector-monitor-test-tab/demo/src/DevTools.tsx +++ b/packages/redux-devtools-inspector-monitor-test-tab/demo/src/DevTools.tsx @@ -1,10 +1,7 @@ import React from 'react'; import { createDevTools } from '@redux-devtools/core'; -import { - InspectorMonitor, - base16Themes, - Tab, -} from '@redux-devtools/inspector-monitor'; +import { InspectorMonitor, Tab } from '@redux-devtools/inspector-monitor'; +import type { Base16ThemeName } from '@redux-devtools/inspector-monitor'; import { DockMonitor } from '@redux-devtools/dock-monitor'; import { useLocation } from 'react-router-dom'; import getOptions from './getOptions'; @@ -20,7 +17,7 @@ export const getDevTools = (location: { search: string }) => changeMonitorKey="ctrl-m" > diff --git a/packages/redux-devtools-inspector-monitor/demo/src/DevTools.tsx b/packages/redux-devtools-inspector-monitor/demo/src/DevTools.tsx index 4cdd6079..38d248e8 100644 --- a/packages/redux-devtools-inspector-monitor/demo/src/DevTools.tsx +++ b/packages/redux-devtools-inspector-monitor/demo/src/DevTools.tsx @@ -1,10 +1,8 @@ import React from 'react'; import { createDevTools } from '@redux-devtools/core'; import { DockMonitor } from '@redux-devtools/dock-monitor'; -import { - InspectorMonitor, - base16Themes, -} from '@redux-devtools/inspector-monitor'; +import { InspectorMonitor } from '@redux-devtools/inspector-monitor'; +import type { Base16ThemeName } from '@redux-devtools/inspector-monitor'; import { useLocation } from 'react-router-dom'; import getOptions from './getOptions'; @@ -32,7 +30,7 @@ export const getDevTools = (location: { search: string }) => changeMonitorKey="ctrl-m" > [ diff --git a/packages/redux-devtools-inspector-monitor/src/DevtoolsInspector.tsx b/packages/redux-devtools-inspector-monitor/src/DevtoolsInspector.tsx index af3137a7..f2bdbcb3 100644 --- a/packages/redux-devtools-inspector-monitor/src/DevtoolsInspector.tsx +++ b/packages/redux-devtools-inspector-monitor/src/DevtoolsInspector.tsx @@ -1,6 +1,5 @@ import React, { PureComponent } from 'react'; import { Base16Theme } from 'redux-devtools-themes'; -import { getBase16Theme, invertBase16Theme } from 'react-base16-styling'; import { ActionCreators, LiftedAction, @@ -9,10 +8,11 @@ import { import { Action, Dispatch } from 'redux'; import { Delta, DiffContext } from 'jsondiffpatch'; import { - base16Themes, - colorMap, + Base16ThemeName, + createInspectorMonitorThemeFromBase16Theme, inspectorCss, inspectorWideCss, + resolveBase16Theme, } from './utils/createStylingFromTheme'; import ActionList from './ActionList'; import ActionPreview, { Tab } from './ActionPreview'; @@ -131,7 +131,7 @@ export interface ExternalProps> { preserveScrollTop?: boolean; draggableActions: boolean; select: (state: S) => unknown; - theme: keyof typeof base16Themes | Base16Theme; + theme: Base16ThemeName | Base16Theme; supportImmutable: boolean; diffObjectHash?: (item: unknown, index: number) => string; diffPropertyFilter?: (name: string, context: DiffContext) => boolean; @@ -148,7 +148,7 @@ interface DefaultProps { select: (state: unknown) => unknown; supportImmutable: boolean; draggableActions: boolean; - theme: keyof typeof base16Themes; + theme: Base16ThemeName; invertTheme: boolean; } @@ -160,7 +160,7 @@ export interface DevtoolsInspectorProps> preserveScrollTop?: boolean; draggableActions: boolean; select: (state: S) => unknown; - theme: keyof typeof base16Themes | Base16Theme; + theme: Base16ThemeName | Base16Theme; supportImmutable: boolean; diffObjectHash?: (item: unknown, index: number) => string; diffPropertyFilter?: (name: string, context: DiffContext) => boolean; @@ -273,12 +273,13 @@ class DevtoolsInspector> extends PureComponent< tabName === 'Action' ? 'inspectedActionPath' : 'inspectedStatePath'; const { isWideLayout, action, nextState, delta, error } = this.state; - const base16Theme = getBase16Theme(theme, base16Themes)!; - const finalBase16Theme = invertTheme - ? invertBase16Theme(base16Theme) - : base16Theme; + const base16Theme = resolveBase16Theme(theme)!; + const inspectorMonitorTheme = createInspectorMonitorThemeFromBase16Theme( + base16Theme, + invertTheme, + ); return ( - +