fix: add a 300 ms debounce on saveProgress from 'cmi.suspend_data' SCORM API to prevent duplicate entries

This commit is contained in:
Fahid Latheef Alungal
2025-09-07 19:04:16 +05:30
parent 1968f5064d
commit ae79e52486

View File

@@ -107,6 +107,14 @@ const getDataFromLMS = (key) => {
return ''
}
let saveTimeout = null
const debouncedSaveProgress = (scormDetails) => {
clearTimeout(saveTimeout)
saveTimeout = setTimeout(() => {
saveProgress(scormDetails)
}, 300)
}
const saveDataToLMS = (key, value) => {
if (key === 'cmi.core.lesson_status') {
if (value === 'passed') {
@@ -122,7 +130,7 @@ const saveDataToLMS = (key, value) => {
})
}
} else if (key === 'cmi.suspend_data' && !isSuccessfullyCompleted.value) {
saveProgress({
debouncedSaveProgress({
is_complete: false,
scorm_content: value,
})