Merge branch 'tutorial' into assessment
This commit is contained in:
commit
e766b05dba
17
src/actions/tutorialActions.js
Normal file
17
src/actions/tutorialActions.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { TUTORIAL_SUCCESS, TUTORIAL_ERROR, TUTORIAL_CHANGE } from './types';
|
||||||
|
|
||||||
|
export const tutorialChange = () => (dispatch) => {
|
||||||
|
dispatch({
|
||||||
|
type: TUTORIAL_CHANGE
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const tutorialCheck = (id, status) => (dispatch, getState) => {
|
||||||
|
var tutorialsStatus = getState().tutorial.status;
|
||||||
|
tutorialsStatus[id] = {...tutorialsStatus[id], status: status};
|
||||||
|
dispatch({
|
||||||
|
type: status === 'success' ? TUTORIAL_SUCCESS : TUTORIAL_ERROR,
|
||||||
|
payload: tutorialsStatus
|
||||||
|
});
|
||||||
|
dispatch(tutorialChange());
|
||||||
|
};
|
30
src/reducers/tutorialReducer.js
Normal file
30
src/reducers/tutorialReducer.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import { TUTORIAL_SUCCESS, TUTORIAL_ERROR, TUTORIAL_CHANGE } from '../actions/types';
|
||||||
|
|
||||||
|
import { tutorials } from '../components/Tutorial/tutorials';
|
||||||
|
|
||||||
|
const initialState = {
|
||||||
|
status: window.localStorage.getItem('tutorial') ?
|
||||||
|
JSON.parse(window.localStorage.getItem('tutorial'))
|
||||||
|
: new Array(tutorials.length).fill({}),
|
||||||
|
change: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function(state = initialState, action){
|
||||||
|
switch(action.type){
|
||||||
|
case TUTORIAL_SUCCESS:
|
||||||
|
case TUTORIAL_ERROR:
|
||||||
|
// update locale storage - sync with redux store
|
||||||
|
window.localStorage.setItem('tutorial', JSON.stringify(action.payload));
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
status: action.payload
|
||||||
|
};
|
||||||
|
case TUTORIAL_CHANGE:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
change: state.change += 1
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user