Skip to content

Commit ebaefe4

Browse files
updated wrapper (#207)
1 parent b4dddbe commit ebaefe4

File tree

5 files changed

+17
-9
lines changed

5 files changed

+17
-9
lines changed

cypress/downloads/downloads.html

-2.1 MB
Binary file not shown.

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@watts-lab/surveys",
3-
"version": "1.19.1",
3+
"version": "1.19.2",
44
"description": "",
55
"main": "dist/index.js",
66
"module": "dist/index.js",

src/surveyFactory.jsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import "survey-react/modern.min.css";
22
import * as SurveyJS from "survey-react";
3-
import React, { useEffect, useRef, useCallback } from "react";
3+
import React, { useEffect, useRef, useCallback, useMemo } from "react";
44
import packageJson from "../package.json";
55
import { labeledRange } from "./customQuestionTypes/labeledRange";
66

@@ -15,8 +15,11 @@ export default function SurveyFactory(surveyName, surveyJson, scoreFunc, sha) {
1515
function BuiltSurvey({ onComplete, storageName, language }) {
1616
const timerStartedAt = useRef(Date.now());
1717

18-
const surveyModel = new SurveyJS.Model(surveyJson);
19-
surveyModel.locale = language; // set the language for the survey
18+
const surveyModel = useMemo(() => {
19+
const model = new SurveyJS.Model(surveyJson);
20+
model.locale = language; // set the language for the survey
21+
return model;
22+
}, [language, surveyJson]);
2023

2124
const saveState = useCallback(
2225
(survey) => {
@@ -75,8 +78,13 @@ export default function SurveyFactory(surveyName, surveyJson, scoreFunc, sha) {
7578
surveyModel.onValueChanged.add(saveState);
7679
surveyModel.onCurrentPageChanged.add(saveState);
7780

78-
return () => saveState(surveyModel);
79-
}, [saveState, scoreResponses, clearStorage]);
81+
return () => {
82+
saveState(surveyModel);
83+
surveyModel.onComplete.remove(scoreResponses);
84+
surveyModel.onValueChanged.remove(saveState);
85+
surveyModel.onCurrentPageChanged.remove(saveState);
86+
};
87+
}, [saveState, scoreResponses, surveyModel]);
8088

8189
var prevData = window.localStorage.getItem(storageName) || null;
8290
if (prevData) {

surveys/CRT/sha.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"survey":"4ae36797ea34ed7c4cb004447623e22d4a5315bc","score":"4df0f09da3993bdca1a11c534442042d2054d2b2"}
1+
{"survey":"063caac4425b739d6a89b605ed621d2abd2ebd6c","score":"4df0f09da3993bdca1a11c534442042d2054d2b2"}

0 commit comments

Comments
 (0)