UNPKG

sanity-plugin-spreadsheet-wizard-x

Version:

Spreadsheet Wizard is a magnificient Sanity plugin that help you EXPORT & IMPORT spreadsheets. A fantastic bridge between Sanity & your spreadsheet software of choice. (Google Sheets... Excel... Numbers etc.)

146 lines (131 loc) 4.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MetaTypes = exports.FieldTypes = exports.FieldName = void 0; var _react = _interopRequireDefault(require("react")); var _constants = require("../constants.js"); var _ui = require("@sanity/ui"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var MetaTypes = _ref => { var metaTypes = _ref.metaTypes, setMetaTypes = _ref.setMetaTypes; function handleChange(e) { e.persist(); var metaName = e.target.getAttribute("name"); setMetaTypes(metaTypes => metaTypes.includes(metaName) ? metaTypes.filter(item => item !== metaName || _constants.SANITY_META_TYPES.filter(thing => thing.name === metaName)[0].required) : [...metaTypes, metaName]); } return /*#__PURE__*/_react.default.createElement(_ui.Inline, { style: { display: "none" }, space: "3" }, _constants.SANITY_META_TYPES.map(item => /*#__PURE__*/_react.default.createElement("span", { style: { opacity: item.required ? "0.4" : "1" }, key: item.name }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, { padding: 5, name: item.name, id: item.name, type: "checkbox", checked: metaTypes.includes(item.name), onChange: handleChange }), /*#__PURE__*/_react.default.createElement("label", { htmlFor: item.name }, item.name)))); }; exports.MetaTypes = MetaTypes; var FieldTypes = _ref2 => { var doc = _ref2.doc, fields = _ref2.fields, selectedFields = _ref2.selectedFields, setSelectedFields = _ref2.setSelectedFields; return /*#__PURE__*/_react.default.createElement("div", { style: { padding: "1rem", border: "1px solid #ddd", borderTop: "0px", background: "#f9f9f9", marginBottom: "1rem", textAlign: "left", overflow: "hidden" } }, /*#__PURE__*/_react.default.createElement(_ui.Grid, { marginBottom: 2, gap: 2, background: "#ddd", style: { gridTemplateColumns: "1fr 30%" } }, /*#__PURE__*/_react.default.createElement(_ui.Card, { style: { background: "transparent" }, padding: 3 }, /*#__PURE__*/_react.default.createElement(_ui.Text, { weight: "semibold" }, "Name")), /*#__PURE__*/_react.default.createElement(_ui.Card, { style: { background: "transparent" }, padding: 3 }, /*#__PURE__*/_react.default.createElement(_ui.Text, { weight: "semibold" }, "Type"))), fields.map(item => /*#__PURE__*/_react.default.createElement(FieldName, { key: item.name, data: item, setSelectedFields: setSelectedFields, selectedFields: selectedFields }))); }; exports.FieldTypes = FieldTypes; var FieldName = _ref3 => { var _ref3$data = _ref3.data, name = _ref3$data.name, type = _ref3$data.type, selectedFields = _ref3.selectedFields, setSelectedFields = _ref3.setSelectedFields; function handleChange() { setSelectedFields(fields => fields.map(thing => thing.name).includes(name) ? fields.filter(thing => thing.name !== name) : [...fields, { name, type }]); } return /*#__PURE__*/_react.default.createElement(_ui.Grid, { style: { opacity: _constants.ACCEPTED_TYPES.map(x => x.name).includes(type) ? "1" : "0.4", borderTop: "1px solid #ddd", gridTemplateColumns: "1fr 30%" }, gap: 3, paddingBottom: 2, paddingTop: 2 }, /*#__PURE__*/_react.default.createElement(_ui.Card, { style: { background: "transparent" }, padding: 3 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, { name: name, id: name, checked: _constants.ACCEPTED_TYPES.map(x => x.name).includes(type) ? selectedFields.map(thing => thing.name).includes(name) : false, type: "checkbox", onChange: handleChange }), /*#__PURE__*/_react.default.createElement("label", { style: { paddingLeft: "20px" }, htmlFor: name }, name)), /*#__PURE__*/_react.default.createElement(_ui.Card, { style: { background: "transparent" }, padding: 3 }, /*#__PURE__*/_react.default.createElement(_ui.Text, { htmlFor: name }, type))); }; exports.FieldName = FieldName; //# sourceMappingURL=Fields.js.map