test-jsonforms-react-spectrum-renderers
Version:
React Spectrum Renderer Set for JSONForms
39 lines • 3.43 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var react_spectrum_1 = require("@adobe/react-spectrum");
function AddDialog(_a) {
var uischema = _a.uischema, handleClose = _a.handleClose, selectedIndex = _a.selectedIndex, schema = _a.schema, handleOnConfirm = _a.handleOnConfirm, open = _a.open, setSelectedIndex = _a.setSelectedIndex;
var _b, _c, _d;
var usePickerInsteadOfListBox = (_b = uischema.options) === null || _b === void 0 ? void 0 : _b.picker;
var handleListBoxChange = react_1.useCallback(function (newOneOfIndex) {
if (newOneOfIndex.currentKey) {
setSelectedIndex(newOneOfIndex.currentKey);
}
}, [setSelectedIndex]);
var handlePickerChange = react_1.useCallback(function (newOneOfIndex) {
newOneOfIndex = Number(newOneOfIndex);
setSelectedIndex(newOneOfIndex);
}, [setSelectedIndex]);
return (react_1.default.createElement(react_spectrum_1.DialogContainer, { onDismiss: handleClose }, open && (react_1.default.createElement(react_spectrum_1.Dialog, null,
react_1.default.createElement("div", { style: { gridColumn: '1 / -1' } },
react_1.default.createElement(react_spectrum_1.Heading, { margin: 'size-100' }, "Add a new item"),
react_1.default.createElement(react_spectrum_1.Divider, null),
usePickerInsteadOfListBox ? (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(react_spectrum_1.Picker, { "aria-label": 'Select', margin: 'size-100', onSelectionChange: handlePickerChange, selectedKey: String(selectedIndex), width: 'calc(100% - size-200)' }, (_c = schema === null || schema === void 0 ? void 0 : schema.oneOf) === null || _c === void 0 ? void 0 : _c.map(function (item, index) {
var _a;
return (react_1.default.createElement(react_spectrum_1.Item, { key: index }, (_a = item.title) !== null && _a !== void 0 ? _a : "One Of Item " + index));
})))) : (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(react_spectrum_1.ListBox, { "aria-label": 'Select', items: schema, margin: 'size-100', onSelectionChange: function (selected) {
return handleListBoxChange(selected);
}, selectedKeys: String(selectedIndex), selectionMode: 'single', width: 'calc(100% - size-200)', maxHeight: 'size-2400' }, (_d = schema === null || schema === void 0 ? void 0 : schema.oneOf) === null || _d === void 0 ? void 0 : _d.map(function (item, index) {
var _a;
return (react_1.default.createElement(react_spectrum_1.Item, { key: index }, (_a = item.title) !== null && _a !== void 0 ? _a : "One Of Item " + index));
}))))),
react_1.default.createElement(react_spectrum_1.ButtonGroup, null,
react_1.default.createElement(react_spectrum_1.Button, { variant: 'secondary', onPress: handleClose }, "Cancel"),
react_1.default.createElement(react_spectrum_1.Button, { variant: 'cta', onPress: function () { return handleOnConfirm(handleClose, selectedIndex); }, autoFocus: true }, "Confirm"))))));
}
exports.default = AddDialog;
//# sourceMappingURL=AddDialog.js.map