sanity-plugin-json-input
Version:
Ace editor for objects in sanity
75 lines (61 loc) • 2.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _jsonLogo = _interopRequireDefault(require("./jsonLogo"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
// eslint-disable-next-line react/no-multi-comp
class Input extends _react.PureComponent {
constructor(props) {
super(props);
this.JSONInput = require('./JSONInput').default;
this.JSONInputRef = _react.default.createRef();
}
focus() {
if (this.JSONInput && this.JSONInput.current) {
this.JSONInput.current.focus();
}
}
render() {
var JSONInput = this.JSONInput;
return _react.default.createElement(JSONInput, _extends({
ref: this.JSONInputRef
}, this.props));
}
} // eslint-disable-next-line react/no-multi-comp
var Preview = props => {
var PreviewJSON = require('./PreviewJSON').default;
return _react.default.createElement(PreviewJSON, props);
};
var _default = {
name: 'json',
type: 'object',
title: 'JSON',
inputComponent: Input,
// icon: <JsonLogo />,
fields: [{
name: 'unusedField',
type: 'string'
}],
// validation: Rule => Rule.custom(obj => console.log(obj) JSON.parse(obj) || 'Not valid JSON'),
// validation: Rule => Rule.custom(obj => console.log('test', obj)),
preview: {
select: {
filename: 'filename'
},
prepare: value => {
return {
title: 'JSON Object',
media: _react.default.createElement(_jsonLogo.default, null),
extendedPreview: _react.default.createElement(Preview, {
value: value
})
};
}
}
};
exports.default = _default;