mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2025-07-27 08:30:02 +03:00
Code updates
This commit is contained in:
parent
704674ca3f
commit
18e425b2cd
|
@ -13,7 +13,7 @@ import RawTab from './RawTab';
|
||||||
import ChartTab from './ChartTab';
|
import ChartTab from './ChartTab';
|
||||||
import VisualDiffTab from './VisualDiffTab';
|
import VisualDiffTab from './VisualDiffTab';
|
||||||
import { StoreState } from '../../../reducers';
|
import { StoreState } from '../../../reducers';
|
||||||
import { Delta } from 'jsondiffpatch';
|
import type { Delta } from 'jsondiffpatch';
|
||||||
|
|
||||||
type StateProps = ReturnType<typeof mapStateToProps>;
|
type StateProps = ReturnType<typeof mapStateToProps>;
|
||||||
type DispatchProps = ResolveThunks<typeof actionCreators>;
|
type DispatchProps = ResolveThunks<typeof actionCreators>;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import { Delta, formatters } from 'jsondiffpatch';
|
import type { Delta } from 'jsondiffpatch';
|
||||||
|
import * as htmlFormatter from 'jsondiffpatch/formatters/html';
|
||||||
import styled, { ThemedStyledProps } from 'styled-components';
|
import styled, { ThemedStyledProps } from 'styled-components';
|
||||||
import { effects, Theme } from '@redux-devtools/ui';
|
import { effects, Theme } from '@redux-devtools/ui';
|
||||||
|
|
||||||
|
@ -240,7 +241,7 @@ export default class VisualDiffTab extends Component<Props> {
|
||||||
let __html: string | undefined;
|
let __html: string | undefined;
|
||||||
const data = this.props.data;
|
const data = this.props.data;
|
||||||
if (data) {
|
if (data) {
|
||||||
__html = formatters.html.format(data, undefined);
|
__html = htmlFormatter.format(data, undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
return <StyledContainer dangerouslySetInnerHTML={{ __html: __html! }} />;
|
return <StyledContainer dangerouslySetInnerHTML={{ __html: __html! }} />;
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { Base16Theme } from 'redux-devtools-themes';
|
||||||
import { Action } from 'redux';
|
import { Action } from 'redux';
|
||||||
import type { LabelRenderer } from 'react-json-tree';
|
import type { LabelRenderer } from 'react-json-tree';
|
||||||
import { PerformAction } from '@redux-devtools/core';
|
import { PerformAction } from '@redux-devtools/core';
|
||||||
import { Delta } from 'jsondiffpatch';
|
import type { Delta } from 'jsondiffpatch';
|
||||||
import type { JSX } from '@emotion/react/jsx-runtime';
|
import type { JSX } from '@emotion/react/jsx-runtime';
|
||||||
import { DEFAULT_STATE, DevtoolsInspectorState } from './redux';
|
import { DEFAULT_STATE, DevtoolsInspectorState } from './redux';
|
||||||
import ActionPreviewHeader from './ActionPreviewHeader';
|
import ActionPreviewHeader from './ActionPreviewHeader';
|
||||||
|
|
|
@ -6,7 +6,7 @@ import {
|
||||||
LiftedState,
|
LiftedState,
|
||||||
} from '@redux-devtools/core';
|
} from '@redux-devtools/core';
|
||||||
import { Action, Dispatch } from 'redux';
|
import { Action, Dispatch } from 'redux';
|
||||||
import { Delta, DiffContext } from 'jsondiffpatch';
|
import type { Delta, DiffContext } from 'jsondiffpatch';
|
||||||
import {
|
import {
|
||||||
createInspectorMonitorThemeFromBase16Theme,
|
createInspectorMonitorThemeFromBase16Theme,
|
||||||
resolveBase16Theme,
|
resolveBase16Theme,
|
||||||
|
@ -154,7 +154,7 @@ export interface DevtoolsInspectorProps<S, A extends Action<string>>
|
||||||
select: (state: S) => unknown;
|
select: (state: S) => unknown;
|
||||||
theme: Base16ThemeName | Base16Theme;
|
theme: Base16ThemeName | Base16Theme;
|
||||||
supportImmutable: boolean;
|
supportImmutable: boolean;
|
||||||
diffObjectHash?: (item: unknown, index: number) => string;
|
diffObjectHash?: (item: unknown, index: number | undefined) => string;
|
||||||
diffPropertyFilter?: (name: string, context: DiffContext) => boolean;
|
diffPropertyFilter?: (name: string, context: DiffContext) => boolean;
|
||||||
hideMainButtons?: boolean;
|
hideMainButtons?: boolean;
|
||||||
hideActionButtons?: boolean;
|
hideActionButtons?: boolean;
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
import { DiffContext, DiffPatcher } from 'jsondiffpatch';
|
import { DiffPatcher } from 'jsondiffpatch';
|
||||||
|
import type { DiffContext } from 'jsondiffpatch';
|
||||||
|
|
||||||
const defaultObjectHash = (o: any, idx: number) =>
|
const defaultObjectHash = (obj: object, idx: number | undefined) => {
|
||||||
|
const o = obj as Record<string, unknown>;
|
||||||
|
return (
|
||||||
(o === null && '$$null') ||
|
(o === null && '$$null') ||
|
||||||
(o && (o.id || o.id === 0) && `$$id:${JSON.stringify(o.id)}`) ||
|
(o && (o.id || o.id === 0) && `$$id:${JSON.stringify(o.id)}`) ||
|
||||||
(o && (o._id || o._id === 0) && `$$_id:${JSON.stringify(o._id)}`) ||
|
(o && (o._id || o._id === 0) && `$$_id:${JSON.stringify(o._id)}`) ||
|
||||||
`$$index:${idx}`;
|
`$$index:${idx}`
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
const defaultPropertyFilter = (name: string, context: DiffContext) =>
|
const defaultPropertyFilter = (name: string, context: DiffContext) =>
|
||||||
typeof context.left[name] !== 'function' &&
|
typeof (context.left as Record<string, unknown>)[name] !== 'function' &&
|
||||||
typeof context.right[name] !== 'function';
|
typeof (context.right as Record<string, unknown>)[name] !== 'function';
|
||||||
|
|
||||||
const defaultDiffPatcher = new DiffPatcher({
|
const defaultDiffPatcher = new DiffPatcher({
|
||||||
arrays: { detectMove: false } as {
|
arrays: { detectMove: false } as {
|
||||||
|
@ -20,7 +25,9 @@ const defaultDiffPatcher = new DiffPatcher({
|
||||||
});
|
});
|
||||||
|
|
||||||
export default function createDiffPatcher(
|
export default function createDiffPatcher(
|
||||||
objectHash: ((item: unknown, index: number) => string) | undefined,
|
objectHash:
|
||||||
|
| ((item: unknown, index: number | undefined) => string)
|
||||||
|
| undefined,
|
||||||
propertyFilter: ((name: string, context: DiffContext) => boolean) | undefined,
|
propertyFilter: ((name: string, context: DiffContext) => boolean) | undefined,
|
||||||
) {
|
) {
|
||||||
if (!objectHash && !propertyFilter) {
|
if (!objectHash && !propertyFilter) {
|
||||||
|
|
|
@ -2,7 +2,7 @@ import React, { Component } from 'react';
|
||||||
import { JSONTree } from 'react-json-tree';
|
import { JSONTree } from 'react-json-tree';
|
||||||
import type { LabelRenderer, ShouldExpandNodeInitially } from 'react-json-tree';
|
import type { LabelRenderer, ShouldExpandNodeInitially } from 'react-json-tree';
|
||||||
import { stringify } from 'javascript-stringify';
|
import { stringify } from 'javascript-stringify';
|
||||||
import { Delta } from 'jsondiffpatch';
|
import type { Delta } from 'jsondiffpatch';
|
||||||
import { Base16Theme } from 'redux-devtools-themes';
|
import { Base16Theme } from 'redux-devtools-themes';
|
||||||
import { css } from '@emotion/react';
|
import { css } from '@emotion/react';
|
||||||
import type { Interpolation, Theme } from '@emotion/react';
|
import type { Interpolation, Theme } from '@emotion/react';
|
||||||
|
|
Loading…
Reference in New Issue
Block a user