UNPKG

sanity-plugin-json-input

Version:

Ace editor for objects in sanity

75 lines (61 loc) 2.53 kB
"use strict"; 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;