@kineticdata/react
Version:
A React library for the Kinetic Platform
131 lines (128 loc) • 3.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FieldDefinitionForm = void 0;
var _Form = require("../../form/Form");
var _apis = require("../../../apis");
var _FieldDefinitionTable = require("./FieldDefinitionTable");
var dataSources = function dataSources(_ref) {
var kappSlug = _ref.kappSlug,
name = _ref.name;
return {
form: {
fn: kappSlug ? _apis.fetchKapp : _apis.fetchSpace,
params: [{
kappSlug: kappSlug,
include: 'fields'
}],
transform: function transform(result) {
return kappSlug ? result.kapp : result.space;
}
},
fieldDefinition: {
fn: function fn(form, name) {
return form.get('fields').find(function (f) {
return f.get('name') === name;
});
},
params: function params(_ref2) {
var form = _ref2.form;
return form && name && [form, name];
}
}
};
};
var handleSubmit = function handleSubmit(_ref3) {
var kappSlug = _ref3.kappSlug,
name = _ref3.name;
return function (values, _ref4) {
var form = _ref4.form;
var dataType = _FieldDefinitionTable.FIELD_DATA_TYPES.find(function (fdt) {
return fdt.value === values.get('renderType');
}).dataType;
var field = values.set('dataType', dataType);
var fields = name ? form.get('fields').map(function (fd) {
return fd.get('name') === name ? field : fd;
}) : form.get('fields').push(field);
return (kappSlug ? (0, _apis.updateKapp)({
kapp: {
fields: fields
},
kappSlug: kappSlug
}) : (0, _apis.updateSpace)({
space: {
fields: fields
}
})).then(function (_ref5) {
var kapp = _ref5.kapp,
space = _ref5.space,
error = _ref5.error;
if (error) {
throw error.statusCode === 400 && error.message || 'There was an error saving the field definition';
}
return kappSlug ? kapp : space;
});
};
};
var fields = function fields(_ref6) {
var name = _ref6.name;
return function (_ref7) {
var form = _ref7.form,
fieldDefinition = _ref7.fieldDefinition;
return (!name || fieldDefinition) && form && [{
name: 'name',
label: 'Name',
type: 'text',
required: true,
initialValue: fieldDefinition ? fieldDefinition.get('name') : ''
}, {
name: 'renderType',
label: 'Type',
type: 'select',
required: true,
options: _FieldDefinitionTable.FIELD_DATA_TYPES,
initialValue: fieldDefinition ? fieldDefinition.get('renderType') : ''
}, {
name: 'createdAt',
label: 'Created At',
type: 'text',
visible: false,
initialValue: fieldDefinition ? fieldDefinition.get('createdAt') : '2020-08-24T22:06:20.572Z'
}, {
name: 'createdBy',
label: 'Created By',
type: 'text',
visible: false,
initialValue: fieldDefinition ? fieldDefinition.get('createdBy') : 'admin'
}, {
name: 'updatedAt',
label: 'Updated At',
type: 'text',
visible: false,
initialValue: fieldDefinition ? fieldDefinition.get('updatedAt') : '2020-08-24T22:06:20.572Z'
}, {
name: 'updatedBy',
label: 'Updated By',
type: 'text',
visible: false,
initialValue: fieldDefinition ? fieldDefinition.get('updatedBy') : 'admin'
}];
};
};
/**
* @component
* A form for creating and updating Field Definitions within the Kinetic Platform
*/
var FieldDefinitionForm = exports.FieldDefinitionForm = (0, _Form.generateForm)({
formOptions: ['kappSlug', 'name'],
dataSources: dataSources,
fields: fields,
handleSubmit: handleSubmit
});
FieldDefinitionForm.displayName = 'FieldDefinitionForm';
// Specifies the default values for props:
FieldDefinitionForm.defaultProps = {
fieldName: null,
kappSlug: null
};