UNPKG

test-jsonforms-react-spectrum-renderers

Version:

React Spectrum Renderer Set for JSONForms

39 lines 3.43 kB
"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