mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:s390x platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { ComponentProps } from 'react';
|
|
import { JsonView, defaultStyles } from 'react-json-view-lite';
|
|
import 'react-json-view-lite/dist/index.css';
|
|
import clsx from 'clsx';
|
|
|
|
import styles from './JsonTree.module.css';
|
|
|
|
export function JsonTree({ style, ...props }: ComponentProps<typeof JsonView>) {
|
|
const currentStyle = getCurrentStyle(style);
|
|
return (
|
|
<JsonView
|
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
{...props}
|
|
style={currentStyle}
|
|
/>
|
|
);
|
|
}
|
|
|
|
type StyleProps = ComponentProps<typeof JsonView>['style'];
|
|
|
|
function getCurrentStyle(style: StyleProps | undefined): StyleProps {
|
|
if (style) {
|
|
return style;
|
|
}
|
|
|
|
return {
|
|
...defaultStyles,
|
|
container: styles.jsonTree,
|
|
booleanValue: styles.leafValue,
|
|
nullValue: styles.leafValue,
|
|
otherValue: styles.leafValue,
|
|
numberValue: styles.leafValue,
|
|
stringValue: styles.leafValue,
|
|
undefinedValue: styles.leafValue,
|
|
label: styles.key,
|
|
punctuation: styles.leafValue,
|
|
collapseIcon: clsx(defaultStyles.collapseIcon, styles.chevronIcon),
|
|
expandIcon: clsx(defaultStyles.expandIcon, styles.chevronIcon),
|
|
collapsedContent: clsx(
|
|
defaultStyles.collapsedContent,
|
|
styles.branchPreview
|
|
),
|
|
};
|
|
}
|