mic-inspector
Version:
A react inspector which a most similar of Chorme DevTools inspector
32 lines (31 loc) • 1.18 kB
JavaScript
import React from 'react';
import { GetterValue } from '../getter-value';
import { ObjectValue } from '../object-value';
import { StringValue } from '../string-value';
import { UnknownValue } from '../unknown-value';
import { NumberValue } from '../number-value';
/**
* A method to render the property value
* @param descriptor The property descriptor
* @param preview A boolean represents whether display mode of object properties are preview
*/
export const renderValue = (descriptor, preview = false) => {
const { get, owner } = descriptor;
// if get accessor existed
if (get) {
return React.createElement(GetterValue, { owner: owner, value: get });
}
const { value } = descriptor;
switch (typeof value) {
case 'number':
return React.createElement(NumberValue, { value: value });
case 'string':
return React.createElement(StringValue, { value: value });
case 'object':
if (value) {
return React.createElement(ObjectValue, { preview: preview, value: value });
}
break;
}
return React.createElement(UnknownValue, { value: value });
};