/* global React */ /* BOHAM Praia — Part D: Instagram, Visit, Footer */ (function () { const { Tag, Button } = window.BOHAMDesignSystem_8e9a1f; const WA = window.BOHAM_WA || 'https://wa.me/5586999857676'; const MAPS = 'https://maps.google.com/?q=BOHAM+Praia+Barra+Grande+Cajueiro+da+Praia+Piaui'; const MAPS_EMBED = 'https://www.google.com/maps?q=BOHAM%20Praia%20Barra%20Grande%20Piau%C3%AD&output=embed'; const IG = 'https://instagram.com/bohampraia'; const IG_HANDLE = '@bohampraia'; const TIKTOK = 'https://www.tiktok.com/@boham_praia'; const FACEBOOK = 'https://www.facebook.com/profile.php?id=61561050560191'; function TtIcon({ size = 17, color = 'currentColor' }) { return ( ); } function FbIcon({ size = 18, color = 'currentColor' }) { return ( ); } function WaIcon({ size = 18, color = 'currentColor' }) { return ( ); } function MapPinIcon({ size = 18, color = 'currentColor' }) { return ( ); } function IgIcon({ size = 18, color = 'currentColor' }) { return ( ); } // ---- Instagram pill button (brand gradient + glyph, like WhatsApp) ------- function IGButton({ size = 'md', label = 'Instagram', style = {} }) { const [hover, setHover] = React.useState(false); const sizes = { sm: { padding: '8px 16px', fontSize: 13, gap: 8, icon: 15 }, md: { padding: '12px 24px', fontSize: 14, gap: 9, icon: 17 } }; const s = sizes[size] || sizes.md; return ( ); } function Insta() { const lang = window.useBohamLang(); const [liveReady, setLiveReady] = React.useState(false); React.useEffect(() => { if (!window.customElements) return; let alive = true; window.customElements.whenDefined('behold-widget').then(() => {if (alive) setLiveReady(true);}); return () => {alive = false;}; }, []); const posts = [ { src: 'boham-site/photos/real-crowd-sunset.jpg', tag: L(lang, 'Golden hour', 'Hora dourada', 'Heure dorée') }, { src: 'boham-site/photos/kite-lesson.jpg', tag: L(lang, 'Wind\u2019s up', 'Entrou o vento', 'Le vent se lève') }, { src: 'boham-site/photos/real-lounge-couple.jpg', tag: L(lang, 'Long afternoons', 'Tardes longas', 'Longs après-midi') }, { src: 'boham-site/photos/real-pool.jpg', tag: L(lang, 'Pool days', 'Dias de piscina', 'Journées piscine') }, { src: 'boham-site/photos/real-stairs.jpg', tag: L(lang, 'The space', 'O espaço', 'Le lieu') }, { src: 'boham-site/photos/real-style.jpg', tag: L(lang, 'Casual chic', 'Casual chic', 'Casual chic') }]; const open = () => window.open(IG, '_blank'); return (
{L(lang, "What's on", 'Programação', 'Quoi de neuf ?')}

{L(lang, 'Stay in the know', 'Fique por dentro', 'Restez connectés')}

{L(lang, 'Sunset line-ups, live music, events and the day’s wind report all land on Instagram first. Follow along so you never miss a good one.', 'Line-ups do sunset, música ao vivo, eventos e a previsão de vento do dia chegam primeiro no Instagram. Acompanhe pra não perder nenhuma.', 'Les événements, la programmation, les conditions de vent, les meilleurs sunsets, et tout ce qui fait vivre BOHAM. Restez connectés pour ne rien manquer.')}

{/* profile bar */}
BOHAM Praia
{IG_HANDLE}
{L(lang, 'Kite point, restaurant & sunset bar in Barra Grande, Piauí', 'Pico de kite, restaurante & bar em Barra Grande, Piauí', 'Spot de kite, restaurant & sunet bar à Barra Grande, Piauí')}
{/* feed — constrained width, centered */}
{/* live Instagram feed (Behold) — renders on the deployed site */} {/* post grid — fallback shown until the live feed loads */}
{posts.map((p, n) => )}
{/* follow — title + social icons, leading into Visit */}
{L(lang, 'Follow', 'Siga', 'Suivez-nous')}
{[ { label: 'Instagram', url: IG, icon: }, { label: 'TikTok', url: TIKTOK, icon: }, { label: 'Facebook', url: FACEBOOK, icon: }]. map((s) => {e.currentTarget.style.transform = 'translateY(-3px)';e.currentTarget.style.background = 'var(--boham-clay)';}} onMouseLeave={(e) => {e.currentTarget.style.transform = 'none';e.currentTarget.style.background = 'var(--boham-teal)';}}> {s.icon} )}
); } // ---- Visit (cream) ------------------------------------------------------- function Visit() { const lang = window.useBohamLang(); const rows = [ { k: L(lang, 'Mon – Thu', 'Seg – Qui', 'Lun – Jeu'), v: '11:00 – 18:30' }, { k: L(lang, 'Fri – Sun', 'Sex – Dom', 'Ven – Dim'), v: L(lang, '11:00 – 19:00 · live music & DJ at sunset', '11:00 – 19:00 · música ao vivo & DJ no pôr do sol', '11:00 – 19:00 musique live & DJ au coucher du soleil') }]; return (
{/* visit card: info panel over photo */}
{L(lang, 'Visit', 'Visite', 'Visiter')}

