UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

15 lines (12 loc) 5.86 kB
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray'; import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator'; import _slicedToArray from '@babel/runtime/helpers/slicedToArray'; import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties'; import { forwardRef, useState, useRef, useEffect } from 'react'; import { RzpGlassMount } from './RzpGlassMount.js'; import { getPresetAssets, resolveConfig, DEFAULT_CDN_PATH, getDefaultAssets } from './utils.js'; import { useMergeRefs } from '../../../utils/useMergeRefs.js'; import { jsx } from 'react/jsx-runtime'; var _excluded=["width","height","className","style","onLoad","onError","assetsPath","gradientMapCanvas","gradientMapSrc","gradientMap2Src","imageSrc"];var FADE_IN_MS=200;var RzpGlass=forwardRef(function RzpGlass(props,forwardedRef){var _presetAssets$videoSr,_ref,_ref2,_presetAssets$centerG,_configProps$edgeFeat;var _props$width=props.width,width=_props$width===void 0?'100%':_props$width,_props$height=props.height,height=_props$height===void 0?'100%':_props$height,className=props.className,style=props.style,onLoad=props.onLoad,onError=props.onError,assetsPathProp=props.assetsPath,gradientMapCanvas=props.gradientMapCanvas,gradientMapSrcProp=props.gradientMapSrc,gradientMap2SrcProp=props.gradientMap2Src,imageSrcProp=props.imageSrc,configProps=_objectWithoutProperties(props,_excluded);var assetsPath=assetsPathProp!=null?assetsPathProp:DEFAULT_CDN_PATH;var defaultAssets=getDefaultAssets(assetsPath);var presetAssets=getPresetAssets(props.preset,assetsPath);var imageSrc=imageSrcProp!=null?imageSrcProp:presetAssets.imageSrc;var videoSrc=imageSrc?undefined:(_presetAssets$videoSr=presetAssets.videoSrc)!=null?_presetAssets$videoSr:defaultAssets.videoSrc;var gradientMapSrc=(_ref=gradientMapSrcProp!=null?gradientMapSrcProp:presetAssets.gradientMapSrc)!=null?_ref:defaultAssets.gradientMapSrc;var gradientMap2Src=(_ref2=gradientMap2SrcProp!=null?gradientMap2SrcProp:presetAssets.gradientMap2Src)!=null?_ref2:defaultAssets.gradientMap2Src;var centerGradientMapSrc=(_presetAssets$centerG=presetAssets.centerGradientMapSrc)!=null?_presetAssets$centerG:defaultAssets.centerGradientMapSrc;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isInitialized=_useState2[0],setIsInitialized=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),error=_useState4[0],setError=_useState4[1];var divRef=useRef(null);var mountRef=useRef(null);useEffect(function(){var init=function(){var _ref3=_asyncToGenerator(function*(){if(!divRef.current||mountRef.current)return;try{var _config$paused;var config=resolveConfig(props,assetsPath);mountRef.current=new RzpGlassMount(divRef.current,{videoSrc:videoSrc,imageSrc:imageSrc,gradientMapSrc:gradientMapSrc,gradientMap2Src:gradientMap2Src,centerGradientMapSrc:centerGradientMapSrc},config);yield mountRef.current.loadAssets();var userWantsPaused=(_config$paused=config.paused)!=null?_config$paused:false;if(!userWantsPaused){mountRef.current.pause();}setIsInitialized(true);setTimeout(function(){if(!mountRef.current)return;if(!userWantsPaused){mountRef.current.play();}onLoad==null?void 0:onLoad();},FADE_IN_MS);}catch(err){var _error=err instanceof Error?err:new Error(String(err));setError(_error);onError==null?void 0:onError(_error);}});return function init(){return _ref3.apply(this,arguments);};}();void init();return function(){var _mountRef$current;(_mountRef$current=mountRef.current)==null?void 0:_mountRef$current.dispose();mountRef.current=null;setIsInitialized(false);};},[assetsPath,videoSrc,imageSrc,gradientMapSrc,gradientMap2Src,centerGradientMapSrc,configProps.preset]);useEffect(function(){if(isInitialized&&mountRef.current){var config=resolveConfig(props,assetsPath);mountRef.current.setUniforms(config);}},[isInitialized,configProps.preset,configProps.inputMin,configProps.inputMax,configProps.modifyGamma,configProps.posterizeLevels,configProps.cycleRepetitions,configProps.phaseShift,configProps.cycleSpeed,configProps.wrapMode,configProps.reverse,configProps.blendWithOriginal,configProps.numSegments,configProps.slitAngle,configProps.displacementX,configProps.displacementY,configProps.enableCenterElement,configProps.centerAnimDuration,configProps.ccBlackPoint,configProps.ccWhitePoint,configProps.ccMidtoneGamma,configProps.ccGamma,configProps.ccContrast,configProps.zoom,configProps.panX,configProps.panY].concat(_toConsumableArray((_configProps$edgeFeat=configProps.edgeFeather)!=null?_configProps$edgeFeat:[0,0,0,0]),[configProps.enableDisplacement,configProps.enableColorama,configProps.enableBloom,configProps.enableLightSweep,configProps.lightIntensity,configProps.lightStartFrame,configProps.paused,configProps.startTime,configProps.endTime,configProps.animateLightIndependently,configProps.animateCycleReps,configProps.cycleRepetitionsStart,configProps.cycleRepetitionsEnd,configProps.cycleRepetitionsStartFrame,configProps.cycleRepetitionsDuration,configProps.gradientMapBlend,configProps.gradientMapBlendDuration]));useEffect(function(){if(isInitialized&&mountRef.current&&gradientMapCanvas){mountRef.current.updateGradientMapTexture(gradientMapCanvas);}},[isInitialized,gradientMapCanvas]);var mergedRef=useMergeRefs(forwardedRef,divRef);var widthStyle=typeof width==='number'?`${width}px`:width;var heightStyle=typeof height==='number'?`${height}px`:height;if(error){return jsx("div",{ref:mergedRef,className:className,style:Object.assign({width:widthStyle,height:heightStyle},style)});}return jsx("div",{ref:mergedRef,className:className,style:Object.assign({width:widthStyle,height:heightStyle,position:'relative',overflow:'hidden',backgroundColor:'transparent',transition:`${FADE_IN_MS}ms opacity`},isInitialized?{opacity:1}:{opacity:0},style)});}); export { RzpGlass }; //# sourceMappingURL=RzpGlass.js.map