@uiw/react-json-view
Version:
JSON viewer for react.
67 lines • 1.93 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import { TypeString, TypeTrue, TypeNull, TypeFalse, TypeFloat, TypeBigint, TypeInt, TypeDate, TypeUndefined, TypeNan, TypeUrl } from "../types/index.js";
import { jsx as _jsx } from "react/jsx-runtime";
export var isFloat = n => Number(n) === n && n % 1 !== 0 || isNaN(n);
export var Value = props => {
var {
value,
keyName
} = props;
var reset = {
keyName
};
if (value instanceof URL) {
return /*#__PURE__*/_jsx(TypeUrl, _extends({}, reset, {
children: value
}));
}
if (typeof value === 'string') {
return /*#__PURE__*/_jsx(TypeString, _extends({}, reset, {
children: value
}));
}
if (value === true) {
return /*#__PURE__*/_jsx(TypeTrue, _extends({}, reset, {
children: value
}));
}
if (value === false) {
return /*#__PURE__*/_jsx(TypeFalse, _extends({}, reset, {
children: value
}));
}
if (value === null) {
return /*#__PURE__*/_jsx(TypeNull, _extends({}, reset, {
children: value
}));
}
if (value === undefined) {
return /*#__PURE__*/_jsx(TypeUndefined, _extends({}, reset, {
children: value
}));
}
if (value instanceof Date) {
return /*#__PURE__*/_jsx(TypeDate, _extends({}, reset, {
children: value
}));
}
if (typeof value === 'number' && isNaN(value)) {
return /*#__PURE__*/_jsx(TypeNan, _extends({}, reset, {
children: value
}));
} else if (typeof value === 'number' && isFloat(value)) {
return /*#__PURE__*/_jsx(TypeFloat, _extends({}, reset, {
children: value
}));
} else if (typeof value === 'bigint') {
return /*#__PURE__*/_jsx(TypeBigint, _extends({}, reset, {
children: value
}));
} else if (typeof value === 'number') {
return /*#__PURE__*/_jsx(TypeInt, _extends({}, reset, {
children: value
}));
}
return null;
};
Value.displayName = 'JVR.Value';