{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/szdLt29EbPkkcNOGR6Wt/bII9eg6dP6n6n0iHI3kK/BookingTest.js", "ssg:https://framerusercontent.com/modules/Mog88atNTNTrvJaqiBpA/1j90x4lqXaj06Q0HSTsu/CheckAvailability.js", "ssg:https://framerusercontent.com/modules/bEP6i27RLxoAawpSy3Cj/lJlxadOwnVfHMJbFeOAx/MobileCheckAvailability.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import React,{useEffect,useState,useRef}from\"react\";const fontInter={fontFamily:\"DM sans, sans-serif\"};const today=new Date().toISOString().split(\"T\")[0];const VALID_EVENT_IDS=[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\"]// Add more IDs as needed\n;export default function Booking(props){const containerRef=useRef(null);const scrollToTop=()=>{if(containerRef.current){containerRef.current.scrollIntoView({behavior:\"smooth\"});}};// Constants\nconst DEFAULT_DISCOUNT_PERCENT=25// Default 25% discount\n;const[maxUsagePerUser,setMaxUsagePerUser]=useState(0);// Mapping of keywords to event IDs\nconst eventMapping={mosaic:\"1\",\"turkish-coffee\":\"2\",stained:\"3\",perfume:\"4\",\"tile-painting\":\"5\",\"leather-crafting\":\"6\"};// State Variables\nconst[workshopData,setWorkshopData]=useState({usd:null,try:null});const[userLocale,setUserLocale]=useState(\"\");const[preferredCurrency,setPreferredCurrency]=useState(\"\");const[selectedDate,setSelectedDate]=useState(new Date().toISOString().split(\"T\")[0]);const[numberOfPeople,setNumberOfPeople]=useState(1);const[language,setLanguage]=useState(\"English\");const[selectedTime,setSelectedTime]=useState(\"\");const[price,setPrice]=useState(0);const[isLoading,setIsLoading]=useState(false);const[isAvailabilityChecked,setIsAvailabilityChecked]=useState(false);const[urlParams,setUrlParams]=useState(new URLSearchParams);const[referralCodeFromURL,setReferralCodeFromURL]=useState(\"\");const[urlEventId,setUrlEventId]=useState(\"\");const[availabilityError,setAvailabilityError]=useState(\"\")// New state for availability errors\n;const[referralCode,setReferralCode]=useState(\"\");const[discountPercent,setDiscountPercent]=useState(0)// Referral code discount\n;const[referralCodeValid,setReferralCodeValid]=useState(null)// true, false, or null\n;const[referralCodeError,setReferralCodeError]=useState(\"\");const[isReferralCodeLoading,setIsReferralCodeLoading]=useState(false);const[availabilityCheckedOnce,setAvailabilityCheckedOnce]=useState(false);const[name,setName]=useState(\"\");const[nameTouched,setNameTouched]=useState(false);const[email,setEmail]=useState(\"\");const[phoneNumber,setPhoneNumber]=useState(\"\");const[bookingSuccess,setBookingSuccess]=useState(false);const[eventLocation,setEventLocation]=useState(\"Location not specified\");const[eventName,setEventName]=useState(\"\")// Initialized as empty\n;const[showSecondPartForm,setShowSecondPartForm]=useState(false);const[originalPrice,setOriginalPrice]=useState(0);const[bookingRef,setBookingRef]=useState(\"\");const[selectedSlotAvailable,setSelectedSlotAvailable]=useState(null);const[emailTouched,setEmailTouched]=useState(false);const[phoneNumberTouched,setPhoneNumberTouched]=useState(false);const[dateAdjustedMessage,setDateAdjustedMessage]=useState(\"\")// Message for date adjustment\n;// *** New State Variable for First Available Date ***\nconst[firstAvailableDate,setFirstAvailableDate]=useState(today);// Add these new state variables\nconst[availableTimes,setAvailableTimes]=useState([]);const[currentWorkshop,setCurrentWorkshop]=useState(null);const[currencySymbol,setCurrencySymbol]=useState(\"\");const[isCheckingAvailability,setIsCheckingAvailability]=useState(false);// First, let's add a new state to track if we're showing the next available date\nconst[isShowingNextAvailable,setIsShowingNextAvailable]=useState(false);// Add new state for transition\nconst[isChangingCurrency,setIsChangingCurrency]=useState(false);// Add these at the top of your component, after state declarations\nconst CACHE_DURATION=30*1e3// 30 seconds in milliseconds\n;const[currencyCache,setCurrencyCache]=useState({});// Update the URL parsing logic with retry\nuseEffect(()=>{const parseUrl=()=>{if(typeof window===\"undefined\"){console.log(\"Window not available yet\");return;}console.log(\"Current URL:\",window.location.href);console.log(\"Current pathname:\",window.location.pathname);console.log(\"Current search:\",window.location.search);const params=new URLSearchParams(window.location.search);console.log(\"URL Parameters:\",Object.fromEntries(params.entries()));setUrlParams(params);const refCode=params.get(\"REF\");console.log(\"Referral code from URL:\",refCode);setReferralCodeFromURL(refCode||\"\");const findEventIdFromUrl=(url,retryCount=0)=>{console.log(`Attempting to find event ID (attempt ${retryCount+1})`);// First try: exact match from query params\nconst eventIdParam=params.get(\"eventId\");console.log(\"Event ID from query params:\",eventIdParam);if(eventIdParam&&VALID_EVENT_IDS.includes(eventIdParam)){console.log(\"Found valid event ID from query params:\",eventIdParam);setUrlEventId(eventIdParam);return eventIdParam;}// Second try: check URL keywords\nfor(const[key,value]of Object.entries(eventMapping)){console.log(`Checking keyword: ${key}`);if(url.toLowerCase().includes(key.toLowerCase())){console.log(`Found event ID ${value} from keyword ${key}`);setUrlEventId(value);return value;}}// Third try: check URL for direct event IDs\nfor(const id of VALID_EVENT_IDS){console.log(`Checking for direct event ID: ${id}`);if(url.includes(`/${id}`)||url.includes(`event-${id}`)){console.log(`Found direct event ID: ${id}`);setUrlEventId(id);return id;}}// If no match found and we haven't exceeded retry limit\nif(retryCount<2){console.log(`No event ID found, will retry (${retryCount+1}/2)`);setTimeout(()=>{const fullUrl=window.location.href;console.log(`Retrying with full URL: ${fullUrl}`);const eventId=findEventIdFromUrl(fullUrl,retryCount+1);if(eventId){console.log(`Found event ID on retry: ${eventId}`);setUrlEventId(eventId);}else if(retryCount===1){console.error(\"Could not determine event ID after all retries\");setAvailabilityError(\"Could not determine event. Please check the URL or contact support.\");}},500*(retryCount+1));}return null;};const url=window.location.href;console.log(\"Processing URL:\",url);console.log(\"Valid event IDs:\",VALID_EVENT_IDS);console.log(\"Event mapping:\",eventMapping);const foundEventId=findEventIdFromUrl(url);if(foundEventId){console.log(\"Setting event ID:\",foundEventId);setUrlEventId(foundEventId);}else{console.log(\"No event ID found in initial check\");}};// Initial parse\nparseUrl();// Add URL change listener\nconst handleUrlChange=()=>{console.log(\"URL changed, re-parsing\");parseUrl();};window.addEventListener(\"popstate\",handleUrlChange);return()=>window.removeEventListener(\"popstate\",handleUrlChange);},[]);// Update referral code from URL\nuseEffect(()=>{setReferralCode(referralCodeFromURL);},[referralCodeFromURL]);// Update the useEffect that fetches data to handle missing eventId\nuseEffect(()=>{async function fetchData(){if(!urlEventId){console.log(\"No event ID available yet, skipping fetch\");return;}console.log(\"Fetching data for event ID:\",urlEventId);try{const apiUrl=`https://iw-api.pages.dev/api/events?eventId=${urlEventId}`;console.log(\"Constructed API URL:\",apiUrl);const response=await fetch(apiUrl);if(!response.ok){throw new Error(`HTTP error! status: ${response.status}`);}const responseData=await response.json();console.log(\"Received data:\",responseData);if(!responseData.success||!responseData.data){throw new Error(\"Invalid response format\");}const workshopData=responseData.data;// Set initial workshop data\nsetWorkshopData(prev=>({...prev,usd:workshopData,try:null}));// Set current workshop\nsetCurrentWorkshop(workshopData);// Set event name\nsetEventName(workshopData.name||\"\");// Set available languages from the response\nif(Array.isArray(workshopData.languages)){setLanguage(workshopData.languages[0]||\"English\")// Set first language as default\n;}// Set available times from slots\nif(Array.isArray(workshopData.slots)){setAvailableTimes(workshopData.slots);}// Set currency symbol based on the response\nsetCurrencySymbol(workshopData.currency===\"USD\"?\"$\":\"\u20BA\");setPreferredCurrency(workshopData.currency===\"USD\"?\"en\":\"tr\");}catch(error){console.error(\"Error fetching workshop data:\",error);setAvailabilityError(\"Could not load workshop data. Please try again later.\");}}fetchData();},[urlEventId]);// Generate booking reference when component mounts\nuseEffect(()=>{setBookingRef(generateBookingRef());},[]);// Removed the automatic availability check\n/*\n    // Effect to handle updates based on user interactions\n    useEffect(() => {\n        if (selectedDate && language && numberOfPeople) {\n            fetchAvailability(selectedDate, 3)\n        }\n    }, [selectedDate, language, numberOfPeople])\n    */// Effect to recalculate price when selectedTime, numberOfPeople, or availableTimes change\nuseEffect(()=>{if(selectedTime){updatePrice(selectedTime);}},[selectedTime,numberOfPeople,availableTimes]);// Recalculate price when discountPercent changes\nuseEffect(()=>{if(selectedTime){updatePrice(selectedTime);}},[discountPercent,selectedTime]);// *** Function to increment date by a certain number of days ***\nconst incrementDate=(dateStr,days)=>{const date=new Date(dateStr);date.setDate(date.getDate()+days);return date.toISOString().split(\"T\")[0];};// *** New useEffect to find the first available date ***\nuseEffect(()=>{async function findFirstAvailableDate(){if(!urlEventId){console.log(\"No event ID available for finding first date\");return;}// Skip if we already have a selected date that's not today\nif(selectedDate&&selectedDate!==today){console.log(\"Skipping first date search - already have selected date:\",selectedDate);return;}let dateToCheck=today;const maxDays=30// Adjust this value based on how far ahead you want to search\n;for(let i=0;i<maxDays;i++){try{console.log(`Checking availability for date ${dateToCheck} with event ID ${urlEventId}`);const apiUrl=`https://iw-api.pages.dev/api/events?eventId=${urlEventId}&date=${dateToCheck}&language=${language}&numPeople=${numberOfPeople}`;console.log(\"Checking availability with URL:\",apiUrl);const response=await fetch(apiUrl);if(!response.ok){throw new Error(`HTTP error! status: ${response.status}`);}const responseData=await response.json();console.log(`Availability data for ${dateToCheck}:`,responseData);// Check if response is successful and has data\nif(responseData.success&&responseData.data){const workshopData=responseData.data;// Check if slots exist and are available\nif(workshopData.slots&&workshopData.slots.length>0){console.log(`Found available slots for ${dateToCheck}`);setFirstAvailableDate(dateToCheck);// Update workshop data immediately\nsetWorkshopData(prev=>({...prev,[preferredCurrency===\"tr\"?\"try\":\"usd\"]:workshopData}));// Update available times\nsetAvailableTimes(workshopData.slots);break;}else{console.log(`No slots available for ${dateToCheck}, trying next date`);dateToCheck=incrementDate(dateToCheck,1);}}else{console.log(`Invalid response format for ${dateToCheck}, trying next date`);dateToCheck=incrementDate(dateToCheck,1);}}catch(error){console.error(`Error checking availability for ${dateToCheck}:`,error);dateToCheck=incrementDate(dateToCheck,1);}}}// Only run on initial load when we don't have a selected date\nif(urlEventId&&language&&numberOfPeople&&!selectedDate){console.log(\"Starting first available date search with:\",{eventId:urlEventId,language,numberOfPeople});findFirstAvailableDate();}},[urlEventId,language,numberOfPeople,today,preferredCurrency,selectedDate]);// *** Optional: Update selectedDate when firstAvailableDate changes ***\nuseEffect(()=>{if(firstAvailableDate!==today){setSelectedDate(firstAvailableDate);}},[firstAvailableDate]);// Update the useEffect that sets currentWorkshop\nuseEffect(()=>{if(workshopData){const workshop=preferredCurrency===\"tr\"?workshopData.try:workshopData.usd;setCurrentWorkshop(workshop);setCurrencySymbol(preferredCurrency===\"tr\"?\"\u20BA\":\"$\");if(workshop?.slots){// Only update slots if we don't have any or if the date matches\nif(availableTimes.length===0||workshop.requestedDate===selectedDate){setAvailableTimes(workshop.slots);}// Update price if we have a selected time\nif(selectedTime){const selectedSlot=workshop.slots.find(slot=>slot.start_time===selectedTime);if(selectedSlot){updatePrice(selectedTime);}}}}},[workshopData,preferredCurrency]);// Update the findAvailableDate function to also use urlEventId properly\nconst findAvailableDate=async(currentDate,attemptsLeft)=>{if(!urlEventId){console.error(\"No event ID available for finding available date\");return;}setIsCheckingAvailability(true);try{const apiUrl=`https://iw-api.pages.dev/api/events?eventId=${urlEventId}&locale=${preferredCurrency}&date=${currentDate}`;console.log(\"Checking availability with URL:\",apiUrl);const response=await fetch(apiUrl);const responseData=await response.json();console.log(\"Response data:\",responseData);if(response.ok&&responseData.success){const workshopData=responseData.data;if(workshopData?.slots&&Array.isArray(workshopData.slots)&&workshopData.slots.length>0){console.log(\"Found slots:\",workshopData.slots);setAvailableTimes(workshopData.slots);setSelectedDate(currentDate);setIsAvailabilityChecked(true);setShowSecondPartForm(true);setAvailabilityError(\"\");setIsShowingNextAvailable(false);setCurrentWorkshop(workshopData);setEventName(workshopData.name||\"\");if(currentDate!==selectedDate){setSelectedTime(\"\");}}else if(workshopData?.nextAvailableDate){const nextDateUrl=`https://iw-api.pages.dev/api/events?eventId=${urlEventId}&locale=${preferredCurrency}&date=${workshopData.nextAvailableDate}`;console.log(\"Checking next available date with URL:\",nextDateUrl);const nextDateResponse=await fetch(nextDateUrl);const nextDateData=await nextDateResponse.json();if(nextDateData.success&&nextDateData.data?.slots&&nextDateData.data.slots.length>0){setAvailableTimes(nextDateData.data.slots);setSelectedDate(workshopData.nextAvailableDate);setIsAvailabilityChecked(true);setShowSecondPartForm(true);setAvailabilityError(\"\");setIsShowingNextAvailable(true);setCurrentWorkshop(nextDateData.data);setEventName(nextDateData.data.name||\"\");setSelectedTime(\"\");}else{handleNoAvailability();}}else{handleNoAvailability();}}else{handleNoAvailability();}}catch(error){console.error(\"Error fetching availability:\",error);handleNoAvailability();}finally{setIsCheckingAvailability(false);setIsLoading(false);}};// Update the handleNoAvailability function\nconst handleNoAvailability=()=>{setAvailableTimes([]);setShowSecondPartForm(false);setIsShowingNextAvailable(false);setAvailabilityError(\"No available slots on this date. Please try another date.\")// Add error message\n;};// Function to calculate price\nfunction calculatePrice(time){const slot=availableTimes.find(slot=>slot.start_time===time);if(slot){const newPrice=parseFloat(slot.basePrice)*numberOfPeople;setPrice(newPrice);}}// Force update state to trigger re-render (if needed)\nconst[,forceUpdate]=React.useState();// Update the handleTimeSelection function to be more robust\nconst handleTimeSelection=time=>{if(!time||isCheckingAvailability)return;setSelectedTime(time);const selectedSlotData=availableTimes.find(slot=>slot.start_time===time);if(selectedSlotData){setSelectedSlotAvailable(selectedSlotData.available);updatePrice(time);setShowSecondPartForm(true);}};// Load external CSS\nuseEffect(()=>{// Font Awesome CSS\nconst faLink=document.createElement(\"link\");faLink.href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css\";faLink.rel=\"stylesheet\";document.head.appendChild(faLink);// Tailwind CSS\nconst twLink=document.createElement(\"link\");twLink.href=\"https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css\";twLink.rel=\"stylesheet\";document.head.appendChild(twLink);// Datepicker CSS with cache busting\nconst dpLink=document.createElement(\"link\");const version=Math.random()// Generates a random number\n;dpLink.href=`https://crm.istanbulworkshops.com/framerAssets/datepicker.css?v=${version}`;dpLink.rel=\"stylesheet\";document.head.appendChild(dpLink);// Add libphonenumber-js from CDN\nconst libPhoneScript=document.createElement(\"script\");libPhoneScript.src=\"https://unpkg.com/libphonenumber-js@1.10.51/bundle/libphonenumber-js.min.js\";libPhoneScript.async=true;document.head.appendChild(libPhoneScript);return()=>{document.head.removeChild(faLink);document.head.removeChild(twLink);document.head.removeChild(dpLink);document.head.removeChild(libPhoneScript);};},[]);// Function to format time\nconst formatTime=timeString=>{const[hours,minutes]=timeString.split(\":\");const date=new Date;date.setHours(hours,minutes);return new Intl.DateTimeFormat(\"en-US\",{hour:\"numeric\",minute:\"numeric\",hour12:true}).format(date);};// Validation Functions\nconst isValidEmail=React.useCallback(email=>{// Comprehensive regex for email validation\nconst emailRegex=/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?\\d{1,2})\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?\\d{1,2}|[a-z0-9-]*[a-z0-9]:[^\\]]+)\\])/;// Basic validation\nconst basicValidation=emailRegex.test(email);if(!basicValidation)return false;// Split email into local part and domain\nconst[localPart,domain]=email.split(\"@\");// Ensure reasonable lengths\nif(localPart.length<2||domain.length<5){return false;}// Ensure domain has a period and valid TLD\nconst domainParts=domain.split(\".\");if(domainParts.length<2||domainParts.some(part=>part.length<2)){return false;}return true;},[]);const isValidPhoneNumber=React.useCallback(phoneNumber=>{// @ts-ignore - libphonenumber-js is loaded from CDN\nif(!window.libphonenumber){// Fallback validation if library hasn't loaded yet\nreturn{isValid:/^\\+[1-9]\\d{6,14}$/.test(phoneNumber.replace(/[\\s\\-\\(\\)\\.]/g,\"\")),errorMessage:\"Basic validation: Must start with + and have 7-15 digits\"};}try{// @ts-ignore - libphonenumber-js is loaded from CDN\nconst{parsePhoneNumber,isValidPhoneNumber}=window.libphonenumber;if(!phoneNumber.startsWith(\"+\")){return{isValid:false,errorMessage:\"Phone number must start with + and country code (e.g., +1, +44, +90)\"};}const parsedNumber=parsePhoneNumber(phoneNumber);if(!parsedNumber){return{isValid:false,errorMessage:\"Invalid phone number format\"};}if(!isValidPhoneNumber(phoneNumber)){return{isValid:false,errorMessage:`Invalid phone number for this country`};}// Additional check for repeated digits\nconst numberWithoutCountry=parsedNumber.nationalNumber;if(/(\\d)\\1{4,}/.test(numberWithoutCountry)){return{isValid:false,errorMessage:\"Invalid phone number format (too many repeated digits)\"};}return{isValid:true,errorMessage:\"\"};}catch(error){console.warn(\"Phone validation error:\",error);return{isValid:false,errorMessage:\"Invalid phone number format\"};}},[]);const isValidName=React.useCallback(name=>{const nameRegex=RegExp(\"^[\\\\p{L}][\\\\p{L}\\\\s'-]{1,}$\",\"u\");return nameRegex.test(name.trim());},[]);// Handlers for input changes\nconst handleNameChange=e=>{setName(e.target.value);if(!nameTouched)setNameTouched(true);};const handleEmailChange=e=>{setEmail(e.target.value);if(!emailTouched)setEmailTouched(true);};const handlePhoneNumberChange=e=>{setPhoneNumber(e.target.value);if(!phoneNumberTouched)setPhoneNumberTouched(true);};// Function to check form validity\nconst isValidForm=()=>{const{isValid}=isValidPhoneNumber(phoneNumber);const isBasicFormValid=isValidEmail(email)&&isValidName(name)&&isValid&&selectedTime!==\"\"&&isAvailabilityChecked;// If referral code is entered, it must be validated and valid\nif(referralCode.trim()){return isBasicFormValid&&referralCodeValid===true;}return isBasicFormValid;};// Function to generate booking reference\nconst generateBookingRef=()=>{// Get the current time in milliseconds\nconst timestampNum=new Date().getTime();// Convert to a string and remove the first few characters\nconst timestampStr=timestampNum.toString().slice(5);// Generate a random number\nconst randomNumber=Math.floor(10+Math.random()*90);// Return the booking reference\nreturn`IW${randomNumber}${timestampStr}`;};// Function to handle form submission\nconst handleSubmit=async event=>{event.preventDefault();setIsLoading(true);// Ensure the latest price is used\nupdatePrice(selectedTime);const bookingData={eventId:urlEventId,selectedDate,selectedTime,numberOfPeople,language,name,email,phoneNumber,price,bookingRef,referralCode,discountPercent,// Add currency information\ncurrency:preferredCurrency===\"tr\"?\"TRY\":\"USD\",currencySymbol:preferredCurrency===\"tr\"?\"\u20BA\":\"$\",originalPrice};console.log(\"Sending booking data:\",bookingData);setTimeout(()=>{fetch(\"https://crm.istanbulworkshops.com/framerAssets/handleTest.php\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(bookingData)}).then(response=>response.json()).then(data=>{setIsLoading(false);if(data.status===\"success\"){setBookingSuccess(true);}else{throw new Error(data.message||\"Failed to submit booking.\");}}).catch(error=>{console.error(\"Error submitting booking:\",error);setAvailabilityError(error.message||\"Failed to submit booking.\");setIsLoading(false);});},1e3);};// Validation for Name\nconst handleNameBlur=()=>{setNameTouched(true);};// Validation for Email\nconst handleEmailBlur=()=>{setEmailTouched(true);};// Validation for Phone Number\nconst handlePhoneNumberBlur=()=>{setPhoneNumberTouched(true);};// Function to generate ICS file content\nconst generateICS=event=>{const formatDate=date=>date.toISOString().replace(/-|:|\\.\\d+/g,\"\");const startDate=new Date(`${event.date}T${event.startTime}`);const endDate=new Date(`${event.date}T${event.endTime}`);const icsContent=[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",\"BEGIN:VEVENT\",`DTSTART:${formatDate(startDate)}`,`DTEND:${formatDate(endDate)}`,`SUMMARY:${event.name} - Istanbul Workshops - ${event.bookingRef}`,`DESCRIPTION:`+`Contact: +90 533 167 62 71 (WhatsApp)\\\\n`+`Instagram: @istanbulworkshops\\\\n`+`Enjoy your experience with Istanbul Workshops!`+`\\\\nBooking Reference: ${event.bookingRef}\\\\n`,`LOCATION:${event.location||\"Istanbul, Turkey\"}`,'ORGANIZER;CN=Istanbul Workshops;DIR=\"https://istanbulworkshops.com\";LANGUAGE=en;SENT-BY=\"mailto:info@istanbulworkshops.com\";TEL=\"+90-533-167-62-71\":mailto:info@istanbulworkshops.com',\"CATEGORIES:Workshop,Istanbul,Travel\",\"URL:https://istanbulworkshops.com/contact\",\"BEGIN:VALARM\",\"PRIORITY:1\",\"TRIGGER:-PT3H\",\"ACTION:DISPLAY\",\"DESCRIPTION:Reminder\",\"END:VALARM\",\"END:VEVENT\",\"END:VCALENDAR\"].join(\"\\r\\n\");return icsContent;};// Function to download ICS file\nconst downloadICS=event=>{const icsContent=generateICS(event);const blob=new Blob([icsContent],{type:\"text/calendar;charset=utf-8\"});const link=document.createElement(\"a\");link.href=URL.createObjectURL(blob);link.download=`Istanbul_Workshops_${event.name.replace(/\\s+/g,\"_\")}_booking.ics`;document.body.appendChild(link);link.click();document.body.removeChild(link);};// Function to format date\nconst formatDate=dateStr=>{const date=new Date(dateStr);return date.toLocaleDateString(\"en-US\",{weekday:\"long\",year:\"numeric\",month:\"long\",day:\"numeric\"});};// Update the updatePrice function\nconst updatePrice=time=>{const selectedSlot=availableTimes.find(slot=>slot.start_time===time);if(selectedSlot){// Get amounts from the slot\nconst baseAmount=parseFloat(selectedSlot.basePriceAmount);const discountedAmount=selectedSlot.discountedPriceAmount;// Calculate original price (before any additional discounts)\nconst baseTotal=baseAmount*numberOfPeople;setOriginalPrice(baseTotal);// Calculate price with default workshop discount\nlet finalPrice=discountedAmount*numberOfPeople;// Apply additional referral discount if valid\nif(discountPercent>0){const eligiblePeople=Math.min(maxUsagePerUser,numberOfPeople);const nonEligiblePeople=numberOfPeople-eligiblePeople;const eligiblePrice=discountedAmount*eligiblePeople*(1-discountPercent/100);const nonEligiblePrice=discountedAmount*nonEligiblePeople;finalPrice=eligiblePrice+nonEligiblePrice;}setPrice(Math.round(finalPrice));}};// Update the checkAvailability function to be more user-friendly\nconst checkAvailability=async()=>{if(isCheckingAvailability)return;setIsLoading(true);setAvailabilityError(\"\");setDateAdjustedMessage(\"\");// Keep existing slots visible while checking\nawait findAvailableDate(selectedDate,3);};// Function to handle referral code application\nconst handleApplyReferralCode=async()=>{if(!referralCode.trim()){setReferralCodeError(\"Please enter a referral code.\");setReferralCodeValid(false);return;}if(!isValidEmail(email)){setReferralCodeError(\"Please enter a valid email before applying the referral code.\");setReferralCodeValid(false);return;}setIsReferralCodeLoading(true);setReferralCodeError(\"\");setReferralCodeValid(null);try{const response=await fetch(`https://crm.istanbulworkshops.com/framerAssets/validateReferral.php?code=${encodeURIComponent(referralCode)}&email=${encodeURIComponent(email)}`);const data=await response.json();if(data.isValid){setDiscountPercent(data.discountPercent)// e.g., 75\n;setMaxUsagePerUser(data.maxUsagePerUser)// e.g., 3\n;setReferralCodeValid(true);setReferralCodeError(\"\");}else{setDiscountPercent(0);setMaxUsagePerUser(0);setReferralCodeValid(false);setReferralCodeError(data.message||\"Invalid referral code.\");}}catch(error){console.error(\"Error validating referral code:\",error);setDiscountPercent(0);setReferralCodeValid(false);setReferralCodeError(\"Error validating referral code.\");}setIsReferralCodeLoading(false);};// Update the toggleCurrency function\nconst toggleCurrency=async()=>{const newCurrency=preferredCurrency===\"tr\"?\"en\":\"tr\";setIsChangingCurrency(true);try{// Use the current selected date instead of checking availability again\nconst cacheKey=`${urlEventId}-${newCurrency}-${selectedDate}`;const now=Date.now();const cachedData=currencyCache[cacheKey];let responseData;// Check if we have valid cached data\nif(cachedData&&now-cachedData.timestamp<CACHE_DURATION){console.log(\"Using cached data for currency switch:\",cachedData);responseData=cachedData.data;}else{console.log(\"Fetching fresh data for currency switch\");const response=await fetch(`https://iw-api.pages.dev/api/events?eventId=${urlEventId}&locale=${newCurrency}&date=${selectedDate}`);responseData=await response.json();console.log(\"Received fresh data:\",responseData);// Cache the new data\nsetCurrencyCache(prev=>({...prev,[cacheKey]:{data:responseData,timestamp:now}}));}// Ensure we have valid response data\nif(responseData&&responseData.success&&responseData.data){const workshopData=responseData.data;console.log(\"Processing workshop data:\",workshopData);// Update workshop data with the new currency data\nsetWorkshopData(prev=>({...prev,[newCurrency===\"tr\"?\"try\":\"usd\"]:workshopData}));// Update currency preferences\nsetPreferredCurrency(newCurrency);setCurrencySymbol(newCurrency===\"tr\"?\"\u20BA\":\"$\");// Update current workshop and available times\nsetCurrentWorkshop(workshopData);if(workshopData.slots){setAvailableTimes(workshopData.slots);// Update price if a time is selected\nif(selectedTime){const selectedSlot=workshopData.slots.find(slot=>slot.start_time===selectedTime);if(selectedSlot){updatePrice(selectedTime);}}}}}catch(error){console.error(\"Error updating currency:\",error);}finally{setIsChangingCurrency(false);}};// Add this helper function\nconst formatPrice=price=>{return new Intl.NumberFormat(\"en-US\").format(price);};// Conditional Rendering for Loading State\nif(isLoading&&!bookingSuccess){return /*#__PURE__*/_jsx(\"div\",{className:\"flex flex-col overflow-auto p-5 bg-blue-900 rounded-xl max-w-md mx-auto text-white text-base w-full min-w-full\",children:/*#__PURE__*/_jsx(\"h2\",{className:\"mb-2.5 text-white text-2xl font-bold\",children:\"Booking is preparing :)\"})});}// Conditional Rendering for Booking Success\nif(bookingSuccess){return /*#__PURE__*/_jsxs(\"div\",{className:\"flex flex-col items-center justify-center overflow-auto p-5 bg-blue-900 rounded-xl max-w-md mx-auto text-white text-base w-full min-w-full\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bg-blue-900 text-white pb-6 rounded-t-lg w-full\",children:[/*#__PURE__*/_jsx(\"h2\",{className:\"text-4xl font-bold mb-2\",children:eventName||\"Event Name\"}),/*#__PURE__*/_jsxs(\"p\",{className:\"text-base\",children:[language,\" \u2022 \",formatDate(selectedDate),\" \u2022 \",bookingRef]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bg-green-600 text-white py-3 w-full rounded-tr rounded-tl text-center font-semibold\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-check-circle mr-2\"}),\" Your booking is confirmed!\"]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bg-white rounded-b-lg shadow-lg p-4 w-full text-left\",children:[/*#__PURE__*/_jsxs(\"h3\",{className:\"text-xl font-semibold text-gray-800 mb-4\",children:[\"Thank you for booking with\",\" \",/*#__PURE__*/_jsxs(\"span\",{className:\"text-blue-900\",children:[\" \",\"Istanbul Workshops,\"]})]}),/*#__PURE__*/_jsxs(\"p\",{className:\"text-md text-gray-800 mb-4\",children:[\"We are excited to host you for\",/*#__PURE__*/_jsxs(\"span\",{className:\"font-semibold\",children:[\" \",eventName]}),\".\"]}),/*#__PURE__*/_jsx(\"div\",{className:\"mt-6 border-gray-300 rounded my-4 border-dashed border-2\",children:/*#__PURE__*/_jsxs(\"dl\",{className:\"divide-y-2 divide-gray-200 divide-dashed text-left\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"px-4 py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6\",children:[/*#__PURE__*/_jsxs(\"dt\",{className:\"text-sm font-medium text-gray-900\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"far fa-user mr-2\"}),\" Lead Traveler\"]}),/*#__PURE__*/_jsx(\"dd\",{className:\"mt-1 text-sm text-gray-700 sm:col-span-2 sm:mt-0\",children:name||\"Guest\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"px-4 py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6\",children:[/*#__PURE__*/_jsxs(\"dt\",{className:\"text-sm font-medium text-gray-900\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"far fa-calendar mr-2\"}),\" \",\"Date\"]}),/*#__PURE__*/_jsx(\"dd\",{className:\"mt-1 text-sm text-gray-700 sm:col-span-2 sm:mt-0\",children:formatDate(selectedDate)})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"px-4 py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6\",children:[/*#__PURE__*/_jsxs(\"dt\",{className:\"text-sm font-medium text-gray-900\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"far fa-clock mr-2\"}),\" Start Time\"]}),/*#__PURE__*/_jsx(\"dd\",{className:\"mt-1 text-sm text-gray-700 sm:col-span-2 sm:mt-0\",children:selectedTime})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"px-4 py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6\",children:[/*#__PURE__*/_jsxs(\"dt\",{className:\"text-sm font-medium text-gray-900\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"fa-solid fa-users mr-2\"}),\" \",\"Number of Guests\"]}),/*#__PURE__*/_jsx(\"dd\",{className:\"mt-1 text-sm text-gray-700 sm:col-span-2 sm:mt-0\",children:numberOfPeople})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"px-4 py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6\",children:[/*#__PURE__*/_jsxs(\"dt\",{className:\"text-sm font-medium text-gray-900\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"far fa-file-alt mr-2\"}),\" \",\"Booking Reference\"]}),/*#__PURE__*/_jsx(\"dd\",{className:\"mt-1 text-sm text-gray-700 sm:col-span-2 sm:mt-0\",children:bookingRef})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"px-4 py-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6\",children:[/*#__PURE__*/_jsxs(\"dt\",{className:\"text-sm font-medium text-gray-900\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"fa-solid fa-dollar-sign mr-2\"}),\" \",\"Total Price\"]}),/*#__PURE__*/_jsxs(\"dd\",{className:\"mt-1 text-sm text-gray-700 sm:col-span-2 sm:mt-0 text-lg text-blue-900\",children:[currencySymbol,formatPrice(price)]})]})]})}),/*#__PURE__*/_jsxs(\"div\",{className:\"mb-4 w-full\",children:[/*#__PURE__*/_jsx(\"button\",{className:\"bg-blue-900 text-white rounded py-3 px-6 mb-4 hover:bg-blue-700 w-full\",onClick:()=>{const selectedSlot=currentWorkshop.slots.find(slot=>slot.start_time===selectedTime);downloadICS({id:currentWorkshop.id,name:currentWorkshop.name,date:selectedDate,startTime:selectedSlot.start_time,endTime:selectedSlot.end_time,bookingRef:bookingRef,location:eventLocation});},children:\"Add to Calendar\"}),/*#__PURE__*/_jsx(\"a\",{href:\"https://istanbulworkshops.com/contact\",className:\"block w-full\",children:/*#__PURE__*/_jsx(\"button\",{className:\"bg-gray-300 text-gray-800 rounded py-3 px-6 hover:bg-gray-400 w-full\",children:\"Contact Support\"})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"py-6\",children:[/*#__PURE__*/_jsx(\"dt\",{className:\"text-sm font-medium text-red-500\",children:\"Note\"}),/*#__PURE__*/_jsxs(\"dd\",{className:\"mt-1 text-sm text-gray-700 sm:mt-0\",children:[\"We will contact you as soon as possible with detailed arrival instructions. If you have any immediate questions or concerns, feel free to reach out to us directly on WhatsApp.\",/*#__PURE__*/_jsxs(\"a\",{href:`https://wa.me/905331676271?text=Hello%20there,%20%0A%0AI%20have%20booked%20an%20event%20on%20the%20website.%0AMy%20booking%20reference%20is%20${bookingRef}.%0AI%20have%20booked%20for%20the%20${eventName}%20on%20${formatDate(selectedDate)}%20at%20${selectedTime}.`,className:\"block py-3 px-6 bg-green-600 text-white font-bold rounded hover:bg-green-700 mt-4 w-full\",target:\"_blank\",rel:\"noopener noreferrer\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"fab fa-whatsapp mr-2\"}),\" Chat with us on WhatsApp\"]})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"justify-center text-right\"})]})]});}// Conditional Rendering for Loading Event Data\nif(!currentWorkshop){return /*#__PURE__*/_jsx(\"div\",{className:\"flex flex-col overflow-auto p-5 bg-blue-900 rounded-xl max-w-md mx-auto text-white text-base w-full min-w-full\",children:/*#__PURE__*/_jsx(\"h2\",{className:\"mb-2.5 text-white text-2xl font-bold\",children:\"Loading event details...\"})});}return /*#__PURE__*/_jsx(\"div\",{id:\"booking-form-container\",className:\"w-full relative z-35\",children:/*#__PURE__*/_jsx(\"div\",{ref:containerRef,className:\"flex flex-col items-center justify-center overflow-auto p-5 bg-blue-900 rounded-xl max-w-md mx-auto text-white text-base w-full min-w-full\",style:fontInter,children:/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,className:\"w-full flex flex-col items-start gap-2.5 min-w-full\",children:[/*#__PURE__*/_jsx(\"h2\",{className:\"mb-2.5 text-white text-2xl font-bold\",children:\"Select participants, date, and language\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex flex-col gap-2 w-full sm:flex-row\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"flex-1\",children:/*#__PURE__*/_jsx(\"select\",{value:numberOfPeople,style:{WebkitAppearance:\"none\"},className:\"mt-2 block w-full rounded-full border-0 py-1.5 pl-3 text-gray-900 pr-2 ring-1 ring-inset ring-gray-300 h-12 focus:ring-2 focus:ring-indigo-600\",onChange:e=>{setNumberOfPeople(parseInt(e.target.value,10));setAvailabilityError(\"\")// Clear error when number of people changes\n;},children:availableTimes.length>0?[...Array(Math.min(parseInt(availableTimes[0].max_people,10)||15,Math.max(1,...availableTimes.map(slot=>parseInt(slot.available,10)||1))))].map((_,num)=>/*#__PURE__*/_jsxs(\"option\",{value:num+1,children:[num+1,\" x participants\"]},num)):/*#__PURE__*/_jsx(\"option\",{value:1,children:\"1 x participants\"})})}),/*#__PURE__*/_jsx(\"div\",{className:\"flex-1\",children:/*#__PURE__*/_jsx(\"input\",{type:\"date\",value:selectedDate,onChange:e=>{setSelectedDate(e.target.value);setAvailabilityError(\"\")// Clear error when date changes\n;},className:\"mt-2 block w-full rounded-full border-0 py-1.5 pl-3 text-gray-900 pr-2 ring-1 ring-inset ring-gray-300 h-12 focus:ring-2 focus:ring-indigo-600\",style:{WebkitAppearance:\"none\",MozAppearance:\"none\",appearance:\"none\"},min:firstAvailableDate})}),/*#__PURE__*/_jsx(\"div\",{className:\"flex-1\",children:/*#__PURE__*/_jsx(\"select\",{value:language,style:{WebkitAppearance:\"none\"},className:\"mt-2 block w-full rounded-full border-0 py-1.5 pl-3 text-gray-900 pr-2 ring-1 ring-inset ring-gray-300 h-12 focus:ring-2 focus:ring-indigo-600\",onChange:e=>{setLanguage(e.target.value);setAvailabilityError(\"\")// Clear error when language changes\n;},children:currentWorkshop?.languages?.map(lang=>/*#__PURE__*/_jsx(\"option\",{value:lang,children:lang},lang))||/*#__PURE__*/_jsx(\"option\",{value:\"English\",children:\"English\"})})})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:checkAvailability,className:\"mt-2.5 w-full h-12 bg-blue-600 text-white border-none rounded-full cursor-pointer flex justify-center items-center\",children:isLoading?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-spinner fa-spin mr-2\"}),\" \",\"Checking...\"]}):\"Check Availability\"}),availabilityError&&/*#__PURE__*/_jsx(\"div\",{className:\"mt-4 text-left w-full\",children:/*#__PURE__*/_jsx(\"h3\",{className:\"text-3xl font-bold text-white\",children:availabilityError})}),showSecondPartForm&&availableTimes.filter(slot=>parseInt(slot.available,10)>0).length===0?/*#__PURE__*/_jsx(\"div\",{className:\"mt-5 bg-white rounded-xl text-black p-5 w-full\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"text-center\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-calendar-times text-4xl text-red-500 mb-4\"}),/*#__PURE__*/_jsx(\"h3\",{className:\"text-xl font-bold mb-2\",children:\"No Available Slots\"}),/*#__PURE__*/_jsx(\"p\",{className:\"text-gray-600 mb-4\",children:\"There are no available slots for this date. Please try selecting a different date.\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>{setShowSecondPartForm(false);setSelectedTime(\"\");setAvailabilityError(\"\");},className:\"bg-blue-600 text-white px-6 py-2 rounded-full hover:bg-blue-700 transition-colors\",children:\"Choose Another Date\"})]})}):showSecondPartForm&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mt-5 bg-white rounded-xl text-black p-5 w-full\",children:[/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsxs(\"h3\",{className:\"text-xl font-bold\",children:[\" \",eventName,\" \"]})}),/*#__PURE__*/_jsx(\"div\",{className:\"h-0.5 w-full bg-gray-100 my-5\"}),/*#__PURE__*/_jsxs(\"label\",{className:\"font-bold\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"fa-regular fa-clock\"}),\" \",\"Select a starting time\"]}),/*#__PURE__*/_jsxs(\"div\",{className:\"py-2\",children:[\" \",selectedDate&&/*#__PURE__*/_jsxs(\"p\",{children:[\" \",formatDate(selectedDate)]}),\" \"]}),/*#__PURE__*/_jsx(\"div\",{className:\"flex flex-row flex-wrap justify-start gap-2.5\",children:availableTimes.filter(slot=>parseInt(slot.available,10)>0).map(slot=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:`inline-flex items-center px-4 py-2 border border-gray-300 rounded-lg text-base cursor-pointer ${selectedTime===slot.start_time?\"bg-blue-900 text-white border-blue-900\":\"bg-white text-blue-900\"}`,onClick:()=>handleTimeSelection(slot.start_time),children:formatTime(slot.start_time)},slot.start_time))}),selectedTime&&parseInt(selectedSlotAvailable,10)>0&&/*#__PURE__*/_jsx(\"p\",{className:\"mt-2 text-lg\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"inline-flex items-center gap-x-1.5 rounded-lg bg-red-100 px-2 py-1 text-xs font-medium text-red-700\",children:[\"Only\",\" \",/*#__PURE__*/_jsx(\"strong\",{children:selectedSlotAvailable}),\" \",\"slots left\"]})}),/*#__PURE__*/_jsx(\"div\",{className:\"font-medium text-base pt-2\",children:\"Name\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"relative mt-2 rounded-md shadow-sm\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:name,onChange:handleNameChange,onBlur:handleNameBlur,className:`block w-full rounded-md py-2 px-3 pr-10 ${nameTouched&&!isValidName(name)?\"text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-red-500\":\"ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-indigo-600\"} sm:text-sm sm:leading-6`,placeholder:\"Full Name\",\"aria-invalid\":nameTouched&&!isValidName(name)?\"true\":\"false\"}),nameTouched&&isValidName(name)&&/*#__PURE__*/_jsx(\"div\",{className:\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\",children:/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-check-circle text-green-500\"})}),nameTouched&&!isValidName(name)&&/*#__PURE__*/_jsx(\"div\",{className:\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\",children:/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-exclamation-circle text-red-500\"})})]}),nameTouched&&!isValidName(name)&&/*#__PURE__*/_jsx(\"p\",{className:\"mt-2 text-sm text-red-600\",id:\"name-error\",children:\"Name must be at least 2 characters and may include spaces, hyphens, and apostrophes.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"font-medium text-base pt-2\",children:\"Email\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"relative mt-2 rounded-md shadow-sm\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"email\",value:email,onChange:handleEmailChange,onBlur:handleEmailBlur,className:`block w-full rounded-md py-2 px-3 pr-10 ${emailTouched&&!isValidEmail(email)?\"text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-red-500\":\"ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-indigo-600\"} sm:text-sm sm:leading-6`,placeholder:\"you@example.com\",\"aria-invalid\":emailTouched&&!isValidEmail(email)?\"true\":\"false\"}),emailTouched&&isValidEmail(email)&&/*#__PURE__*/_jsx(\"div\",{className:\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\",children:/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-check-circle text-green-500\"})}),emailTouched&&!isValidEmail(email)&&/*#__PURE__*/_jsx(\"div\",{className:\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\",children:/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-exclamation-circle text-red-500\"})})]}),emailTouched&&!isValidEmail(email)&&/*#__PURE__*/_jsx(\"p\",{className:\"mt-2 text-sm text-red-600\",id:\"email-error\",children:\"Not a valid email address.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"font-medium text-base pt-2\",children:\"Phone Number\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"relative mt-2 rounded-md shadow-sm\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"tel\",value:phoneNumber,onChange:handlePhoneNumberChange,onBlur:handlePhoneNumberBlur,className:`block w-full rounded-md py-2 px-3 pr-10 ${phoneNumberTouched&&!isValidPhoneNumber(phoneNumber).isValid?\"text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-red-500\":\"ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-indigo-600\"} sm:text-sm sm:leading-6`,placeholder:\"e.g., +901234567890\",\"aria-invalid\":phoneNumberTouched&&!isValidPhoneNumber(phoneNumber).isValid?\"true\":\"false\"}),phoneNumberTouched&&isValidPhoneNumber(phoneNumber).isValid&&/*#__PURE__*/_jsx(\"div\",{className:\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\",children:/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-check-circle text-green-500\"})}),phoneNumberTouched&&!isValidPhoneNumber(phoneNumber).isValid&&/*#__PURE__*/_jsx(\"div\",{className:\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3\",children:/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-exclamation-circle text-red-500\"})})]}),phoneNumberTouched&&!isValidPhoneNumber(phoneNumber).isValid&&/*#__PURE__*/_jsx(\"p\",{className:\"mt-2 text-sm text-red-600\",id:\"phone-number-error\",children:isValidPhoneNumber(phoneNumber).errorMessage}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex-1 mt-2.5 w-full\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"font-medium text-base pt-2\",children:\"Referral Code (optional)\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"mt-2 flex\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:referralCode,onChange:e=>{setReferralCode(e.target.value);setReferralCodeValid(null)// Reset validation status\n;setReferralCodeError(\"\");setDiscountPercent(0);},className:\"block w-full rounded-l-full border-0 py-1.5 pl-3 text-gray-900 ring-1 ring-inset ring-gray-300 h-12 focus:ring-2 focus:ring-indigo-600\",placeholder:\"Enter your referral code\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleApplyReferralCode,className:`rounded-r-full px-4 py-1.5 h-12 inline-flex items-center justify-center whitespace-nowrap ${referralCode.trim()&&isValidEmail(email)?\"bg-blue-600 text-white\":\"bg-gray-200 text-gray-600 cursor-not-allowed\"}`,disabled:!referralCode.trim()||!isValidEmail(email),children:isReferralCodeLoading?/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-spinner fa-spin\"}):\"Apply Code\"})]}),referralCodeError&&/*#__PURE__*/_jsx(\"p\",{className:\"mt-2 text-sm text-red-600\",children:referralCodeError}),referralCodeValid&&/*#__PURE__*/_jsxs(\"div\",{className:\"mt-2 text-sm text-green-600\",children:[/*#__PURE__*/_jsx(\"p\",{children:\"Referral code applied!\"}),/*#__PURE__*/_jsxs(\"p\",{children:[\"Enjoy an extra\",\" \",discountPercent,'% off with the \"',referralCode,'\" coupon.']})]}),maxUsagePerUser>0&&numberOfPeople>maxUsagePerUser&&/*#__PURE__*/_jsxs(\"div\",{className:\"mt-2 p-3 bg-yellow-100 text-yellow-700 rounded\",children:[\"The discount is applied to only \",maxUsagePerUser,\" \",\"participant\",maxUsagePerUser>1?\"s\":\"\",\".\"]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bg-gray-100 rounded-lg p-5 mt-3.5\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"flex justify-between items-center mb-2\",children:/*#__PURE__*/_jsx(\"div\",{className:\"text-xs text-gray-500\",children:\"Total price\"})}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex justify-between items-center mb-2\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"text-3xl font-bold text-red-600\",children:isChangingCurrency?/*#__PURE__*/_jsx(\"div\",{className:\"animate-pulse bg-gray-200 h-8 w-24 rounded\"}):/*#__PURE__*/_jsxs(_Fragment,{children:[currencySymbol,formatPrice(price)]})}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",onClick:toggleCurrency,disabled:isChangingCurrency,className:`flex items-center gap-1.5 text-gray-600 hover:text-gray-800 transition-colors text-sm bg-white px-3 py-1.5 rounded-full border border-gray-200 shadow-sm ${isChangingCurrency?\"opacity-50 cursor-not-allowed\":\"\"}`,children:[/*#__PURE__*/_jsx(\"span\",{children:preferredCurrency===\"tr\"?\"\u20BA TRY\":\"$ USD\"}),isChangingCurrency?/*#__PURE__*/_jsx(\"i\",{className:\"fas fa-spinner fa-spin text-sm\"}):/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 9l4-4 4 4m0 6l-4 4-4-4\"})})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"text-sm text-gray-500\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"line-through\",children:[currencySymbol,formatPrice(originalPrice)]}),\" \",\"-\",\" \",DEFAULT_DISCOUNT_PERCENT+discountPercent,\"%\",\" \"]}),/*#__PURE__*/_jsx(\"div\",{className:\"text-xs text-gray-500\",children:\"All taxes and fees included\"})]})]}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",className:`mt-5 w-full h-12 rounded-full text-white ${isValidForm()?\"bg-blue-600 cursor-pointer\":\"bg-gray-200 text-gray-600 cursor-not-allowed\"}`,disabled:!isValidForm(),onClick:event=>{scrollToTop();handleSubmit(event);},children:\"Reserve Now Pay later\"})]})]})})});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Booking\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BookingTest.map", "// Welcome to Code in Framer\n// Get Started: https://www.framer.com/developers/\n/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useState}from\"react\";// Mapping of keywords to event IDs\nconst eventMapping={mosaic:\"1\",\"turkish-coffee\":\"2\",stained:\"3\",perfume:\"4\",\"tile-painting\":\"5\",\"leather-crafting\":\"6\"};const TAILWIND_CACHE_KEY=\"tw-cache-v1\"// Version the cache in case we need to update it later\n;const scrollToBookingForm=()=>{const bookingForm=document.getElementById(\"booking-form-container\");if(bookingForm){bookingForm.scrollIntoView({behavior:\"smooth\",block:\"start\"});}};export default function CheckAvailability(props){const[workshopData,setWorkshopData]=useState({usd:null,try:null});const[isInitialLoading,setIsInitialLoading]=useState(true);const[userLocale,setUserLocale]=useState(\"\");const[preferredCurrency,setPreferredCurrency]=useState(\"\");// Optimized Tailwind CSS injection with caching\nuseEffect(()=>{const injectTailwind=()=>{const existingLink=document.querySelector('link[href*=\"tailwindcss\"]');if(!existingLink){const twLink=document.createElement(\"link\");twLink.href=\"https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css\";twLink.rel=\"stylesheet\";document.head.appendChild(twLink);// Cache the injection timestamp\ntry{localStorage.setItem(TAILWIND_CACHE_KEY,Date.now().toString());}catch(e){console.warn(\"Failed to cache Tailwind injection:\",e);}}};// Check if cached and not expired (24 hours)\ntry{const cachedTime=localStorage.getItem(TAILWIND_CACHE_KEY);const CACHE_DURATION=24*60*60*1e3// 24 hours in milliseconds\n;if(!cachedTime||Date.now()-parseInt(cachedTime)>CACHE_DURATION){injectTailwind();}}catch(e){// If localStorage is not available, just inject\ninjectTailwind();}},[])// Empty dependency array since this should only run once\n;// Fetch both currencies on initial load\nuseEffect(()=>{const fetchWorkshopData=async()=>{try{// Get user's locale\nconst locale=navigator.language;setUserLocale(locale);// Determine initial currency\nconst initialCurrency=locale.startsWith(\"tr\")?\"tr\":\"en\";setPreferredCurrency(initialCurrency);// Get event ID from URL\nlet finalEventId=props.eventId||\"1\";if(typeof window!==\"undefined\"){const url=window.location.href.toLowerCase();for(const[key,value]of Object.entries(eventMapping)){if(url.includes(key)){finalEventId=value;break;}}}// Fetch both currencies in parallel\nconst today=new Date().toISOString().split(\"T\")[0];const[tryResponse,usdResponse]=await Promise.all([fetch(`https://crm.istanbulworkshops.com/framerAssets/apiTest.php?eventId=${finalEventId}&locale=tr&date=${today}`),fetch(`https://crm.istanbulworkshops.com/framerAssets/apiTest.php?eventId=${finalEventId}&locale=en&date=${today}`)]);const[tryData,usdData]=await Promise.all([tryResponse.json(),usdResponse.json()]);setWorkshopData({try:tryData,usd:usdData});}catch(error){console.error(\"Error fetching workshop data:\",error);}finally{setIsInitialLoading(false);}};fetchWorkshopData();},[props.eventId])// Only run on mount and eventId change\n;const toggleCurrency=()=>{setPreferredCurrency(prev=>prev===\"tr\"?\"en\":\"tr\");};// Show loading skeleton only during initial load\nif(isInitialLoading){return /*#__PURE__*/_jsx(\"div\",{className:\"flex justify-center items-center min-h-full\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"bg-white rounded-2xl p-6 w-full shadow-sm relative border-4 !border-amber-50 border-solid animate-pulse\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"h-10 w-48 bg-gray-200 rounded mb-6\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex flex-col gap-4 mb-6\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"flex items-center gap-3\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"w-6 h-6 bg-gray-200 rounded-full\"}),/*#__PURE__*/_jsx(\"div\",{className:\"h-6 w-32 bg-gray-200 rounded\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex items-center gap-3\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"w-6 h-6 bg-gray-200 rounded-full\"}),/*#__PURE__*/_jsx(\"div\",{className:\"h-6 w-32 bg-gray-200 rounded\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex justify-between items-start mb-6\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{className:\"h-4 w-24 bg-gray-200 rounded mb-2\"}),/*#__PURE__*/_jsx(\"div\",{className:\"h-8 w-32 bg-gray-200 rounded mb-2\"}),/*#__PURE__*/_jsx(\"div\",{className:\"h-4 w-16 bg-gray-200 rounded\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bg-gray-50 px-5 py-4 rounded-xl\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"h-8 w-16 bg-gray-200 rounded mb-1\"}),/*#__PURE__*/_jsx(\"div\",{className:\"h-4 w-12 bg-gray-200 rounded\"})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"w-full h-12 bg-gray-200 rounded-lg mb-4\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex items-center gap-2\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"w-6 h-6 bg-gray-200 rounded-full\"}),/*#__PURE__*/_jsx(\"div\",{className:\"h-4 w-40 bg-gray-200 rounded\"})]})]})});}// Get current workshop based on preferred currency\nconst workshop=preferredCurrency===\"tr\"?workshopData.try:workshopData.usd;if(!workshop)return null;const features=[{id:\"secure\",icon:/*#__PURE__*/_jsx(SecureIcon,{}),text:\"Secure your spot\"},{id:\"cancel\",icon:/*#__PURE__*/_jsx(CancelIcon,{}),text:\"Cancel anytime\"}];return /*#__PURE__*/_jsxs(\"div\",{className:\"flex justify-center items-center min-h-full\",children:[process.env.NODE_ENV===\"development\"&&/*#__PURE__*/_jsx(\"div\",{className:\"absolute top-0 left-0 bg-black/80 text-white p-2 text-xs\",children:/*#__PURE__*/_jsx(\"pre\",{children:JSON.stringify({url:typeof window!==\"undefined\"?window.location.href:\"\",finalEventId:props.eventId||\"1\"},null,2)})}),/*#__PURE__*/_jsxs(\"div\",{className:\"bg-white rounded-2xl p-6 w-full shadow-sm relative border-4 !border-amber-50 border-solid\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"absolute top-6 right-6\",children:/*#__PURE__*/_jsxs(\"button\",{onClick:toggleCurrency,className:\"flex items-center gap-1.5 text-gray-400 hover:text-gray-600 transition-colors text-sm\",children:[/*#__PURE__*/_jsx(\"span\",{children:workshop.currency===\"TRY\"?\"\u20BA TRY\":\"$ USD\"}),/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 9l4-4 4 4m0 6l-4 4-4-4\"})})]})}),/*#__PURE__*/_jsx(\"h1\",{className:\"text-4xl font-bold mb-6 font-inter\",children:\"Reservation\"}),/*#__PURE__*/_jsx(\"div\",{className:\"flex flex-col gap-4 mb-6\",children:features.map(feature=>/*#__PURE__*/_jsxs(\"div\",{className:\"flex items-center gap-3 text-gray-800\",children:[feature.icon,/*#__PURE__*/_jsx(\"span\",{className:\"text-lg font-medium\",children:feature.text})]},feature.id))}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex justify-between items-start mb-6\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"text-sm text-gray-500 line-through mb-1\",children:[\"From \",workshop.price]}),/*#__PURE__*/_jsx(\"div\",{className:\"text-3xl font-bold text-red-500\",children:workshop.discountedPrice}),/*#__PURE__*/_jsx(\"div\",{className:\"text-base text-gray-500\",children:\"person\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bg-gray-50 px-5 py-4 rounded-xl text-center\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"block text-3xl font-semibold text-red-500\",children:workshop.discount}),/*#__PURE__*/_jsx(\"span\",{className:\"text-sm text-gray-500\",children:\"discount\"})]})]}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{scrollToBookingForm();props.onCheckAvailability?.();},className:\"w-full py-2.5 bg-red-500 text-white rounded-lg text-xl font-semibold cursor-pointer mb-4 hover:bg-red-600 transition-colors\",children:\"Check Availability\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex items-center gap-2 text-gray-500\",children:[/*#__PURE__*/_jsx(CheckIcon,{}),/*#__PURE__*/_jsx(\"span\",{className:\"text-sm\",children:\"No credit card required\"})]})]})]});}// Property Controls\naddPropertyControls(CheckAvailability,{eventId:{type:ControlType.String,defaultValue:\"1\",title:\"Event ID\"},onCheckAvailability:{type:ControlType.EventHandler}});// Icons\nconst SecureIcon=()=>/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",fill:\"#000000\",viewBox:\"0 0 256 256\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M225.86,102.82c-3.77-3.94-7.67-8-9.14-11.57-1.36-3.27-1.44-8.69-1.52-13.94-.15-9.76-.31-20.82-8-28.51s-18.75-7.85-28.51-8c-5.25-.08-10.67-.16-13.94-1.52-3.56-1.47-7.63-5.37-11.57-9.14C146.28,23.5138.44,16,128,16s-18.27,7.51-25.18,14.14c-3.94,3.77-8,7.67-11.57,9.14C88,40.64,82.56,40.72,77.31,40.8c-9.76.15-20.82.31-28.51,8S41,67.55,40.8,77.31c-.08,5.25-.16,10.67-1.52,13.94-1.47,3.56-5.37,7.63-9.14,11.57C23.51,109.72,16,117.56,16,128s7.51,18.27,14.14,25.18c3.77,3.94,7.67,8,9.14,11.57,1.36,3.27,1.44,8.69,1.52,13.94.15,9.76.31,20.82,8,28.51s18.75,7.85,28.51,8c5.25.08,10.67.16,13.94,1.52,3.56,1.47,7.63,5.37,11.57,9.14C109.72,232.49,117.56,240,128,240s18.27-7.51,25.18-14.14c3.94-3.77,8-7.67,11.57-9.14,3.27-1.36,8.69-1.44,13.94-1.52,9.76-.15,20.82-.31,28.51-8s7.85-18.75,8-28.51c.08-5.25.16-10.67,1.52-13.94,1.47-3.56,5.37-7.63,9.14-11.57C232.49,146.28,240,138.44,240,128S232.49,109.73,225.86,102.82Zm-11.55,39.29c-4.79,5-9.75,10.17-12.38,16.52-2.52,6.1-2.63,13.07-2.73,19.82-.1,7-.21,14.33-3.32,17.43s-10.39,3.22-17.43,3.32c-6.75.1-13.72.21-19.82,2.73-6.35,2.63-11.52,7.59-16.52,12.38S132,224,128,224s-9.15-4.92-14.11-9.69-10.17-9.75-16.52-12.38c-6.1-2.52-13.07-2.63-19.82-2.73-7-.1-14.33-.21-17.43-3.32s-3.22-10.39-3.32-17.43c-.1-6.75-.21-13.72-2.73-19.82-2.63-6.35-7.59-11.52-12.38-16.52S32,132,32,128s4.92-9.15,9.69-14.11,9.75-10.17,12.38-16.52c2.52-6.1,2.63-13.07,2.73-19.82.1-7,.21-14.33,3.32-17.43S70.51,56.9,77.55,56.8c6.75-.1,13.72-.21,19.82-2.73,6.35-2.63,11.52-7.59,16.52-12.38S124,32,128,32s9.15,4.92,14.11,9.69,10.17,9.75,16.52,12.38c6.1,2.52,13.07,2.63,19.82,2.73,7,.1,14.33.21,17.43,3.32s3.22,10.39,3.32,17.43c.1,6.75.21,13.72,2.73,19.82,2.63,6.35,7.59,11.52,12.38,16.52S224,124,224,128,219.08,137.15,214.31,142.11ZM173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34Z\"})});const CancelIcon=()=>/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",fill:\"#000000\",viewBox:\"0 0 256 256\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M216,40H40A16,16,0,0,0,24,56V208a8,8,0,0,0,11.58,7.15L64,200.94l28.42,14.21a8,8,0,0,0,7.16,0L128,200.94l28.42,14.21a8,8,0,0,0,7.16,0L192,200.94l28.42,14.21A8,8,0,0,0,232,208V56A16,16,0,0,0,216,40Zm0,155.06-20.42-10.22a8,8,0,0,0-7.16,0L160,199.06l-28.42-14.22a8,8,0,0,0-7.16,0L96,199.06,67.58,184.84a8,8,0,0,0-7.16,0L40,195.06V56H216ZM98.34,138.34,116.69,120,98.34,101.66a8,8,0,0,1,11.32-11.32L128,108.69l18.34-18.35a8,8,0,0,1,11.32,11.32L139.31,120l18.35,18.34a8,8,0,0,1-11.32,11.32L128,131.31l-18.34,18.35a8,8,0,0,1-11.32-11.32Z\"})});const CheckIcon=()=>/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",fill:\"#000000\",viewBox:\"0 0 256 256\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"})});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CheckAvailability\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CheckAvailability.map", "/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useState,useCallback,useMemo}from\"react\";// Add event mapping\nconst eventMapping={mosaic:\"1\",\"turkish-coffee\":\"2\",stained:\"3\",perfume:\"4\",\"tile-painting\":\"5\"};// Pre-render loading skeleton\nconst LoadingSkeleton=()=>/*#__PURE__*/_jsxs(\"div\",{className:\"fixed bottom-0 left-0 right-0 bg-white border-t border-gray-200 p-4 flex items-center justify-between animate-pulse\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"space-y-2\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"h-4 w-16 bg-gray-200 rounded\"}),/*#__PURE__*/_jsx(\"div\",{className:\"h-6 w-24 bg-gray-200 rounded\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"h-12 w-40 bg-gray-200 rounded-lg\"})]});// Pre-render currency toggle icon\nconst CurrencyToggleIcon=()=>/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",className:\"ml-1\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 9l4-4 4 4m0 6l-4 4-4-4\"})});const scrollToBookingForm=()=>{const bookingForm=document.getElementById(\"booking-form-container\");if(bookingForm){bookingForm.scrollIntoView({behavior:\"smooth\",block:\"start\"});}};export default function MobileReservationBar(props){const[workshopData,setWorkshopData]=useState({usd:null,try:null});const[isLoading,setIsLoading]=useState(true);const[userLocale,setUserLocale]=useState(\"\");const[preferredCurrency,setPreferredCurrency]=useState(\"\");const[eventId,setEventId]=useState(null);// Initialize locale and event ID on mount\nuseEffect(()=>{if(typeof window!==\"undefined\"){// Set locale\nconst locale=navigator.language;setUserLocale(locale);setPreferredCurrency(locale.startsWith(\"tr\")?\"tr\":\"en\");// Get event ID from URL\nconst url=window.location.href.toLowerCase();let foundEventId=props.eventId||\"1\";for(const[key,value]of Object.entries(eventMapping)){if(url.includes(key)){foundEventId=value;break;}}setEventId(foundEventId);}},[props.eventId]);// Memoize the fetch function\nconst fetchWorkshopData=useCallback(async()=>{if(!eventId)return;try{const today=new Date().toISOString().split(\"T\")[0];const[tryResponse,usdResponse]=await Promise.all([fetch(`https://crm.istanbulworkshops.com/framerAssets/apiTest.php?eventId=${eventId}&locale=tr&date=${today}`),fetch(`https://crm.istanbulworkshops.com/framerAssets/apiTest.php?eventId=${eventId}&locale=en&date=${today}`)]);const[tryData,usdData]=await Promise.all([tryResponse.json(),usdResponse.json()]);setWorkshopData({try:tryData,usd:usdData});}catch(error){console.error(\"Error fetching workshop data:\",error);}finally{setIsLoading(false);}},[eventId]);// Only fetch when we have an eventId\nuseEffect(()=>{if(eventId){fetchWorkshopData();}},[fetchWorkshopData,eventId]);// Memoize toggle function\nconst toggleCurrency=useCallback(()=>{setPreferredCurrency(prev=>prev===\"tr\"?\"en\":\"tr\");},[]);// Memoize current workshop data\nconst workshop=useMemo(()=>preferredCurrency===\"tr\"?workshopData.try:workshopData.usd,[preferredCurrency,workshopData]);if(isLoading)return /*#__PURE__*/_jsx(LoadingSkeleton,{});if(!workshop)return null;return /*#__PURE__*/_jsxs(\"div\",{className:\"fixed bottom-0 left-0 right-0 bg-white border-t border-gray-200 p-4 flex items-center justify-between transform translate-z-0\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"flex flex-col\",children:[/*#__PURE__*/_jsxs(\"button\",{onClick:toggleCurrency,className:\"text-sm text-gray-500 flex items-center\",children:[\"From \",/*#__PURE__*/_jsx(\"span\",{className:\"line-through\",children:workshop.price}),/*#__PURE__*/_jsx(\"span\",{className:\"ml-1 text-gray-400\",children:preferredCurrency===\"tr\"?\"TRY\":\"USD\"}),/*#__PURE__*/_jsx(CurrencyToggleIcon,{})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"flex items-baseline\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"text-3xl font-bold text-red-500\",children:workshop.discountedPrice}),/*#__PURE__*/_jsx(\"span\",{className:\"text-sm text-gray-700 ml-1\",children:\"per person\"})]})]}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{scrollToBookingForm();props.onCheckAvailability?.();},className:\"bg-red-500 text-white text-lg px-6 py-3 rounded-lg font-semibold hover:bg-red-600 transition-colors will-change-transform\",children:\"Check Availability\"})]});}// Add property controls for Framer\naddPropertyControls(MobileReservationBar,{eventId:{type:ControlType.String,title:\"Event ID\",defaultValue:\"1\"},onCheckAvailability:{type:ControlType.EventHandler}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MobileReservationBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MobileCheckAvailability.map"],
  "mappings": "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",
  "names": ["fontInter", "today", "VALID_EVENT_IDS", "Booking", "props", "containerRef", "pe", "scrollToTop", "DEFAULT_DISCOUNT_PERCENT", "maxUsagePerUser", "setMaxUsagePerUser", "ye", "eventMapping", "workshopData", "setWorkshopData", "userLocale", "setUserLocale", "preferredCurrency", "setPreferredCurrency", "selectedDate", "setSelectedDate", "numberOfPeople", "setNumberOfPeople", "language", "setLanguage", "selectedTime", "setSelectedTime", "price", "setPrice", "isLoading", "setIsLoading", "isAvailabilityChecked", "setIsAvailabilityChecked", "urlParams", "setUrlParams", "referralCodeFromURL", "setReferralCodeFromURL", "urlEventId", "setUrlEventId", "availabilityError", "setAvailabilityError", "referralCode", "setReferralCode", "discountPercent", "setDiscountPercent", "referralCodeValid", "setReferralCodeValid", "referralCodeError", "setReferralCodeError", "isReferralCodeLoading", "setIsReferralCodeLoading", "availabilityCheckedOnce", "setAvailabilityCheckedOnce", "name", "setName", "nameTouched", "setNameTouched", "email", "setEmail", "phoneNumber", "setPhoneNumber", "bookingSuccess", "setBookingSuccess", "eventLocation", "setEventLocation", "eventName", "setEventName", "showSecondPartForm", "setShowSecondPartForm", "originalPrice", "setOriginalPrice", "bookingRef", "setBookingRef", "selectedSlotAvailable", "setSelectedSlotAvailable", "emailTouched", "setEmailTouched", "phoneNumberTouched", "setPhoneNumberTouched", "dateAdjustedMessage", "setDateAdjustedMessage", "firstAvailableDate", "setFirstAvailableDate", "availableTimes", "setAvailableTimes", "currentWorkshop", "setCurrentWorkshop", "currencySymbol", "setCurrencySymbol", "isCheckingAvailability", "setIsCheckingAvailability", "isShowingNextAvailable", "setIsShowingNextAvailable", "isChangingCurrency", "setIsChangingCurrency", "CACHE_DURATION", "currencyCache", "setCurrencyCache", "ue", "parseUrl", "window", "params", "refCode", "findEventIdFromUrl", "url", "retryCount", "eventIdParam", "key", "value", "id", "fullUrl", "eventId", "foundEventId", "handleUrlChange", "fetchData", "apiUrl", "response", "responseData", "prev", "error", "generateBookingRef", "updatePrice", "incrementDate", "dateStr", "days", "date", "findFirstAvailableDate", "dateToCheck", "maxDays", "i", "workshop", "slot", "findAvailableDate", "currentDate", "attemptsLeft", "nextDateUrl", "nextDateData", "handleNoAvailability", "calculatePrice", "time", "newPrice", "forceUpdate", "e", "handleTimeSelection", "selectedSlotData", "faLink", "twLink", "dpLink", "version", "libPhoneScript", "formatTime", "timeString", "hours", "minutes", "isValidEmail", "localPart", "domain", "domainParts", "part", "isValidPhoneNumber", "parsePhoneNumber", "parsedNumber", "numberWithoutCountry", "isValidName", "handleNameChange", "handleEmailChange", "handlePhoneNumberChange", "isValidForm", "isValid", "isBasicFormValid", "timestampStr", "handleSubmit", "event", "bookingData", "data", "handleNameBlur", "handleEmailBlur", "handlePhoneNumberBlur", "generateICS", "formatDate", "startDate", "endDate", "downloadICS", "icsContent", "blob", "link", "selectedSlot", "baseAmount", "discountedAmount", "baseTotal", "finalPrice", "eligiblePeople", "nonEligiblePeople", "eligiblePrice", "nonEligiblePrice", "checkAvailability", "handleApplyReferralCode", "toggleCurrency", "newCurrency", "cacheKey", "now", "cachedData", "formatPrice", "p", "u", "_", "num", "lang", "l", "eventMapping", "TAILWIND_CACHE_KEY", "scrollToBookingForm", "bookingForm", "CheckAvailability", "props", "workshopData", "setWorkshopData", "ye", "isInitialLoading", "setIsInitialLoading", "userLocale", "setUserLocale", "preferredCurrency", "setPreferredCurrency", "ue", "injectTailwind", "twLink", "e", "cachedTime", "CACHE_DURATION", "locale", "navigator", "initialCurrency", "finalEventId", "window", "url", "key", "value", "today", "tryResponse", "usdResponse", "tryData", "usdData", "error", "toggleCurrency", "prev", "p", "u", "workshop", "features", "SecureIcon", "CancelIcon", "feature", "CheckIcon", "addPropertyControls", "ControlType", "eventMapping", "LoadingSkeleton", "u", "p", "CurrencyToggleIcon", "scrollToBookingForm", "bookingForm", "MobileReservationBar", "props", "workshopData", "setWorkshopData", "ye", "isLoading", "setIsLoading", "userLocale", "setUserLocale", "preferredCurrency", "setPreferredCurrency", "eventId", "setEventId", "ue", "window", "locale", "navigator", "url", "foundEventId", "key", "value", "fetchWorkshopData", "te", "today", "tryResponse", "usdResponse", "tryData", "usdData", "error", "toggleCurrency", "prev", "workshop", "se", "addPropertyControls", "ControlType"]
}
