// HIFA OIL Loyalty — Settings screen + detail flows // Profil edit, e-mail change, password change, terms, FAQ link, // rate-us, and deactivate confirmation. const { useState: useSet } = React; const FAQ_URL = 'https://www.hifaoil.ba/'; const TERMS = [ ['1. Opće odredbe', 'Korištenjem HIFA OIL ISOMAX Loyalty aplikacije prihvatate ove uslove korištenja. Aplikacija omogućava praćenje stanja loyalty kartice, prikupljanje i trošenje bodova te pregled pogodnosti.'], ['2. Korisnički račun', 'Korisnik je odgovoran za tačnost unesenih podataka i za čuvanje pristupnih podataka. HIFA OIL zadržava pravo deaktivacije računa u slučaju zloupotrebe.'], ['3. Loyalty bodovi', 'Bodovi (litri) se prikupljaju prilikom kupovine goriva i proizvoda na HIFA OIL prodajnim mjestima. Bodovi nemaju novčanu vrijednost i ne mogu se zamijeniti za gotovinu.'], ['4. Zaštita podataka', 'Lični podaci se obrađuju u skladu sa važećim propisima o zaštiti podataka. Podaci se koriste isključivo u svrhu funkcionisanja loyalty programa.'], ['5. Izmjene uslova', 'HIFA OIL zadržava pravo izmjene ovih uslova. O značajnim izmjenama korisnici će biti obaviješteni putem aplikacije.'], ]; // ── small reusable sheet header note ── function SheetForm({ children }) { return
{children}
; } // ── Rate us (placeholder for ocjenite_nas page) ── function RateSheet({ open, onClose }) { const [stars, setStars] = useSet(0); return (

Vaše mišljenje nam je važno. Kako biste ocijenili HIFA OIL Loyalty aplikaciju?

{[1, 2, 3, 4, 5].map(n => ( setStars(n)}> ))}
Placeholder — zamijenit će se finalnom „Ocijenite nas" stranicom (ocjenite_nas).
); } // ── Settings (Postavke) ─────────────────────────────────────── function SettingsScreen({ theme, setTheme, currency, setCurrency, notif, setNotif, onLogout }) { const [sheet, setSheet] = useSet(null); const [first, setFirst] = useSet(HIFA.user.firstName); const [last, setLast] = useSet(HIFA.user.lastName); const [email, setEmail] = useSet(HIFA.user.email); // draft fields const [dFirst, setDFirst] = useSet(first); const [dLast, setDLast] = useSet(last); const [dEmail, setDEmail] = useSet(''); const [pw, setPw] = useSet({ cur: '', nw: '', cf: '' }); const initials = (first[0] || '') + (last[0] || ''); const openProfile = () => { setDFirst(first); setDLast(last); setSheet('profile'); }; const openEmail = () => { setDEmail(''); setSheet('email'); }; const openPw = () => { setPw({ cur: '', nw: '', cf: '' }); setSheet('password'); }; return (
{initials.toUpperCase()}
{first} {last}
{email}
{[{ k: 'dark', i: 'moon' }, { k: 'light', i: 'sun' }].map(o => ( setTheme(o.k)} style={{ width: 34, height: 28, borderRadius: 999, display: 'flex', alignItems: 'center', justifyContent: 'center', background: theme === o.k ? 'var(--hifa-gold)' : 'transparent' }}> ))}
} /> {['KM', 'EUR'].map(c => ( setCurrency(c)} style={{ padding: '5px 12px', borderRadius: 999, background: currency === c ? 'var(--hifa-gold)' : 'transparent' }}> {c} ))} } last /> } /> setSheet('terms')} /> } onClick={() => window.open(FAQ_URL, '_blank')} /> setSheet('rate')} last /> setSheet('deactivate')} />
HIFA OIL Loyalty · verzija 2.0.0
{/* ── Profil korisnika ── */} setSheet(null)} title="Profil korisnika"> {/* ── E-mail adresa ── */} setSheet(null)} title="Promjena e-maila">
Trenutni e-mail
{email}

Na novu adresu poslat ćemo link za potvrdu.

{/* ── Lozinka ── */} setSheet(null)} title="Promjena lozinke"> setPw({ ...pw, cur: v })} type="password" icon="lock" /> setPw({ ...pw, nw: v })} type="password" icon="lock-keyhole" /> setPw({ ...pw, cf: v })} type="password" icon="lock-keyhole" />
{pw.nw && pw.nw === pw.cf ? 'Lozinke se podudaraju' : 'Najmanje 8 karaktera'}
{/* ── Uslovi korištenja ── */} setSheet(null)} title="Uslovi korištenja">
{TERMS.map(([h, b], i) => (
{h}

{b}

))}
Posljednje ažuriranje: juni 2026. · Placeholder tekst.
{/* ── Ocijenite nas ── */} setSheet(null)} /> {/* ── Deaktiviraj račun (potvrda) ── */} setSheet(null)} title={null}>

Deaktivirati račun?

Vaš ISOMAX Loyalty račun će biti deaktiviran, a vaši bodovi neće biti dostupni. Ova radnja se ne može poništiti.

); } Object.assign(window, { SettingsScreen });