From 6cfcd976473638c659742afa9badad990b18a641 Mon Sep 17 00:00:00 2001 From: Delucse <46593742+Delucse@users.noreply.github.com> Date: Tue, 22 Sep 2020 11:35:29 +0200 Subject: [PATCH] key prop to ensure independent treatment --- src/components/Tutorial/Builder/Builder.js | 13 +++++-------- src/components/WorkspaceFunc.js | 13 +++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/components/Tutorial/Builder/Builder.js b/src/components/Tutorial/Builder/Builder.js index 462ad6e..051f3e4 100644 --- a/src/components/Tutorial/Builder/Builder.js +++ b/src/components/Tutorial/Builder/Builder.js @@ -37,6 +37,7 @@ class Builder extends Component { content: '', string: false, snackbar: false, + key: '', message: '' }; this.inputRef = React.createRef(); @@ -49,7 +50,7 @@ class Builder extends Component { submit = () => { var isError = this.props.checkError(); if(isError){ - this.setState({ snackbar: true, message: `Die Angaben für das Tutorial sind nicht vollständig.`, type: 'error'}); + this.setState({ snackbar: true, key: Date.now(), message: `Die Angaben für das Tutorial sind nicht vollständig.`, type: 'error'}); window.scrollTo(0, 0); } else{ @@ -65,7 +66,7 @@ class Builder extends Component { reset = () => { this.props.resetTutorial(); - this.setState({ snackbar: true, message: `Das Tutorial wurde erfolgreich zurückgesetzt.`, type: 'success'}); + this.setState({ snackbar: true, key: Date.now(), message: `Das Tutorial wurde erfolgreich zurückgesetzt.`, type: 'success'}); window.scrollTo(0, 0); } @@ -95,7 +96,7 @@ class Builder extends Component { result.steps = [{}]; } this.props.readJSON(result); - this.setState({ snackbar: true, message: `${isFile ? 'Die übergebene JSON-Datei' : 'Der übergebene JSON-String'} wurde erfolgreich übernommen.`, type: 'success'}); + this.setState({ snackbar: true, key: Date.now(), message: `${isFile ? 'Die übergebene JSON-Datei' : 'Der übergebene JSON-String'} wurde erfolgreich übernommen.`, type: 'success'}); } catch(err){ console.log(err); this.props.progress(false); @@ -115,10 +116,6 @@ class Builder extends Component { this.setState({ open: !this.state }); } - toggleSnackbar = () => { - this.setState({ snackbar: !this.state, message: '', type: null }); - } - render() { return ( @@ -185,9 +182,9 @@ class Builder extends Component { diff --git a/src/components/WorkspaceFunc.js b/src/components/WorkspaceFunc.js index 62380f5..ab2945c 100644 --- a/src/components/WorkspaceFunc.js +++ b/src/components/WorkspaceFunc.js @@ -62,6 +62,7 @@ class WorkspaceFunc extends Component { saveXml: false, name: props.name, snackbar: false, + key: '', message: '' }; } @@ -76,10 +77,6 @@ class WorkspaceFunc extends Component { this.setState({ open: !this.state }); } - toggleSnackbar = () => { - this.setState({ snackbar: !this.state, message: '' }); - } - saveXmlFile = () => { var code = this.props.xml; this.toggleDialog(); @@ -128,7 +125,7 @@ class WorkspaceFunc extends Component { var extensionPosition = xmlFile.name.lastIndexOf('.'); this.props.workspaceName(xmlFile.name.substr(0, extensionPosition)); } - this.setState({ snackbar: true, message: 'Das Projekt aus gegebener XML-Datei wurde erfolgreich eingefügt.' }); + this.setState({ snackbar: true, key: Date.now(), message: 'Das Projekt aus gegebener XML-Datei wurde erfolgreich eingefügt.' }); } } catch(err){ this.setState({ open: true, file: false, title: 'Ungültige XML', content: 'Die XML-Datei konnte nicht in Blöcke zerlegt werden. Bitte überprüfe den XML-Code und versuche es erneut.' }); @@ -140,7 +137,7 @@ class WorkspaceFunc extends Component { renameWorkspace = () => { this.props.workspaceName(this.state.name); this.toggleDialog(); - this.setState({ snackbar: true, message: `Das Projekt wurde erfolgreich in '${this.state.name}' umbenannt.` }); + this.setState({ snackbar: true, key: Date.now(), message: `Das Projekt wurde erfolgreich in '${this.state.name}' umbenannt.` }); } resetWorkspace = () => { @@ -156,7 +153,7 @@ class WorkspaceFunc extends Component { if(!this.props.solutionCheck){ this.props.workspaceName(null); } - this.setState({ snackbar: true, message: 'Das Projekt wurde erfolgreich zurückgesetzt.' }); + this.setState({ snackbar: true, key: Date.now(), message: 'Das Projekt wurde erfolgreich zurückgesetzt.' }); } render() { @@ -226,9 +223,9 @@ class WorkspaceFunc extends Component {