@source-bug/magic-design-react
Version:
A component library that can achieve magic effects
2 lines (1 loc) • 1.19 kB
JavaScript
"use strict";var h=require("react"),j=require("../src/hooks/usePrevious.js"),p=require("../src/hooks/useSetState.js"),e=require("./Weather.module.js"),v=require("./cloudy/Cloudy.js"),N=require("./nighty/Nighty.js"),f=require("./rainy/Rainy.js"),w=require("./snowy/Snowy.js"),C=require("./sunny/Sunny.js"),r=require("../_virtual/jsx-runtime.js");const o={sunny:{class:e.default["weather-sunny"],component:C},cloudy:{class:e.default["weather-cloudy"],component:v},rainy:{class:e.default["weather-rainy"],component:f},snowy:{class:e.default["weather-snowy"],component:w},nighty:{class:e.default["weather-nighty"],component:N}},S=({type:a,duration:l=3600,iconDuration:t,className:c=""})=>{const{class:m,component:i}=o[a],s=j(a),{component:y}=o[s||a],[n,u]=p.useSetState({preClassName:"",curClassName:""});h.useEffect(()=>{!s||u({preClassName:"animate__fadeOut",curClassName:"animate__fadeIn"})},[s,a,u]);const d={"--animate-duration":`${t!=null?t:l/2}ms`};return r.jsxs("div",{className:`${e.default["weather-container"]} ${m} ${c}`,style:d,children:[s?r.jsx(y,{className:`animate__animated ${n.preClassName}`}):null,r.jsx(i,{className:`animate__animated ${n.curClassName}`})]})};module.exports=S;