// HIFA OIL Loyalty — screens: Nearby, Catalog, Profile, Settings, Menu // ── shared: toggle, list row, tile ──────────────────────────── function Toggle({ on, onChange }) { return (
onChange(!on)} style={{ width: 48, height: 28, borderRadius: 999, flexShrink: 0, background: on ? 'var(--hifa-gold)' : 'var(--surface-3)', padding: 3, cursor: 'pointer', transition: 'background .2s' }}>
); } function Row({ icon, title, detail, trailing, onClick, danger, last }) { return ( {icon && (
)} {title} {detail && {detail}} {trailing !== undefined ? trailing : }
); } function Group({ children }) { return
{children}
; } // ── Nearby (U blizini) ──────────────────────────────────────── function NearbyScreen() { return (
{/* faux map */}
{[{ x: '32%', y: '44%', big: true }, { x: '62%', y: '30%' }, { x: '74%', y: '64%' }].map((p, i) => (
))}
Pumpe u blizini {HIFA.stations.map((s, i) => (
{s.name}
{s.hours}
{s.services.map(sv => )}
{s.distance} · {s.time} Ruta
))}
); } // ── Catalog (Katalog) ───────────────────────────────────────── function CatalogScreen() { return (
Akcijski katalog
Juni 2026.

Zamijenite litre za nagrade i HIFA proizvode.

{HIFA.catalog.map((c, i) => (
{c.name}
{c.litres} L
))}
); } // ── Profile (Moj profil) ────────────────────────────────────── function ProfileScreen({ onTab }) { const u = HIFA.user; const tiles = [ { label: 'Gorivo', sub: fmtL(u.fuel) + ' L', icon: 'fuel', primary: true }, { label: 'Potražite naše', sub: 'benzinske pumpe', icon: 'map-pin', tab: 'nearby' }, { label: 'Ostavite', sub: 'Vaš dojam', icon: 'star' }, { label: 'Pogledajte', sub: 'pogodnosti', icon: 'badge-percent' }, ]; return (
{/* balance + ring */}
{u.available} KM
ISOMAX
{fmtPct(u.pct)}
{/* tiers */}
{HIFA.tiers.map((t, i) => { const p = typeof t.max === 'number' ? (t.val / t.max) * 100 : (t.val > 0 ? 100 : 0); return (
{fmtL(t.val)} {t.max} {t.name}
); })}
{/* tiles */}
{tiles.map((t, i) => ( t.tab && onTab(t.tab)} style={{ borderRadius: 'var(--r-tile)', padding: 18, minHeight: 124, display: 'flex', flexDirection: 'column', justifyContent: 'space-between', background: t.primary ? 'var(--hifa-gold-grad)' : 'var(--surface)', border: t.primary ? 'none' : '1px solid var(--border)', boxShadow: t.primary ? 'var(--shadow-gold)' : 'var(--shadow-card)' }}>
{t.label}
{t.sub}
))}
); } // ── Menu drawer content ─────────────────────────────────────── function MenuContent({ onClose, onLogout, onNav }) { const u = HIFA.user; const items = [ { icon: 'newspaper', title: 'Novosti', sub: 'Pogledajte posljednje dodane vijesti' }, { icon: 'fuel', title: 'Benzinske pumpe', sub: 'Spisak lokacija naših pumpi', tab: 'nearby' }, { icon: 'spray-can', title: 'Autopraonice', sub: 'Lokacije naših autopraonica' }, { icon: 'newspaper', title: 'Akcijski katalog', sub: 'Katalog za tekući mjesec', tab: 'catalog' }, { icon: 'badge-percent', title: 'Pogodnosti kod partnera', sub: 'Akcije kod naših partnera' }, { icon: 'circle-help', title: 'FAQ', sub: 'Najčešće postavljana pitanja' }, { icon: 'star', title: 'Ocijenite nas', sub: 'Ostavite ocjenu u trgovini' }, { icon: 'settings', title: 'Postavke aplikacije', sub: 'Profil i postavke', tab: 'settings' }, ]; return (
{/* gold header */}
{fmtPct(u.pct)} ISOMAX
{fmtL(u.fuel)} / {u.fuelMax}
{/* items */}
{items.map((it, i) => ( it.tab ? onNav(it.tab) : onClose()} style={{ display: 'flex', alignItems: 'center', gap: 14, padding: '13px 22px' }}>
{it.title}
{it.sub}
))}
{/* footer */}
Loyal is Royal
Verzija aplikacije 2.0.0
); } Object.assign(window, { Toggle, Row, Group, NearbyScreen, CatalogScreen, ProfileScreen, MenuContent });