{"version":3,"file":"CoinChartWithCache.CPso_FIp.mjs","names":["useState","useRef","useMemo","_Fragment"],"sources":["https:/framerusercontent.com/modules/q1u15QPpHJjDJEpwHigA/23lqTN69CIyi7Q6Qzh21/CoinChartWithCache.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useMemo,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const PROXY_BASE=\"https://retired.com/api/prices\";// MATIC was rebranded to POL upstream — send POL to the API.\nconst TICKER_ALIAS={MATIC:\"POL\"};const SCHEMA_VERSION=2// bump to invalidate old-shape cache entries\n;const CACHE_TTL=5*60*1e3// 5 minutes (successful data)\n;const NEG_TTL=20*1e3// 20 seconds (remember a failure, avoid re-storm)\n;const MAX_CONCURRENT=2// in-flight fetches across all cards\n;const MAX_ATTEMPTS=6;const INITIAL_JITTER=1500// spread the mount stampede\n;const memoryCache={};const inFlight={};const sleep=ms=>new Promise(r=>setTimeout(r,ms));function backoff(attempt){const base=Math.min(600*Math.pow(2,attempt),5e3);return base+Math.random()*400// jitter to de-sync retries\n;}// ─── Concurrency limiter (module-global) ────────────────────────\nlet active=0;const waiters=[];function acquire(){return new Promise(resolve=>{if(active<MAX_CONCURRENT){active++;resolve();}else{waiters.push(resolve);}});}function release(){const next=waiters.shift();if(next)next()// hand off the slot (active unchanged)\n;else active--;}function readLocalStorage(key){try{const raw=localStorage.getItem(key);if(!raw)return null;return JSON.parse(raw);}catch{return null;}}function writeLocalStorage(key,entry){try{localStorage.setItem(key,JSON.stringify(entry));}catch{// storage full or unavailable — memory cache still works\n}}// Public endpoint: no subscription key. Retries transient 5xx with\n// jittered backoff under a global concurrency cap; fails fast on 4xx.\nasync function fetchRaw(ticker){const url=`${PROXY_BASE}/market-assets/${ticker}/price-history`;// de-sync the initial mount burst across all cards\nawait sleep(Math.random()*INITIAL_JITTER);for(let i=0;i<MAX_ATTEMPTS;i++){await acquire();let res;try{res=await fetch(url,{headers:{Accept:\"application/json\"}});}catch(netErr){release();if(i===MAX_ATTEMPTS-1)throw netErr;await sleep(backoff(i));continue;}release();if(res.status>=500){if(i===MAX_ATTEMPTS-1)throw new Error(`HTTP ${res.status}`);await sleep(backoff(i));continue;}if(!res.ok)throw new Error(`HTTP ${res.status}`)// 4xx → fail fast\n;return res.json();}}function fetchAggregates(ticker){const key=`mpi_cache_v${SCHEMA_VERSION}_${ticker}`;const now=Date.now();// 1. Memory (fresh success, or recent failure → cooldown)\nconst mem=memoryCache[key];if(mem&&mem.v===SCHEMA_VERSION){if(mem.ok&&now-mem.ts<CACHE_TTL)return Promise.resolve(mem.data);if(!mem.ok&&now-mem.ts<NEG_TTL)return Promise.reject(new Error(\"cooldown\"));}// 2. localStorage (successful entries only)\nif(typeof window!==\"undefined\"){const stored=readLocalStorage(key);if(stored&&stored.v===SCHEMA_VERSION&&stored.ok&&now-stored.ts<CACHE_TTL){memoryCache[key]=stored;return Promise.resolve(stored.data);}}// 3. Share an in-flight request for the same ticker\nif(key in inFlight)return inFlight[key];// 4. Fetch fresh\ninFlight[key]=fetchRaw(ticker).then(data=>{const entry={v:SCHEMA_VERSION,ok:true,data,ts:Date.now()};memoryCache[key]=entry;if(typeof window!==\"undefined\")writeLocalStorage(key,entry);return data;}).catch(err=>{// negative cache: brief cooldown so all cards don't re-storm\nmemoryCache[key]={v:SCHEMA_VERSION,ok:false,ts:Date.now()};throw err;}).finally(()=>{delete inFlight[key];});return inFlight[key];}// ────────────────────────────────────────────────────────────────\nconst COIN_META={BTC:{name:\"Bitcoin\",logo:\"https://assets.coingecko.com/coins/images/1/small/bitcoin.png\"},ETH:{name:\"Ethereum\",logo:\"https://assets.coingecko.com/coins/images/279/small/ethereum.png\"},SOL:{name:\"Solana\",logo:\"https://assets.coingecko.com/coins/images/4128/small/solana.png\"},DOGE:{name:\"Dogecoin\",logo:\"https://assets.coingecko.com/coins/images/5/small/dogecoin.png\"},XRP:{name:\"XRP\",logo:\"https://assets.coingecko.com/coins/images/44/small/xrp-symbol-white-128.png\"},ADA:{name:\"Cardano\",logo:\"https://assets.coingecko.com/coins/images/975/small/cardano.png\"},AVAX:{name:\"Avalanche\",logo:\"https://assets.coingecko.com/coins/images/12559/small/Avalanche_Circle_RedWhite_Trans.png\"},DOT:{name:\"Polkadot\",logo:\"https://assets.coingecko.com/coins/images/12171/small/polkadot.png\"},POL:{name:\"Polygon\",logo:\"https://assets.coingecko.com/coins/images/4713/small/polygon.png\"},MATIC:{name:\"Polygon\",logo:\"https://assets.coingecko.com/coins/images/4713/small/polygon.png\"},LINK:{name:\"Chainlink\",logo:\"https://assets.coingecko.com/coins/images/877/small/chainlink-new-logo.png\"},XLM:{name:\"Stellar\",logo:\"https://assets.coingecko.com/coins/images/100/small/fmpFRHHQ_400x400.jpg\"},LTC:{name:\"Litecoin\",logo:\"https://assets.coingecko.com/coins/images/2/small/litecoin.png\"},SHIB:{name:\"Shiba Inu\",logo:\"https://assets.coingecko.com/coins/images/11939/small/shiba.png\"},SUI:{name:\"Sui\",logo:\"https://assets.coingecko.com/coins/images/26375/small/sui-ocean-square.png\"},UNI:{name:\"Uniswap Protocol Token\",logo:\"https://assets.coingecko.com/coins/images/12504/small/uniswap-logo.png\"}};function smoothPath(points){if(points.length<2)return\"\";let d=`M ${points[0][0]} ${points[0][1]}`;for(let i=0;i<points.length-1;i++){const cpx=(points[i][0]+points[i+1][0])/2;d+=` C ${cpx} ${points[i][1]}, ${cpx} ${points[i+1][1]}, ${points[i+1][0]} ${points[i+1][1]}`;}return d;}const shimmerKeyframes=`\n  @keyframes mpi-shimmer {\n    0% { background-position: -400px 0; }\n    100% { background-position: 400px 0; }\n  }\n  `;function Skeleton({width,height,radius=6,isDark}){const base=isDark?\"rgba(255,255,255,0.08)\":\"rgba(0,0,0,0.06)\";const highlight=isDark?\"rgba(255,255,255,0.16)\":\"rgba(0,0,0,0.10)\";return /*#__PURE__*/_jsx(\"div\",{style:{width,height,borderRadius:radius,background:`linear-gradient(90deg, ${base} 0px, ${highlight} 200px, ${base} 400px)`,backgroundSize:\"800px 100%\",animation:\"mpi-shimmer 1.4s ease-in-out infinite\"}});}export default function CoinChartWithCache(props){const{ticker,color,strokeWidth,opacity,theme,style,href}=props;const[prices,setPrices]=useState([]);const[coinData,setCoinData]=useState({name:\"\",price:\"\",change:\"\",logo:\"\"});const[loading,setLoading]=useState(true);const[hovered,setHovered]=useState(false);const pressPos=useRef(null);const isDark=theme===\"Dark\";const textColor=isDark?\"#FFFFFF\":\"#000000\";const subTextColor=isDark?\"rgba(255,255,255,0.6)\":\"rgba(0,0,0,0.6)\";const bgColor=isDark?\"rgba(255, 255, 255, 0.1)\":\"#FFFFFF\";const bgColorHover=isDark?\"rgba(255, 255, 255, 0.18)\":\"#F5F5F5\";const[gradientId]=useState(()=>`grad-${Math.random().toString(36).slice(2,11)}`);const gradientUrl=typeof window!==\"undefined\"?`url(${window.location.href.split(\"#\")[0]}#${gradientId})`:`url(#${gradientId})`;useEffect(()=>{let cancelled=false;const raw=ticker.toUpperCase();const resolved=TICKER_ALIAS[raw]||raw;const meta=COIN_META[resolved]||COIN_META[raw]||{name:resolved,logo:\"\"};setLoading(true);fetchAggregates(resolved).then(json=>{if(cancelled)return;const asset=json?.data;const dayInterval=(asset?.historicPrices||[]).find(h=>h.intervalInDays===1);const closes=(dayInterval?.prices||[]).map(p=>p.value);if(!asset||closes.length<2){setLoading(false);return;}const latest=typeof asset.currentPrice===\"number\"?asset.currentPrice:closes[closes.length-1];const pct=typeof asset.twentyFourHourPriceChange===\"number\"?asset.twentyFourHourPriceChange:closes[0]?(closes[closes.length-1]-closes[0])/closes[0]*100:0;setPrices(closes);setCoinData({name:meta.name,logo:meta.logo,price:latest.toLocaleString(\"en-US\",{style:\"currency\",currency:\"USD\"}),change:pct.toFixed(1)});setLoading(false);}).catch(err=>{if(cancelled)return;if(err?.message!==\"cooldown\"){console.error(\"Crypto price fetch failed:\",err);}setLoading(false);});return()=>{cancelled=true;};},[ticker]);const{linePath,areaPath}=useMemo(()=>{const width=600,height=150;if(prices.length<2)return{linePath:\"\",areaPath:\"\"};const min=Math.min(...prices);const max=Math.max(...prices);const range=max-min||1;const points=prices.map((price,i)=>[i/(prices.length-1)*width,height-(price-min)/range*height]);const line=smoothPath(points);return{linePath:line,areaPath:`${line} L ${width} ${height} L 0 ${height} Z`};},[prices]);const changeNum=Number(coinData.change);const changeColor=changeNum>0?\"#22C55E\":changeNum<0?\"#EF4444\":subTextColor;const card=/*#__PURE__*/_jsxs(\"div\",{onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),style:{...containerStyle,...style,backgroundColor:hovered?bgColorHover:bgColor,color:textColor,boxShadow:isDark?\"none\":\"0 10px 30px rgba(0,0,0,0.05)\",transition:\"background-color 0.2s ease\",cursor:href?\"pointer\":\"default\"},children:[/*#__PURE__*/_jsx(\"style\",{children:shimmerKeyframes}),/*#__PURE__*/_jsxs(\"div\",{style:headerStyle,children:[loading?/*#__PURE__*/_jsx(Skeleton,{width:40,height:40,radius:\"50%\",isDark:isDark}):coinData.logo&&/*#__PURE__*/_jsx(\"img\",{src:coinData.logo,alt:ticker,style:logoStyle,draggable:false}),/*#__PURE__*/_jsx(\"div\",{style:titleContainerStyle,children:loading?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Skeleton,{width:90,height:18,isDark:isDark}),/*#__PURE__*/_jsx(Skeleton,{width:40,height:12,isDark:isDark})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:18,fontWeight:600},children:coinData.name}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,color:subTextColor},children:ticker.toUpperCase()})]})})]}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:80,overflow:\"visible\"},children:loading?/*#__PURE__*/_jsx(Skeleton,{width:\"100%\",height:\"100%\",radius:12,isDark:isDark}):/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 600 150\",preserveAspectRatio:\"none\",style:{width:\"100%\",height:\"100%\",overflow:\"visible\"},children:[/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"linearGradient\",{id:gradientId,x1:\"0\",y1:\"0\",x2:\"0\",y2:\"1\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:color,stopOpacity:opacity}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:color,stopOpacity:\"0.01\"})]})}),/*#__PURE__*/_jsx(\"path\",{d:areaPath,fill:gradientUrl}),/*#__PURE__*/_jsx(\"path\",{d:linePath,fill:\"none\",stroke:color,strokeWidth:strokeWidth,strokeLinecap:\"round\",strokeLinejoin:\"round\"})]})}),/*#__PURE__*/_jsx(\"div\",{style:footerStyle,children:loading?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Skeleton,{width:110,height:20,isDark:isDark}),/*#__PURE__*/_jsx(Skeleton,{width:80,height:16,isDark:isDark})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:20},children:coinData.price}),/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:16,color:subTextColor},children:[/*#__PURE__*/_jsxs(\"span\",{style:{color:changeColor},children:[changeNum>0?\"+\":\"\",coinData.change,\"%\"]}),\" / 24h\"]})]})})]});return href?/*#__PURE__*/_jsx(\"a\",{href:href,draggable:false,onPointerDown:e=>{pressPos.current={x:e.clientX,y:e.clientY};},onClick:e=>{const start=pressPos.current;pressPos.current=null;if(!start)return;const dx=e.clientX-start.x;const dy=e.clientY-start.y;if(Math.hypot(dx,dy)>8){e.preventDefault();}},style:{textDecoration:\"none\",color:\"inherit\",display:\"block\"},children:card}):card;}const containerStyle={boxSizing:\"border-box\",minWidth:0,height:\"min-content\",display:\"flex\",flexDirection:\"column\",padding:20,overflow:\"hidden\",gap:20,borderRadius:20};const headerStyle={display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:12,width:\"100%\"};const logoStyle={width:40,height:40,borderRadius:\"50%\"};const titleContainerStyle={display:\"flex\",flexDirection:\"column\",gap:4};const footerStyle={display:\"flex\",flexDirection:\"column\",gap:4};addPropertyControls(CoinChartWithCache,{ticker:{type:ControlType.String,defaultValue:\"BTC\",title:\"Ticker\"},theme:{type:ControlType.Enum,options:[\"Dark\",\"Light\"],defaultValue:\"Dark\",title:\"Theme\"},color:{type:ControlType.Color,defaultValue:\"#226CFF\",title:\"Chart Color\"},strokeWidth:{type:ControlType.Number,defaultValue:3,min:1,max:10,title:\"Thickness\"},opacity:{type:ControlType.Number,defaultValue:.3,min:0,max:1,step:.1,title:\"Fill Opacity\"},href:{type:ControlType.Link,title:\"Detail Link\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CoinChartWithCache\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CoinChartWithCache.map"],"mappings":"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"}