diff --git a/frontend/src/_helpers/editorHelpers.js b/frontend/src/_helpers/editorHelpers.js index 6702d30f29..342f26b1fc 100644 --- a/frontend/src/_helpers/editorHelpers.js +++ b/frontend/src/_helpers/editorHelpers.js @@ -52,6 +52,7 @@ import { BoundedBox } from '@/Editor/Components/BoundedBox/BoundedBox'; import { isPDFSupported } from '@/_helpers/appUtils'; import { resolveWidgetFieldValue } from '@/_helpers/utils'; import { useEditorStore } from '@/_stores/editorStore'; +import './requestIdleCallbackPolyfill'; export function memoizeFunction(func) { const cache = new Map(); diff --git a/frontend/src/_helpers/requestIdleCallbackPolyfill.js b/frontend/src/_helpers/requestIdleCallbackPolyfill.js new file mode 100644 index 0000000000..889223ace5 --- /dev/null +++ b/frontend/src/_helpers/requestIdleCallbackPolyfill.js @@ -0,0 +1,20 @@ +// Polyfill for window.requestIdleCallback to support Safari browser +window.requestIdleCallback = + window.requestIdleCallback || + function (cb) { + var start = Date.now(); + return setTimeout(function () { + cb({ + didTimeout: false, + timeRemaining: function () { + return Math.max(0, 50 - (Date.now() - start)); + }, + }); + }, 1); + }; + +window.cancelIdleCallback = + window.cancelIdleCallback || + function (id) { + clearTimeout(id); + };