From 8a5a0a7a6fa99ce2b6ab3210b08b5cfddaafbc66 Mon Sep 17 00:00:00 2001 From: Matthew Grove Date: Sat, 27 Nov 2021 18:41:36 +0000 Subject: [PATCH] Enable sound effects --- src/CorrectSound.mp3 | Bin 0 -> 11760 bytes src/IncorrectSound.mp3 | Bin 0 -> 10224 bytes src/Progress.js | 34 ++++++++++++++++++++++++---------- 3 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 src/CorrectSound.mp3 create mode 100644 src/IncorrectSound.mp3 diff --git a/src/CorrectSound.mp3 b/src/CorrectSound.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0a20183fa2b3643e75553f63d88adaa307edbf88 GIT binary patch literal 11760 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 literal 0 HcmV?d00001 diff --git a/src/Progress.js b/src/Progress.js index 96db6e8..b48c1c6 100644 --- a/src/Progress.js +++ b/src/Progress.js @@ -9,6 +9,8 @@ import Footer from "./Footer"; import LineChart from './LineChart'; import ProgressStats from './ProgressStats'; import ConfirmationDialog from "./ConfirmationDialog"; +import CorrectSound from "./CorrectSound.mp3"; +import IncorrectSound from "./IncorrectSound.mp3"; import "./css/PopUp.css"; import "./css/Progress.css"; @@ -55,6 +57,7 @@ export default withRouter(class Progress extends React.Component { averagePercentage: null, pageLoaded: false, startTime: null, + sound: false, } constructor(props) { @@ -89,6 +92,9 @@ export default withRouter(class Progress extends React.Component { get: () => isMounted, set: (value) => isMounted = value, }); + + this.correctSound = new Audio(CorrectSound); + this.incorrectSound = new Audio(IncorrectSound); } setState = (state, callback=null) => { @@ -350,23 +356,22 @@ export default withRouter(class Progress extends React.Component { canStartTest: true, }; - if (data.correct) { - this.props.logEvent("correct_answer", { - progress_id: this.props.match.params.progressId, - }); - } else { - this.props.logEvent("incorrect_answer", { - progress_id: this.props.match.params.progressId, - }); - } - if (this.state.mode === "lives") newState.lives = data.lives; if (data.correct) { // correct answer given newState.answerInput = ""; + // play sound + if (this.props.sound) { + this.correctSound.currentTime = 0; + this.correctSound.play(); + } // show next question if there are no more answers if (!data.moreAnswers) newState = this.showNextQuestion(newState, newState); + + this.props.logEvent("correct_answer", { + progress_id: this.props.match.params.progressId, + }); } else { // incorrect answer given // store prompt and count=0 @@ -377,6 +382,15 @@ export default withRouter(class Progress extends React.Component { answer: data.lives === 0 ? data.correctAnswers : "", count: 0, }; + // play sound + if (this.props.sound) { + this.incorrectSound.currentTime = 0; + this.incorrectSound.play(); + } + + this.props.logEvent("incorrect_answer", { + progress_id: this.props.match.params.progressId, + }); } if ((data.correct || data.lives === 0) && !data.moreAnswers && this.state.incorrectAnswers[data.currentVocabId]) {