load tutorial only once

This commit is contained in:
Delucse 2020-11-27 13:31:03 +01:00
parent 28720edeea
commit 2d29b8d7bd
4 changed files with 18 additions and 20 deletions

View File

@ -18,13 +18,14 @@ export const getTutorial = (id) => (dispatch, getState) => {
type: GET_TUTORIAL, type: GET_TUTORIAL,
payload: tutorial payload: tutorial
}); });
dispatch(returnSuccess(res.data.message, res.status));
}); });
}) })
.catch(err => { .catch(err => {
dispatch({type: TUTORIAL_PROGRESS});
if(err.response){ if(err.response){
dispatch(returnErrors(err.response.data.message, err.response.status, 'GET_TUTORIAL_FAIL')); dispatch(returnErrors(err.response.data.message, err.response.status, 'GET_TUTORIAL_FAIL'));
} }
dispatch({type: TUTORIAL_PROGRESS});
}); });
}; };
@ -43,13 +44,14 @@ export const getTutorials = () => (dispatch, getState) => {
payload: tutorials payload: tutorials
}); });
dispatch({type: TUTORIAL_PROGRESS}); dispatch({type: TUTORIAL_PROGRESS});
dispatch(returnSuccess(res.data.message, res.status));
}); });
}) })
.catch(err => { .catch(err => {
dispatch({type: TUTORIAL_PROGRESS});
if(err.response){ if(err.response){
dispatch(returnErrors(err.response.data.message, err.response.status, 'GET_TUTORIALS_FAIL')); dispatch(returnErrors(err.response.data.message, err.response.status, 'GET_TUTORIALS_FAIL'));
} }
dispatch({type: TUTORIAL_PROGRESS});
}); });
}; };

View File

@ -22,17 +22,14 @@ class Tutorial extends Component {
componentDidMount() { componentDidMount() {
this.props.getTutorial(this.props.match.params.tutorialId); this.props.getTutorial(this.props.match.params.tutorialId);
// this.props.tutorialId(Number(this.props.match.params.tutorialId));
} }
componentDidUpdate(props, state) { componentDidUpdate(props, state) {
if (props.tutorial && props.tutorial.id && !props.isLoading && Number(props.tutorial.id) !== Number(this.props.match.params.tutorialId)) { if(this.props.tutorial && !this.props.isLoading && this.props.tutorial.id != this.props.match.params.tutorialId) {
this.props.getTutorial(this.props.match.params.tutorialId); this.props.getTutorial(this.props.match.params.tutorialId);
// this.props.tutorialId(Number(this.props.match.params.tutorialId));
} }
if(this.props.message.id === 'GET_TUTORIAL_FAIL'){ if(this.props.message.id === 'GET_TUTORIAL_FAIL'){
alert(this.props.message.msg); alert(this.props.message.msg);
this.props.clearMessages();
} }
} }
@ -45,11 +42,11 @@ class Tutorial extends Component {
} }
render() { render() {
console.log(this.props.tutorial);
return ( return (
<div> <div>
{this.props.isLoading ? null : {this.props.isLoading ? null :
!this.props.tutorial ? <NotFound button={{ title: 'Zurück zur Tutorials-Übersicht', link: '/tutorial' }} /> !this.props.tutorial ?
this.props.message.id === 'GET_TUTORIAL_FAIL' ? <NotFound button={{ title: 'Zurück zur Tutorials-Übersicht', link: '/tutorial' }} /> : null
: (() => { : (() => {
var tutorial = this.props.tutorial; var tutorial = this.props.tutorial;
var steps = this.props.tutorial.steps; var steps = this.props.tutorial.steps;

View File

@ -58,7 +58,6 @@ class TutorialHome extends Component {
componentDidUpdate(props, state) { componentDidUpdate(props, state) {
if(this.props.message.id === 'GET_TUTORIALS_FAIL'){ if(this.props.message.id === 'GET_TUTORIALS_FAIL'){
alert(this.props.message.msg); alert(this.props.message.msg);
this.props.clearMessages();
} }
} }

View File

@ -1,11 +1,11 @@
let tutorials = [ // let tutorials = [
require('./tutorial/ErsteSchritte.json'), // require('./tutorial/ErsteSchritte.json'),
require('./tutorial/Schleifen.json'), // require('./tutorial/Schleifen.json'),
require('./tutorial/Wenn-DannBedingungen.json'), // require('./tutorial/Wenn-DannBedingungen.json'),
require('./tutorial/VerwendungVonVariablen.json'), // require('./tutorial/VerwendungVonVariablen.json'),
require('./tutorial/SendenVonMesswertenUeberLoRa.json'), // require('./tutorial/SendenVonMesswertenUeberLoRa.json'),
require('./tutorial/AnzeigeVonMesswertenAufDemDisplay.json'), // require('./tutorial/AnzeigeVonMesswertenAufDemDisplay.json'),
require('./tutorial/MesswerteAnDieOpenSenseMapSenden.json') // require('./tutorial/MesswerteAnDieOpenSenseMapSenden.json')
] // ]
//
module.exports = tutorials; // module.exports = tutorials;