UNPKG

@tycoonsystems/tycoon-modules

Version:
1 lines 10 kB
import React from"react";import Styles from"../../Presentation.module.scss";import{resolveImg,resolveOption,resolveMoneyFormat,resolveRegionBasedPrice}from"@tycoonsystems/tycoon-modules/utility/ecommerce";import{fireGlobalEvent,getTimeRemaining}from"@tycoonsystems/tycoon-modules/utility/utility";import{normalizeData,resolveMainLink,datePassed,resolveGoodDate}from"@tycoonsystems/tycoon-modules/utility";import{getFormattedTime}from"@tycoonsystems/tycoon-modules/util";import Link from"next/link";import Image from"next/image";import{v4 as uuidv4}from"uuid";import{resolveImage}from"@tycoonsystems/tycoon-modules/utility/utility/image";const moduleName="IndexHello",RESET_CTA_TIMER=18e4,Module=l=>{const[t,a]=React.useState(!1),[i,n]=React.useState(null),[m,,]=React.useState(-1),[e,c]=React.useState(null),[,s]=React.useState(!1),[,o]=React.useState(!1),[r,u]=React.useState(null);var[,,]=React.useState(!1),d=React.useRef(),y=(l._LocalEventEmitter.unsubscribe(r),l._LocalEventEmitter.subscribe(r,e=>{e&&e.dispatch&&"updateCountdown"===e.dispatch&&(null!==(e=i?.date??null)?(e="string"==typeof e?new Date(Number(e)):new Date(e),datePassed(e)?c("nodate"):isNaN(e)||(e=getTimeRemaining(e,new Date))&&(c(e),o(!0))):(c("nodate"),o(!1)))}),React.useEffect(()=>{if(!t){a((new Date).getTime());const e=uuidv4();o(!1),setInterval(()=>{l._LocalEventEmitter.dispatch(e,{dispatch:"updateCountdown"})},1e3),u(e)}},[t,l?.eventData]),React.useCallback(async e=>{if(s(!0),e?.currentTarget?.getAttribute("ctaAfter")){e.currentTarget.innerHTML=e.currentTarget.getAttribute("ctaAfter");const t=e.currentTarget.getAttribute("cta"),a=e.currentTarget;setTimeout(()=>{try{a.innerHTML=t}catch(e){}},RESET_CTA_TIMER)}fireGlobalEvent(e,l._LocalEventEmitter)}));React.useEffect(()=>{var e;l?.eventData?.id&&l.eventData.id!==i&&(-1===m||m<(new Date).getTime()-5e3)&&(e=normalizeData([l.eventData]),n(e[0]))},[l?.eventData,i]);const S=i?.id?i:null;return React.createElement("div",{className:`${l.className} ${Styles.IndexBgContainer} EventPage_Container`},l.children,l.hideDefault?null:S?React.createElement("div",{className:Styles.Container+" EventPage_EventContainer "},React.createElement("div",{className:`${Styles.BgUpperContainer} ${moduleName}_Container`},React.createElement("div",{className:`${Styles.BgContainer} ${moduleName}_BgContainer `+l.bgClassName,style:{backgroundImage:`url(${resolveImage(l,S,S?.leadBg??null,"bg")})`}},l.children,React.createElement("div",{className:`${Styles.FillPageContainer} ${Styles.FillPageContainerEvent} ${moduleName}_FillPageContainer`,style:{height:`calc(100vh - ${l?.menuConfig?.height??45}px)`}},React.createElement("div",{className:`${Styles.TimeContainer} ${moduleName}_TimeContainer `+l.timeContainerClassName},React.createElement("div",{className:`${Styles.TimeCountdown} ${moduleName}_TimeCountdown ${l.timeCountdownClassName} `+(e?""+Styles.TimeCountdownVisible:null)},e&&o?"nodate"===e?React.createElement("div",null):React.createElement(React.Fragment,null,0<e.days?React.createElement("div",{className:`${Styles.TimeSection} ${moduleName}_TimeSection ${Styles.TimeSectionDay} `+l.timeSectionClassName},React.createElement("div",{className:`${Styles.TimeSectionValue} ${moduleName}_TimeSectionValue `+l.timeSectionValueClassName},e.days),React.createElement("div",{className:`${Styles.TimeSectionLabel} ${moduleName}_TimeSectionLabel `+l.TimeSectionLabelClassName},"Days")):null,0<e.days?React.createElement("div",{className:`${Styles.TimeSectionColon} ${moduleName}_TimeSectionColon `+l.timeSectionColonClassName},":"):null,0===e.hours&&0===e.minutes&&0===e.seconds?React.createElement("div",null):React.createElement(React.Fragment,null,React.createElement("div",{className:`${Styles.TimeSection} ${moduleName}_TimeSection `+l.timeSectionClassName},React.createElement("div",{className:`${Styles.TimeSectionValue} ${moduleName}_TimeSectionValue `+l.timeSectionValueClassName},e.hours),React.createElement("div",{className:`${Styles.TimeSectionLabel} ${moduleName}_TimeSectionLabel `+l.TimeSectionLabelClassName},"Hours")),React.createElement("div",{className:`${Styles.TimeSectionColon} ${moduleName}_TimeSectionColon `+l.timeSectionColonClassName},":"),React.createElement("div",{className:`${Styles.TimeSection} ${moduleName}_TimeSection `+l.timeSectionClassName},React.createElement("div",{className:`${Styles.TimeSectionValue} ${moduleName}_TimeSectionValue `+l.timeSectionValueClassName},e.minutes),React.createElement("div",{className:`${Styles.TimeSectionLabel} ${moduleName}_TimeSectionLabel `+l.TimeSectionLabelClassName},"Minutes")),React.createElement("div",{className:`${Styles.TimeSectionColon} ${moduleName}_TimeSectionColon `+l.timeSectionColonClassName},":"),React.createElement("div",{className:`${Styles.TimeSection} ${moduleName}_TimeSection `+l.timeSectionClassName},React.createElement("div",{className:`${Styles.TimeSectionValue} ${moduleName}_TimeSectionValue `+l.timeSectionValueClassName},e.seconds),React.createElement("div",{className:`${Styles.TimeSectionLabel} ${moduleName}_TimeSectionLabel `+l.TimeSectionLabelClassName},"Seconds")))):null),S.showSimpleDate&&e?React.createElement("div",{className:`${Styles.TimeSimple} ${moduleName}_TimeSimple `+l.timeSimpleClassName},React.createElement("div",null,S?.date?resolveGoodDate(S.date):"")):null),React.createElement("div",{className:`${Styles.DataContainer} ${moduleName}_DataContainer `+l.DataContainerClassName},React.createElement("div",{className:`${Styles.AuthorContainer} ${moduleName}_AuthorContainer `+l.authorContainerClassName},""!==S?.icon?React.createElement("div",{className:`${Styles.IconContainer} ${moduleName}_IconContainer `+l.iconContainerClassName},React.createElement(Link,{href:"/p?u="+(S?.author??""),style:{alignSelf:"center"}},React.createElement(Image,{loader:()=>resolveImage(l,S,S?.icon??null,"icon"),src:resolveImage(l,S,S?.icon??null,"icon"),style:{maxWidth:"50px",borderRadius:"4rem"},alt:S?.author??"",width:S.iconWidth??"50",height:S.iconHeight??"50",layout:"responsive"}))):null,React.createElement(Link,{href:"/p?u="+(S?.author??""),style:{alignSelf:"center"}},React.createElement("div",{className:`${Styles.Author} ${moduleName}_Author `+l.authorClassName},S?.author??""))),React.createElement(Link,{href:resolveMainLink(S),style:{alignSelf:"center",position:"relative"}},React.createElement("div",{className:`${Styles.Lead} ${moduleName}_Lead `+l.leadClassName},S?.title??""),S.created&&!isNaN(new Date(S.created))&&new Date(S.created).getTime()>(new Date).getTime()-1296e6?React.createElement("div",{className:"newItem",style:{position:"absolute",top:"-18.5px",left:"75px"}},React.createElement("span",null,"New"),React.createElement("span",{style:{fontSize:".9rem"},className:"star material-icons"},"star")):null),S?.item?.id&&S?.item?.style&&S?.item?.option?React.createElement("div",{className:"flex",style:{alignItems:"center",columnGap:".5rem"}},React.createElement("button",{className:`${Styles.CtaButton} ${moduleName}_Cta `+l.ctaClassName,onClick:y,action:-1<["add_to_cart","buy"].indexOf(S?.action)?S.action:"add_to_cart",item:S.item.id,selectedstyle:S.item.style,currentoption:S.item.option,ref:d,ctaAfter:S.ctaAfter,cta:S.cta},S.cta),(y=S?.styles?.find?S.styles.find(e=>e.sid===S.item.style):null,0==(y=resolveRegionBasedPrice(l,y))?.price?React.createElement("div",{className:"flex",style:{fontSize:"1.5rem",fontWeight:"600",marginTop:".5rem"}},React.createElement("div",null,"Free")):y?.currency&&y?.symbol&&Object.prototype.hasOwnProperty.call(y,"price")?React.createElement("div",{className:"flex",style:{fontSize:"1.25rem",fontWeight:"600"}},React.createElement("div",null,y.symbol),React.createElement("div",{style:{marginRight:".25rem"}},resolveMoneyFormat(y.price)),React.createElement("div",null,y.currency)):React.createElement("div",null)),(d=!((d=resolveOption(S,S.item.style,S.item.option,!0))?.quantity&&300<d.quantity)&&d?.quantity&&d.quantity<=300?"Not much left in stock":"")?React.createElement("div",{style:{alignItems:"center",display:"flex",fontSize:".85rem",fontWeight:"700",gap:".25rem",color:"#ff8686"}},React.createElement("span",null,d),React.createElement("span",{style:{fontSize:"1.15rem"},className:"inventory material-icons"},"inventory")):null):null)))),React.createElement("div",{className:""+Styles.SecondDataContainer},S.description&&""!==S.description?React.createElement("div",{className:`${Styles.Description} ${moduleName}_Description `+l.descriptionClassName},S?.description??""):null,S.showSimpleDate&&e?React.createElement("div",{className:`${Styles.TimeSimpleInline} ${moduleName}_TimeSimple `+l.timeSimpleClassName},React.createElement("div",null,S?.date?resolveGoodDate(S.date):"")):null,React.createElement("div",null,S?.detailmeta?.lineup&&S.detailmeta.lineup.map&&0<S.detailmeta.lineup.length?React.createElement("div",{style:{marginTop:".5rem"}},React.createElement("div",{className:Styles.LineupLabel+" EventPage_Lineup_Label"},"Lineup"),React.createElement("div",{className:""+Styles.LineupContainer},S.detailmeta.lineup.map((e,t)=>React.createElement("div",{className:""+Styles.LineupItem,index:t,key:t},React.createElement("div",{style:{marginTop:".125rem",marginBottom:"1rem"}},React.createElement("div",{className:""+Styles.LineupImageContainer,style:{position:"relative"}},React.createElement("div",{className:""+Styles.LineupImageInternalContainer,style:{backgroundImage:`url(${l.cdn.static}/${e.image})`}},React.createElement("img",{src:""+resolveImg(null),className:""+Styles.LineupImage,style:{opacity:e.image?0:1}})))),React.createElement("div",{className:""+Styles.ParticipantLabel},""!==e.title?e.title:React.createElement("div",{style:{opacity:".7"}},"Participant")),e.description?React.createElement("div",{style:{marginBottom:".5rem"}},e.description):null,e.time?React.createElement("div",{className:"lineupItem_time "+Styles.LineupItemTime},getFormattedTime(e.time,{simple:!0})):null)))):null))):React.createElement("div",{className:"PagePadding"},"No Event"),l.childrenAfter)};export default Module;