@zohodesk/dot
Version:
In this Library, we Provide Some Basic Components to Build Your Application
55 lines (53 loc) • 1.86 kB
JavaScript
import { useLayoutEffect } from 'react';
import useDownloadAssetsAndSetAttr from "./useDownloadAssetsAndSetAttr";
import '@zohodesk/components/assets/Contrast/lightContrastLightness.module.css';
import '@zohodesk/components/assets/Contrast/darkContrastLightness.module.css';
import '@zohodesk/components/assets/Contrast/pureDarkContrastLightness.module.css';
import '@zohodesk/variables/assets/colorVariables.module.css';
import '@zohodesk/variables/assets/dotVariables.module.css';
import '@zohodesk/components/es/common/basic.module.css';
import '@zohodesk/variables/lib/fontFamilyVariables.module.css';
import '@zohodesk/components/lib/common/boxShadow.module.css';
import "../../common/dot_boxShadow.module.css";
function useDotProvider(_ref) {
let {
themeAppearance,
themeColor,
baseZoomUnit,
baseFontUnit,
getProviderElement,
zoomUnitVariable,
fontUnitVariable,
themeAppearanceAttr,
themeColorAttr,
onAssetsDownloadSuccess,
getAssetsPromises
} = _ref;
const assetsPromises = useDownloadAssetsAndSetAttr({
themeAppearance,
themeColor,
baseZoomUnit,
baseFontUnit,
getProviderElement,
zoomUnitVariable,
fontUnitVariable,
themeAppearanceAttr,
themeColorAttr
});
const {
themeAppearancePromise,
themeColorPromise,
zoomSizePromise,
fontSizePromise
} = assetsPromises;
const allPromises = [...themeAppearancePromise, ...themeColorPromise, zoomSizePromise, fontSizePromise];
useLayoutEffect(() => {
Promise.all(allPromises).then(() => {
typeof onAssetsDownloadSuccess === 'function' && onAssetsDownloadSuccess();
}).catch(error => {
console.error('Error loading assets:', error);
});
typeof getAssetsPromises === 'function' && getAssetsPromises(assetsPromises);
}, [...allPromises]);
}
export default useDotProvider;