{L(lang, 'SEE YOU AT BOHAM', 'ATÉ JÁ NO BOHAM', 'À BIENTÔT AU BOHAM')}

{L(lang, 'Walk in off the beach: no reservations, no fuss. Lunch, sunset or somewhere in between, there’s always room for one more.', 'Chega direto da praia: sem reserva, sem complicação. Almoço, pôr do sol ou qualquer hora no meio, sempre tem lugar pra mais um.', 'Entrez directement depuis la plage : sans réservation ni dress code. Pour déjeuner, pour un verre ou pour profiter du meilleur sunset de Barra Grande, il y a toujours une bonne raison de s’arrêter.')}

{rows.map((r) =>
{r.k}
{r.v}
)}
By the pool on the terracotta steps at BOHAM
{/* live map — beside the card on big screens */}
); } // ---- Footer (teal) ------------------------------------------------------- function Footer() { const lang = window.useBohamLang(); const cols = [ { h: L(lang, 'Find us', 'Onde estamos', 'Nous trouver'), items: ['Rua das Flores 35, Barra Grande', L(lang, 'Cajueiro da Praia, Piauí · CEP 64222-000', 'Cajueiro da Praia, Piauí · CEP 64222-000', 'Cajueiro da Praia, Piauí · CEP 64222-000'), L(lang, 'Brazil 🇧🇷', 'Brasil 🇧🇷', 'Brésil 🇧🇷')] }, { h: L(lang, 'Open everyday', 'Aberto todos os dias', 'Ouvert tous les jours'), items: [L(lang, 'Mon–Thu 11:00–18:30', 'Seg–Qui 11:00–18:30', 'Lun–Jeu 11:00–18:30'), L(lang, 'Fri–Sun 11:00–19:00', 'Sex–Dom 11:00–19:00', 'Ven–Dim 11:00–19:00')] }, { h: L(lang, 'Say hi', 'Fale com a gente', 'Bonjour'), items: ['@bohampraia', 'bohampraia@gmail.com', '+55 (86) 99985-7676'] }]; return ( ); } window.BohamGallery = Insta; window.BohamVisit = Visit; window.BohamFooter = Footer; // ---- Reviews (rose) — Google + Tripadvisor ratings ---------------------- // ⚠️ REPLACE these with your real figures (or leave score:null to hide the number // and just show "Read reviews"). For a LIVE Tripadvisor score, paste your // Management-Center widget embed and set tripadvisor.widget = true below. const REVIEWS_CFG = { google: { score: '4.6', count: '', url: 'https://share.google/rdRDwNuw20nXmpxiy' }, tripadvisor: { score: '4.7', count: '', url: 'https://www.tripadvisor.com.br/Restaurant_Review-g3844531-d28034460-Reviews-Boham_Praia-Barra_Grande_Cajueiro_da_Praia_State_of_Piaui.html', widget: false // set true once you paste the official TA widget into TripadvisorWidget() } }; function GoogleLogo({ size = 26 }) { return ( ); } function TripadvisorLogo({ size = 26 }) { return ( ); } function Stars({ n, value, size = 16, color = 'var(--boham-orange)' }) { const v = value != null ? value : n != null ? n : 5; const empty = 'rgba(42,36,32,0.18)'; return ( {Array.from({ length: 5 }).map((_, i) => { const fill = Math.max(0, Math.min(1, v - i)); const id = 'bstar' + i + '_' + Math.round(v * 10) + '_' + size; return ( ); })} ); } // Live Tripadvisor widget slot — paste your Management-Center embed inside the // useEffect (create the