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
JavaScript
"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