{"ast":null,"code":"var _jsxFileName = \"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/expo/src/environment/DevLoadingView.web.tsx\";\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport NativeEventEmitter from \"react-native-web/dist/exports/NativeEventEmitter\";\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst MIN_DURATION = 400;\nconst ANIMATION_DURATION = 150;\nconst emitter = new NativeEventEmitter({\n  addListener() {},\n  removeListeners() {}\n});\nexport default function DevLoadingView() {\n  const show = useFastRefresh();\n  const timer = useRef(null);\n  const toast = useMemo(() => _jsxDEV(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 48 48\",\n    width: 24,\n    height: 24,\n    children: _jsxDEV(\"path\", {\n      fill: \"#ECEDEE\",\n      d: \"M36.764 1.716a1.477 1.477 0 0 0-2.325-.268L11.721 24.609c-1.464 1.493-.438 4.064 1.623 4.064h4.484a1 1 0 0 1 .889 1.46l-7.54 14.591a1.588 1.588 0 0 0 .059 1.56 1.477 1.477 0 0 0 2.325.268l22.718-23.161c1.464-1.493.438-4.064-1.623-4.064H28.53l8.295-16.051a1.588 1.588 0 0 0-.06-1.56Z\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 20,\n      columnNumber: 9\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 19,\n    columnNumber: 7\n  }, this), []);\n  const style = useMemo(() => _jsxDEV(\"style\", {\n    dangerouslySetInnerHTML: {\n      __html: `\n.__expo_fast_refresh {  \n  position: fixed;\n  pointer-events: none;\n  bottom: 8px;\n  left: 8px;\n  z-index: 9999;\n  display: flex;\n  background-color: #1B1D1E;\n  border: 1px solid #4D5155;\n  padding: 8px;\n  border-radius: 8px;\n  transition: all ${ANIMATION_DURATION}ms;\n  opacity: 0; \n  filter: blur(4px); \n  transform: translateY(20%);\n}\n\n.__expo_fast_refresh_show { opacity: 1; filter: blur(0); transform: scale(1); }\n`\n    }\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 30,\n    columnNumber: 7\n  }, this), []);\n  const [isAnimating, setIsAnimating] = useState(false);\n  const [animationClass, setAnimationClass] = useState('');\n  const refreshIndicator = useMemo(() => _jsxDEV(_Fragment, {\n    children: [style, _jsxDEV(\"div\", {\n      className: '__expo_fast_refresh ' + animationClass,\n      children: toast\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 66,\n      columnNumber: 9\n    }, this)]\n  }, void 0, true), [animationClass, style, toast]);\n  useEffect(() => {\n    timer.current && clearTimeout(timer.current);\n    if (show) {\n      setAnimationClass('__expo_fast_refresh_show');\n    } else {\n      setIsAnimating(true);\n      setAnimationClass('');\n      timer.current = setTimeout(() => {\n        setIsAnimating(false);\n      }, MIN_DURATION - ANIMATION_DURATION);\n    }\n    return () => {\n      timer.current && clearTimeout(timer.current);\n    };\n  }, [show]);\n  if (!isAnimating && !show) {\n    return null;\n  }\n  return _jsxDEV(_Fragment, {\n    children: refreshIndicator\n  }, void 0, false);\n}\nfunction useFastRefresh() {\n  const [isShown, setShown] = useState(false);\n  const duration = useRef(null);\n  const timeout = useRef(null);\n  useEffect(() => {\n    function handleShowMessage() {\n      setShown(true);\n      duration.current = Date.now();\n    }\n    function handleHide() {\n      if (timeout.current) {\n        return;\n      }\n      const timeVisible = duration.current ? Date.now() - duration.current : 0;\n      const min = Math.max(0, MIN_DURATION - timeVisible);\n      timeout.current = setTimeout(() => {\n        timeout.current = null;\n        setShown(false);\n      }, min);\n    }\n    const show = emitter.addListener('devLoadingView:showMessage', handleShowMessage);\n    const hide = emitter.addListener('devLoadingView:hide', handleHide);\n    return () => {\n      if (timeout.current) {\n        clearTimeout(timeout.current);\n        timeout.current = null;\n      }\n      show.remove();\n      hide.remove();\n    };\n  }, [emitter]);\n  return isShown;\n}","map":{"version":3,"names":["React","useEffect","useMemo","useRef","useState","NativeEventEmitter","jsxDEV","_jsxDEV","Fragment","_Fragment","MIN_DURATION","ANIMATION_DURATION","emitter","addListener","removeListeners","DevLoadingView","show","useFastRefresh","timer","toast","xmlns","viewBox","width","height","children","fill","d","fileName","_jsxFileName","lineNumber","columnNumber","style","dangerouslySetInnerHTML","__html","isAnimating","setIsAnimating","animationClass","setAnimationClass","refreshIndicator","className","current","clearTimeout","setTimeout","isShown","setShown","duration","timeout","handleShowMessage","Date","now","handleHide","timeVisible","min","Math","max","hide","remove"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/expo/src/environment/DevLoadingView.web.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { NativeEventEmitter } from 'react-native';\n\nconst MIN_DURATION = 400;\nconst ANIMATION_DURATION = 150;\n\nconst emitter = new NativeEventEmitter({\n  addListener() {},\n  removeListeners() {},\n});\n\nexport default function DevLoadingView() {\n  const show = useFastRefresh();\n\n  const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n  const toast = useMemo(\n    () => (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" width={24} height={24}>\n        <path\n          fill=\"#ECEDEE\"\n          d=\"M36.764 1.716a1.477 1.477 0 0 0-2.325-.268L11.721 24.609c-1.464 1.493-.438 4.064 1.623 4.064h4.484a1 1 0 0 1 .889 1.46l-7.54 14.591a1.588 1.588 0 0 0 .059 1.56 1.477 1.477 0 0 0 2.325.268l22.718-23.161c1.464-1.493.438-4.064-1.623-4.064H28.53l8.295-16.051a1.588 1.588 0 0 0-.06-1.56Z\"\n        />\n      </svg>\n    ),\n    []\n  );\n  const style = useMemo(\n    () => (\n      <style\n        dangerouslySetInnerHTML={{\n          __html: `\n.__expo_fast_refresh {  \n  position: fixed;\n  pointer-events: none;\n  bottom: 8px;\n  left: 8px;\n  z-index: 9999;\n  display: flex;\n  background-color: #1B1D1E;\n  border: 1px solid #4D5155;\n  padding: 8px;\n  border-radius: 8px;\n  transition: all ${ANIMATION_DURATION}ms;\n  opacity: 0; \n  filter: blur(4px); \n  transform: translateY(20%);\n}\n\n.__expo_fast_refresh_show { opacity: 1; filter: blur(0); transform: scale(1); }\n`,\n        }}\n      />\n    ),\n    []\n  );\n\n  const [isAnimating, setIsAnimating] = useState(false);\n  const [animationClass, setAnimationClass] = useState('');\n\n  const refreshIndicator = useMemo(\n    () => (\n      <>\n        {style}\n\n        <div className={'__expo_fast_refresh ' + animationClass}>{toast}</div>\n      </>\n    ),\n    [animationClass, style, toast]\n  );\n\n  useEffect(() => {\n    timer.current && clearTimeout(timer.current);\n\n    if (show) {\n      setAnimationClass('__expo_fast_refresh_show');\n    } else {\n      setIsAnimating(true);\n      setAnimationClass('');\n      timer.current = setTimeout(() => {\n        setIsAnimating(false);\n      }, MIN_DURATION - ANIMATION_DURATION);\n    }\n    return () => {\n      timer.current && clearTimeout(timer.current);\n    };\n  }, [show]);\n\n  if (!isAnimating && !show) {\n    return null;\n  }\n\n  return <>{refreshIndicator}</>;\n}\n\nfunction useFastRefresh() {\n  const [isShown, setShown] = useState(false);\n  const duration = useRef<number | null>(null);\n  const timeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n  useEffect(() => {\n    function handleShowMessage() {\n      setShown(true);\n      duration.current = Date.now();\n    }\n\n    function handleHide() {\n      // Bail out if the timeout is already set\n      if (timeout.current) {\n        return;\n      }\n\n      const timeVisible = duration.current ? Date.now() - duration.current : 0;\n\n      const min = Math.max(0, MIN_DURATION - timeVisible);\n\n      timeout.current = setTimeout(() => {\n        timeout.current = null;\n        setShown(false);\n      }, min);\n    }\n    const show = emitter.addListener('devLoadingView:showMessage', handleShowMessage);\n    const hide = emitter.addListener('devLoadingView:hide', handleHide);\n    return () => {\n      if (timeout.current) {\n        clearTimeout(timeout.current);\n        timeout.current = null;\n      }\n      show.remove();\n      hide.remove();\n    };\n  }, [emitter]);\n\n  return isShown;\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}