Skip to content

Instantly share code, notes, and snippets.

@oflarcade
Created June 6, 2018 18:43
Show Gist options
  • Save oflarcade/e7fff1cca15348f2147ce3d1768734d4 to your computer and use it in GitHub Desktop.
Save oflarcade/e7fff1cca15348f2147ce3d1768734d4 to your computer and use it in GitHub Desktop.
import { createStore } from 'redux'
import {Animated, Easing } from 'react-native';
const defaultState = {
levelNbr: 1,
levelName: '',
questionNbr: 1,
questionName: '',
levelOne: false,
levelTwo: true,
levelThree: true,
levelFour: true,
levelFive: true,
levelSix: true,
levelSeven: true,
questionOne: false,
questionTwo: true,
questionThree: true,
questionFour: true,
questionFive: true,
questionSix: true,
questionSeven: true,
questionEight: true,
questionNine: true,
questionTen: true,
questionText: '',
correctResponse: '',
firstResponse: '',
secondResponse: '',
thirdResponse: '',
fourthResponse: '',
selected: '',
score: 0,
questionUnlocked: 0,
levelOneQ: 0,
levelTwoQ: 0,
levelThreeQ: 0,
levelFourQ: 0,
levelFiveQ: 0,
levelSixQ: 0,
levelSevenQ: 0,
progress: new Animated.Value(0),
}
function triviaStore(state = defaultState, action ={}) {
switch (action.type) {
case 'LOAD_STORE':
return {
...state,
score: action.score,
levelName: action.levelName,
levelNbr: action.levelNbr,
questionNbr: action.questionNbr,
questionName: action.questionName,
levelOne: action.levelOne,
levelTwo: action.levelTwo,
levelThree: action.levelThree,
levelFour: action.levelFour,
levelFive: action.levelFive,
levelSix: action.levelSix,
levelSeven: action.levelSeven,
questionOne: action.questionOne,
questionTwo: action.questionTwo,
questionThree: action.questionThree,
questionFour: action.questionFour,
questionFive: action.questionFive,
questionSix: action.questionSix,
questionSeven: action.questionSeven,
questionEight: action.questionEight,
questionNine: action.questionNine,
questionTen: action.questionTen,
questionUnlocked: action.levelOneQ,
levelOneQ: action.levelOneQ,
levelTwoQ: action.levelTwoQ,
levelThreeQ: action.levelThreeQ,
levelFourQ: action.levelFourQ,
levelFiveQ: action.levelFiveQ,
levelSixQ: action.levelSixQ,
levelSevenQ: action.levelSevenQ,
}
case 'RESET':
return{
...state,
levelNbr: 1,
levelName: '',
questionNbr: 1,
questionName: '',
levelOne: false,
levelTwo: true,
levelThree: true,
levelFour: true,
levelFive: true,
levelSix: true,
levelSeven: true,
questionOne: false,
questionTwo: true,
questionThree: true,
questionFour: true,
questionFive: true,
questionSix: true,
questionSeven: true,
questionEight: true,
questionNine: true,
questionTen: true,
questionText: '',
correctResponse: '',
firstResponse: '',
secondResponse: '',
thirdResponse: '',
fourthResponse: '',
selected: '',
score: 0,
questionUnlocked: 0,
levelOneQ: 0,
levelTwoQ: 0,
levelThreeQ: 0,
levelFourQ: 0,
levelFiveQ: 0,
levelSixQ: 0,
levelSevenQ: 0,
}
case 'LOAD_QUESTION_STATUS':
return {
...state,
questionOne: action.questionOne,
questionTwo: action.questionTwo,
questionThree: action.questionThree,
questionFour: action.questionFour,
questionFive: action.questionFive,
questionSix: action.questionSix,
questionSeven: action.questionSeven,
questionEight: action.questionEight,
questionNine: action.questionNine,
questionTen: action.questionTen,
}
case 'SOLVED':
return {
...state,
questionUnlocked : state.questionUnlocked + 1
}
case 'SCOREBEFORE':
return {
...state,
score: state.score + 1,
}
case 'SCORE':
return {
...state,
score: state.score + 10,
}
case 'LOAD_LEVEL':
return {
...state,
levelName: action.text,
levelNbr: action.id
}
case 'LOAD_QUESTION':
return {
...state,
questionName: action.text,
questionNbr: action.id
}
case 'LOAD_GAME_DATA':
return {
...state,
questionText: action.qtext,
correctResponse: action.correct,
firstResponse: action.ansOne,
secondResponse: action.ansTwo,
thirdResponse: action.ansThree,
fourthResponse: action.ansFour
};
case 'UNLOCKQ2':
return {
...state,
questionTwo: false,
};
case 'UNLOCKQ3':
return {
...state,
questionThree: false,
};
case 'UNLOCKQ4':
return {
...state,
questionFour: false,
};
case 'UNLOCKQ5':
return {
...state,
questionFive: false,
};
case 'UNLOCKQ6':
return {
...state,
questionSix: false,
};
case 'UNLOCKQ7':
return {
...state,
questionSeven: false,
};
case 'UNLOCKQ8':
return {
...state,
questionEight: false,
};
case 'UNLOCKQ9':
return {
...state,
questionNine: false,
};
case 'UNLOCKQ10':
return {
...state,
questionTen: false,
};
case 'SELECTED':
return {
...state,
selected: action.text
};
case 'UNLOCKL2': {
return {
...state,
levelTwo: false,
};
}
case 'UNLOCKL3': {
return {
...state,
levelThree: false,
};
}
case 'UNLOCKL4': {
return {
...state,
levelFour: false,
};
}
case 'UNLOCKL5': {
return {
...state,
levelFive: false,
};
}
case 'UNLOCKL6': {
return {
...state,
levelSix: false,
};
}
case 'UNLOCKL7': {
return {
...state,
levelSeven: false,
};
}
case 'LOCKQUESTIONS': {
return {
...state,
questionTwo: true,
questionThree: true,
questionFour: true,
questionFive: true,
questionSix: true,
questionSeven: true,
questionEight: true,
questionNine: true,
questionTen: true,
}
}
case 'GOLEVEL': {
return {
...state,
golevel: true,
}
}
case 'GONOLEVEL': {
return {
...state,
golevel: false
}
}
case 'ISSOLVED':{
return {
...state,
isSolved: action.solved,
}
}
case 'INITIALSOLVED':{
return{
...state,
isSolved: false,
}
}
default:
return state
}
}
export default createStore(triviaStore)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment