{"version":3,"file":"QueueNotice.16c41oDa.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/wxvn97DJHD4Ww7YO9XwH/o56vRrH3corudj5h3Stb/QueueNotice.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// ─────────────────────────────────────────────────────────────────────────────\n// PrintedWaste GFN queue — per-tier warning notice (Thai)\n//\n// Renders:   คิวล่าสุด: {position} ({minutes} นาที)\n//\n// Drop one on each price card and set the \"Tier\" property. By default it stays\n// HIDDEN while the queue is short (≤ threshold) and only appears when it's long\n// enough to be worth warning about. Threshold defaults to 50.\n// ─────────────────────────────────────────────────────────────────────────────\nconst API_URL=\"https://api.printedwaste.com/gfn/queue\";const PROXY_URL=url=>`https://api.codetabs.com/v1/proxy/?quest=${encodeURIComponent(url)}`;const REFRESH_MS=6e4;const SERVER={Lite:\"NPA-BPC-BKK-01\",Performance:\"NPA-BPC-BKK-01-PREF\",Ultimate:\"NPA-BPC-BKK-01-ULT\"};// Shared store: one fetch + one timer for every notice on the page ─────────────\nconst store={data:null,subs:new Set,started:false,emit(){this.subs.forEach(fn=>fn());},subscribe(fn){this.subs.add(fn);this.start();return()=>this.subs.delete(fn);},start(){if(this.started)return;this.started=true;this.load();setInterval(()=>this.load(),REFRESH_MS);},async load(){try{let json;try{const res=await fetch(API_URL,{headers:{company:\"bro.game\"}});if(!res.ok)throw new Error(`HTTP ${res.status}`);json=await res.json();}catch{const res=await fetch(PROXY_URL(API_URL));if(!res.ok)throw new Error(`HTTP ${res.status}`);json=await res.json();}this.data=json?.data??{};this.emit();}catch{// keep last good data; retry next tick\n}}};function useQueue(){const[,force]=useState(0);useEffect(()=>store.subscribe(()=>force(n=>n+1)),[]);return store.data;}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any\n */export default function QueueNotice(props){const{tier,threshold,hideWhenBelow,queueLabel,unitLabel,textColor,fontSize,fontWeight,font,align}=props;const data=useQueue();const entry=data?.[SERVER[tier]];const pos=entry?.QueuePosition;const minutes=entry?.eta&&entry.eta>0?Math.round(entry.eta/6e4):undefined;// Hide while loading or when the queue is short enough not to warn.\nif(hideWhenBelow&&(pos==null||pos<=threshold))return null;const wrapStyle={display:\"flex\",flexDirection:\"column\",alignItems:align===\"center\"?\"center\":align===\"right\"?\"flex-end\":\"flex-start\",textAlign:align,fontFamily:font,fontSize,fontWeight,color:textColor,lineHeight:1.4,width:\"100%\"};return /*#__PURE__*/_jsx(\"div\",{style:wrapStyle,children:/*#__PURE__*/_jsxs(\"span\",{children:[queueLabel,\": \",pos??\"…\",minutes!=null?` (${minutes} ${unitLabel})`:\"\"]})});}QueueNotice.defaultProps={tier:\"Ultimate\",threshold:0,hideWhenBelow:true,queueLabel:\"คิวล่าสุด\",unitLabel:\"นาที\",textColor:\"#ffffff\",fontSize:14,fontWeight:500,font:\"IBM Plex Sans Thai, sans-serif\",align:\"left\"};addPropertyControls(QueueNotice,{tier:{type:ControlType.Enum,title:\"Tier\",options:[\"Lite\",\"Performance\",\"Ultimate\"],defaultValue:\"Ultimate\"},threshold:{type:ControlType.Number,title:\"Warn above\",defaultValue:0,min:0,max:1e3,step:1},hideWhenBelow:{type:ControlType.Boolean,title:\"Hide if short\",defaultValue:true,enabledTitle:\"Hide\",disabledTitle:\"Always\"},queueLabel:{type:ControlType.String,title:\"Label\",defaultValue:\"คิวล่าสุด\"},unitLabel:{type:ControlType.String,title:\"Unit\",defaultValue:\"นาที\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#ffffff\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:14,min:8,max:48},fontWeight:{type:ControlType.Enum,title:\"Weight\",options:[300,400,500,600,700],optionTitles:[\"Light\",\"Regular\",\"Medium\",\"Semibold\",\"Bold\"],defaultValue:500},font:{type:ControlType.String,title:\"Font\",defaultValue:\"Inter, sans-serif\"},align:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QueueNotice\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QueueNotice.map"],"mappings":"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"}