UNPKG

@zohodesk/dot

Version:

In this Library, we Provide Some Basic Components to Build Your Application

55 lines (53 loc) 1.86 kB
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;