blob: c7760163cf262d5cc988b8ec4c269f54b4e51c0c [file] [log] [blame]
import React from 'react';
import { diffJson } from 'diff';
import { clone } from 'utils/Common';
import { isThermos } from 'utils/Task';
function maybeParseThermos(task) {
if (isThermos(task)) {
const modifiedTask = clone(task);
modifiedTask.executorConfig.data = JSON.parse(task.executorConfig.data);
return modifiedTask;
}
return task;
}
export default function Diff({ left, right }) {
const result = diffJson(maybeParseThermos(left), maybeParseThermos(right));
return (<div className='diff-view'>
{result.map((r, i) => (
<span className={r.added ? 'added' : r.removed ? 'removed' : 'same'} key={i}>
{r.value}
</span>))}
</div>);
}