refactor: changes

This commit is contained in:
cha0s 2021-01-29 22:38:11 -06:00
parent 4a8e1b7515
commit a296b57c02

View File

@ -1,4 +1,4 @@
import {join} from 'path';
import {join, relative} from 'path';
import {isInvocation, isKey} from '@avocado/behavior';
import {PropTypes, React} from '@latus/react';
@ -23,38 +23,18 @@ const Expression = ({
// eslint-disable-next-line react/destructuring-assignment
let description = context.constructor.descriptionFor(walk);
const onChange = (event, value, localPath) => {
if ('.' === value) {
const parts = localPath.split('/');
parts.pop();
patch({
op: 'remove',
path: parts.join('/'),
});
return;
}
if ('<literal>' === value) {
patch({
op: 'replace',
path,
value: {
type: 'literal',
value: null,
},
});
return;
}
const relative = localPath.slice(path.length + 1);
const j = parseInt(relative.split('/')[1], 10);
const patches = [
{path: localPath, value},
];
const patches = [];
const j = parseInt(relative(path, localPath).split('/')[1], 10);
if (j < ops.length - 1) {
for (let k = j + 1; k < ops.length; ++k) {
patches.unshift({op: 'remove', path: join(path, 'ops', k.toString())});
patches.push({
op: 'remove',
path: join(path, 'ops', k.toString()),
});
}
}
else if (j === ops.length) {
patches.unshift({
patches.push({
op: 'add',
path: join(path, 'ops', j.toString()),
value: {
@ -62,6 +42,10 @@ const Expression = ({
},
});
}
patches.push({
path: localPath,
value,
});
patch(patches);
};
do {
@ -93,7 +77,29 @@ const Expression = ({
...description.children,
}}
key={opKey}
onChange={onChange}
onChange={(event, value, localPath) => {
if ('.' === value) {
const parts = localPath.split('/');
parts.pop();
patch({
op: 'remove',
path: parts.join('/'),
});
}
else if ('<literal>' === value) {
patch({
op: 'replace',
path,
value: {
type: 'literal',
value: null,
},
});
}
else {
onChange(event, value, localPath);
}
}}
op={op}
path={opPath}
/>,