add xml code changes

This commit is contained in:
felixerdy 2021-09-16 16:51:10 +02:00
parent 53b4f5dfeb
commit d20d8b9e97
3 changed files with 9195 additions and 9557 deletions

View File

@ -19,6 +19,7 @@
"@testing-library/user-event": "^7.2.1", "@testing-library/user-event": "^7.2.1",
"axios": "^0.21.0", "axios": "^0.21.0",
"blockly": "^6.20210701.0", "blockly": "^6.20210701.0",
"diff-js-xml": "^1.0.6",
"file-saver": "^2.0.2", "file-saver": "^2.0.2",
"mnemonic-id": "^3.2.7", "mnemonic-id": "^3.2.7",
"moment": "^2.28.0", "moment": "^2.28.0",

View File

@ -20,6 +20,9 @@ import Backdrop from "@material-ui/core/Backdrop";
import CircularProgress from "@material-ui/core/CircularProgress"; import CircularProgress from "@material-ui/core/CircularProgress";
import Dialog from "../Dialog"; import Dialog from "../Dialog";
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import { initialXml } from "../Blockly/initialXml";
import {diffAsXml} from 'diff-js-xml';
const styles = (theme) => ({ const styles = (theme) => ({
link: { link: {
@ -130,11 +133,30 @@ class ProjectHome extends Component {
}} }}
> >
<div <div
onClick={() => { onClick={async () => {
console.log(this.props.workspaceCode.arduino); const isCodeDifferent = new Promise((resolve) => {
const showDialog = // resolve successfully when there is no existing workspace XML code
this.props.workspaceCode.arduino !== if(!this.props.workspaceCode.xml) {
"void setup() { } void loop() { } "; resolve(false)
return
}
// get difference of XML
// TODO: check if code of project is different to workspace code
diffAsXml(
this.props.workspaceCode.xml,
initialXml,
undefined,
undefined,
(result) => {
resolve(result.length !== 0);
}
)
}
);
const showDialog = await isCodeDifferent;
if (showDialog) if (showDialog)
this.setState({ this.setState({
dialog: true, dialog: true,
@ -232,10 +254,10 @@ class ProjectHome extends Component {
<Button <Button
onClick={() => { onClick={() => {
this.setState({ dialog: false }); this.setState({ dialog: false });
// TODO: navigate to project
}} }}
color="secondary"
> >
Schließen Verwerfen
</Button> </Button>
<Button onClick={() => {}} color="primary"> <Button onClick={() => {}} color="primary">
Speichern Speichern
@ -243,7 +265,7 @@ class ProjectHome extends Component {
</React.Fragment> </React.Fragment>
} }
> >
Hello World Möchtest du deinen bisherigen Code als Projekt speichern?
</Dialog> </Dialog>
</div> </div>
); );

18713
yarn.lock

File diff suppressed because it is too large Load Diff