@uiw/react-json-view
Version:
JSON viewer for react.
57 lines • 1.57 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import { useStore } from "../store.js";
import { useExpandsStore } from "../store/Expands.js";
import { BracketsClose } from "../symbol/index.js";
import { jsx as _jsx } from "react/jsx-runtime";
export var NestedClose = props => {
var _expands$expandKey;
var {
keyName,
value,
expandKey,
parentValue,
level,
keys = []
} = props;
var expands = useExpandsStore();
var {
collapsed,
shouldExpandNodeInitially
} = useStore();
var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false;
var isExpanded = (_expands$expandKey = expands[expandKey]) != null ? _expands$expandKey : shouldExpandNodeInitially ? false : defaultExpanded;
var shouldExpand = shouldExpandNodeInitially && shouldExpandNodeInitially(!isExpanded, {
value,
keys,
level,
keyName,
parentValue
});
if (expands[expandKey] === undefined && !shouldExpand) {
return null;
}
var len = Object.keys(value).length;
if (isExpanded || len === 0) {
return null;
}
var style = {
paddingLeft: 4
};
var compProps = {
keyName,
value,
keys,
parentValue
};
var isArray = Array.isArray(value);
var isMySet = value instanceof Set;
return /*#__PURE__*/_jsx("div", {
style: style,
children: /*#__PURE__*/_jsx(BracketsClose, _extends({
isBrackets: isArray || isMySet
}, compProps, {
isVisiable: true
}))
});
};
NestedClose.displayName = 'JVR.NestedClose';