2018-12-22 03:10:49 +03:00
|
|
|
import React from 'react';
|
2022-01-10 18:41:53 +03:00
|
|
|
import { JSONTree } from 'react-json-tree';
|
2020-08-31 00:49:06 +03:00
|
|
|
import { Action } from 'redux';
|
2018-12-22 03:10:49 +03:00
|
|
|
import getItemString from './getItemString';
|
|
|
|
import getJsonTreeTheme from './getJsonTreeTheme';
|
2020-08-31 00:49:06 +03:00
|
|
|
import { TabComponentProps } from '../ActionPreview';
|
2018-12-22 03:10:49 +03:00
|
|
|
|
2021-06-18 06:56:36 +03:00
|
|
|
const StateTab: React.FunctionComponent<
|
2023-11-05 00:04:23 +03:00
|
|
|
TabComponentProps<any, Action<string>>
|
2021-06-18 06:56:36 +03:00
|
|
|
> = ({
|
2019-01-10 21:51:14 +03:00
|
|
|
nextState,
|
|
|
|
styling,
|
|
|
|
base16Theme,
|
|
|
|
invertTheme,
|
|
|
|
labelRenderer,
|
|
|
|
dataTypeKey,
|
2020-08-08 23:26:39 +03:00
|
|
|
isWideLayout,
|
2023-04-11 15:21:40 +03:00
|
|
|
sortStateTreeAlphabetically,
|
|
|
|
disableStateTreeCollection,
|
2019-01-10 21:51:14 +03:00
|
|
|
}) => (
|
|
|
|
<JSONTree
|
2018-12-22 03:10:49 +03:00
|
|
|
labelRenderer={labelRenderer}
|
|
|
|
theme={getJsonTreeTheme(base16Theme)}
|
|
|
|
data={nextState}
|
2019-01-10 21:51:14 +03:00
|
|
|
getItemString={(type, data) =>
|
|
|
|
getItemString(styling, type, data, dataTypeKey, isWideLayout)
|
|
|
|
}
|
2018-12-22 03:10:49 +03:00
|
|
|
invertTheme={invertTheme}
|
|
|
|
hideRoot
|
2023-04-11 15:21:40 +03:00
|
|
|
sortObjectKeys={sortStateTreeAlphabetically}
|
|
|
|
{...(disableStateTreeCollection ? { collectionLimit: 0 } : {})}
|
2019-01-10 21:51:14 +03:00
|
|
|
/>
|
|
|
|
);
|
2018-12-22 03:10:49 +03:00
|
|
|
|
|
|
|
export default StateTab;
|