@kineticdata/react
Version:
A React library for the Kinetic Platform
97 lines (96 loc) • 2.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AgentComponentForm = void 0;
var _immutable = require("immutable");
var _Form = require("../../form/Form");
var _apis = require("../../../apis");
var dataSources = function dataSources(_ref) {
var slug = _ref.slug;
return {
agent: {
fn: _apis.fetchAgentComponent,
params: slug && [{
slug: slug
}],
transform: function transform(result) {
return result.agent;
}
}
};
};
var handleSubmit = function handleSubmit(_ref2) {
var slug = _ref2.slug;
return function (values) {
return (slug ? _apis.updateAgentComponent : _apis.createAgentComponent)({
slug: slug,
agent: values.toJS()
}).then(function (_ref3) {
var agent = _ref3.agent,
error = _ref3.error;
if (error) {
throw error.statusCode === 400 && error.message || 'There was an error saving the Agent';
}
return agent;
});
};
};
var fields = function fields(_ref4) {
var slug = _ref4.slug;
return function (_ref5) {
var agent = _ref5.agent;
return (!slug || agent) && [{
name: 'slug',
label: 'Agent Slug',
type: 'text',
required: true,
initialValue: (0, _immutable.get)(agent, 'slug') || ''
}, {
name: 'secret',
label: 'Agent Secret',
type: 'password',
visible: function visible(_ref6) {
var values = _ref6.values;
return values.get('changeSecret');
},
required: function required(_ref7) {
var values = _ref7.values;
return values.get('changeSecret');
},
"transient": function transient(_ref8) {
var values = _ref8.values;
return !values.get('changeSecret');
}
}, {
name: 'changeSecret',
label: 'Change Agent Secret',
type: 'checkbox',
"transient": true,
// in "new" mode we do not show this toggle field and default it to true
visible: !!slug,
initialValue: !slug,
onChange: function onChange(_ref9, _ref10) {
var values = _ref9.values;
var setValue = _ref10.setValue;
if (values.get('secret') !== '') {
setValue('secret', '');
}
}
}, {
name: 'url',
label: 'Agent Url',
type: 'text',
required: true,
initialValue: (0, _immutable.get)(agent, 'url') || '',
helpText: 'URL to the Agent'
}];
};
};
var AgentComponentForm = exports.AgentComponentForm = (0, _Form.generateForm)({
formOptions: ['slug'],
dataSources: dataSources,
fields: fields,
handleSubmit: handleSubmit
});
AgentComponentForm.displayName = 'AgentComponentForm';