import time
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def scrape(driver, url):
    driver.get(url)

    try:
        # Wait for "Confirm location" or "View menu" if present
        WebDriverWait(driver, 20).until(
            EC.element_to_be_clickable(
                (By.XPATH, "//button[contains(text(), 'Pickup') or contains(text(), 'Pick')]")
            )
        ).click()
        print("✅ Clicked location confirmation.")
        time.sleep(2)
    except:
        print("ℹ️ No location popup appeared.")

    try:
        # Wait for "Confirm location" or "View menu" if present
        WebDriverWait(driver, 20).until(
            EC.element_to_be_clickable(
                (By.XPATH, "//button[contains(text(), 'Confirm location') or contains(text(), 'View menu')]")
            )
        ).click()
        print("✅ Clicked location confirmation.")
        time.sleep(2)
    except:
        print("ℹ️ No location popup appeared.")

    soup = BeautifulSoup(driver.page_source, 'html.parser')
    items = []

    for item_container in soup.select("div.item-container"):
        item_name = item_container.select_one(".w-product-title")
        item_price = item_container.select_one(".item__price-wrapper p span")
        if item_name and item_price:
            items.append({
                "name": item_name.get_text(strip=True),
                "price": item_price.get_text(strip=True)
            })

    return items