DocSpace-client/packages/shared/utils/component-loader.ts
Alexey Safronov 77b5986876 Merge branch 'master' into develop
# Conflicts:
#	packages/client/src/routes/client.js
#	packages/client/src/routes/confirm.js
#	packages/client/src/routes/general.js
#	packages/client/src/routes/portalSettings.js
#	packages/common/package.json
#	packages/components/scrollbar/styled-scrollbar.js
#	packages/editor/package.json
#	packages/shared/package.json
#	packages/shared/utils/component-loader.ts
2024-03-04 17:38:42 +04:00

23 lines
533 B
TypeScript

export default function componentLoader(
lazyComponent: Function,
attemptsLeft: number = 3
) {
return new Promise((resolve, reject) => {
lazyComponent()
.then(resolve)
.catch((error: unknown) => {
// let us retry after 1500 ms
setTimeout(() => {
if (attemptsLeft === 1) {
reject(error);
return;
}
componentLoader(lazyComponent, attemptsLeft - 1).then(
resolve,
reject
);
}, 1500);
});
});
}