{"version":3,"file":"BiddingStatus.DZdhUYO2.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/cOyaVF6cnBjoYLQsT6Yx/9v5DO81ei3Btu3l5jkEM/BiddingStatus.js"],"sourcesContent":["import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// Helper function to convert timezone names to IANA timezone strings\nfunction getTimezoneString(timezone){const timezoneMap={atlantic:\"America/Halifax\",eastern:\"America/New_York\",central:\"America/Chicago\",mountain:\"America/Denver\",pacific:\"America/Los_Angeles\"};return timezoneMap[timezone]||\"America/New_York\";}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function AuctionStatus(props){const{startTime,endTime,timezone,countdownState,openState,closedState}=props;const[currentState,setCurrentState]=useState(\"closed\");const isStatic=useIsStaticRenderer();const determineState=adjustedNow=>{const start=new Date(startTime);const end=new Date(endTime);if(adjustedNow<start){return\"countdown\"// Before auction starts\n;}else if(adjustedNow>=start&&adjustedNow<=end){return\"open\"// During auction\n;}else{return\"closed\"// After auction ends\n;}};useEffect(()=>{if(isStatic)return;let timeoutId=null;const checkAndScheduleNext=()=>{// Get current time in UTC\nconst nowUTC=new Date;// Convert start and end times to the specified timezone for comparison\n// We need to get the timezone offset and adjust accordingly\nconst timezoneString=getTimezoneString(timezone);// Create dates in the specified timezone\nconst startInTimezone=new Date(startTime+\" \"+timezoneString.split(\"/\")[1]);const endInTimezone=new Date(endTime+\" \"+timezoneString.split(\"/\")[1]);// Get current time in the specified timezone\nconst nowInTimezone=new Date(nowUTC.toLocaleString(\"en-US\",{timeZone:timezoneString}));// Get the timezone offset difference\nconst localOffset=nowUTC.getTimezoneOffset();const targetOffset=(nowUTC.getTime()-nowInTimezone.getTime())/(1e3*60);const offsetDiff=targetOffset-localOffset;// Adjust the current time by the offset difference\nconst adjustedNow=new Date(nowUTC.getTime()+offsetDiff*60*1e3);const newState=determineState(adjustedNow);startTransition(()=>{setCurrentState(newState);});// Calculate milliseconds until the start of the next minute\nconst secondsRemaining=60-adjustedNow.getSeconds();const millisecondsUntilNextMinute=secondsRemaining*1e3-adjustedNow.getMilliseconds();// Schedule the next check\ntimeoutId=setTimeout(checkAndScheduleNext,millisecondsUntilNextMinute>0?millisecondsUntilNextMinute:6e4// If it's already the exact minute, schedule for a full minute\n);};// Initial check and schedule\ncheckAndScheduleNext();// Cleanup function\nreturn()=>{if(timeoutId){clearTimeout(timeoutId);}};},[startTime,endTime,timezone,isStatic]);// For static rendering, show a preview state\nif(isStatic){const nowUTC=new Date;const timezoneString=getTimezoneString(timezone);const nowInTimezone=new Date(nowUTC.toLocaleString(\"en-US\",{timeZone:timezoneString}));// Get the timezone offset difference\nconst localOffset=nowUTC.getTimezoneOffset();const targetOffset=(nowUTC.getTime()-nowInTimezone.getTime())/(1e3*60);const offsetDiff=targetOffset-localOffset;// Adjust the current time by the offset difference\nconst adjustedNow=new Date(nowUTC.getTime()+offsetDiff*60*1e3);const staticState=determineState(adjustedNow);switch(staticState){case\"countdown\":return /*#__PURE__*/_jsx(_Fragment,{children:countdownState});case\"open\":return /*#__PURE__*/_jsx(_Fragment,{children:openState});case\"closed\":default:return /*#__PURE__*/_jsx(_Fragment,{children:closedState});}}// Render based on current state\nswitch(currentState){case\"countdown\":return /*#__PURE__*/_jsx(_Fragment,{children:countdownState});case\"open\":return /*#__PURE__*/_jsx(_Fragment,{children:openState});case\"closed\":default:return /*#__PURE__*/_jsx(_Fragment,{children:closedState});}}addPropertyControls(AuctionStatus,{startTime:{type:ControlType.Date,title:\"Auction Start Time\",displayTime:true},endTime:{type:ControlType.Date,title:\"Auction End Time\",displayTime:true},timezone:{type:ControlType.Enum,title:\"Timezone\",options:[\"atlantic\",\"eastern\",\"central\",\"mountain\",\"pacific\"],optionTitles:[\"Atlantic\",\"Eastern\",\"Central\",\"Mountain\",\"Pacific\"],defaultValue:\"eastern\"},countdownState:{type:ControlType.Slot,title:\"Countdown State\"},openState:{type:ControlType.Slot,title:\"Open State\"},closedState:{type:ControlType.Slot,title:\"Closed State\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AuctionStatus\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BiddingStatus.map"],"mappings":"6LACA,SAAS,EAAkB,EAAS,CAA6J,MAAO,CAAhJ,SAAS,kBAAkB,QAAQ,mBAAmB,QAAQ,kBAAkB,SAAS,iBAAiB,QAAQ,qBAAwC,EAAE,IAAW,kBAAmB,CAG/O,SAAwB,EAAc,EAAM,CAAC,GAAK,CAAC,YAAU,UAAQ,WAAS,iBAAe,YAAU,eAAa,EAAW,CAAC,EAAa,GAAiBA,EAAS,QAAQ,EAAQ,EAAS,EAAoB,EAAQ,EAAe,GAAa,CAAC,IAAM,EAAM,IAAI,KAAK,CAAS,EAAQ,EAAI,IAAI,KAAK,CAAO,EAE/S,OAFoT,EAAY,EAAa,YAC1U,GAAa,GAAO,GAAa,EAAW,OACzC,QACX,EAaF,GAbI,MAAc,CAAC,GAAG,EAAS,OAAO,IAAI,EAAU,KAAW,MAAyB,CACxF,IAAM,EAAO,IAAI,KAEX,EAAe,EAAkB,CAAQ,EAChB,EAAU,GAAI,EAAe,MAAM,GAAG,CAAC,CAAC,GAAiC,EAAQ,GAAI,EAAe,MAAM,GAAG,CAAC,CAAC,GAC9I,IAAM,EAAc,IAAI,KAAK,EAAO,eAAe,QAAQ,CAAC,SAAS,CAAc,CAAC,CAAC,EAC/E,EAAY,EAAO,kBAAkB,EAA+E,GAAzD,EAAO,QAAQ,EAAE,EAAc,QAAQ,IAAI,IAAI,IAAkC,EAC5I,EAAY,IAAI,KAAK,EAAO,QAAQ,EAAE,EAAW,GAAG,GAAG,EAAQ,EAAS,EAAe,CAAW,EAAE,MAAoB,CAAC,EAAgB,CAAQ,CAAE,CAAC,EACvG,IAAM,GAAlC,GAAG,EAAY,WAAW,GAAqD,IAAI,EAAY,gBAAgB,EACtI,EAAU,WAAW,EAAqB,EAA4B,EAAE,EAA4B,GACpG,CAAE,EAEF,OADA,EAAqB,MACX,CAAI,GAAW,aAAa,CAAS,CAAG,CAAE,EAAE,CAAC,EAAU,EAAQ,EAAS,CAAQ,CAAC,EACxF,EAAS,CAAC,IAAM,EAAO,IAAI,KAAW,EAAe,EAAkB,CAAQ,EAAQ,EAAc,IAAI,KAAK,EAAO,eAAe,QAAQ,CAAC,SAAS,CAAc,CAAC,CAAC,EACnK,EAAY,EAAO,kBAAkB,EAA+E,GAAzD,EAAO,QAAQ,EAAE,EAAc,QAAQ,IAAI,IAAI,IAAkC,EACrC,OAA5B,EAAe,IAA1E,KAAK,EAAO,QAAQ,EAAE,EAAW,GAAG,GAAgD,CAAoB,EAAjB,CAAoB,IAAI,YAAY,OAAoB,EAAKC,EAAU,CAAC,SAAS,CAAc,CAAC,EAAE,IAAI,OAAO,OAAoB,EAAKA,EAAU,CAAC,SAAS,CAAS,CAAC,EAAe,QAAQ,OAAoB,EAAKA,EAAU,CAAC,SAAS,CAAW,CAAC,CAAE,CAAC,CACpW,OAAO,EAAP,CAAqB,IAAI,YAAY,OAAoB,EAAKA,EAAU,CAAC,SAAS,CAAc,CAAC,EAAE,IAAI,OAAO,OAAoB,EAAKA,EAAU,CAAC,SAAS,CAAS,CAAC,EAAe,QAAQ,OAAoB,EAAKA,EAAU,CAAC,SAAS,CAAW,CAAC,CAAE,CAAC,iBAvBxL,IAAsD,IAAwE,EAuB2D,EAAoB,EAAc,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,qBAAqB,YAAY,EAAI,EAAE,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,mBAAmB,YAAY,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,QAAQ,CAAC,WAAW,UAAU,UAAU,WAAW,SAAS,EAAE,aAAa,CAAC,WAAW,UAAU,UAAU,WAAW,SAAS,EAAE,aAAa,SAAS,EAAE,eAAe,CAAC,KAAK,EAAY,KAAK,MAAM,iBAAiB,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,cAAc,CAAC,CAAC"}