/* @jsx React.createElement */
// Shared Nav + Footer + small atoms for INDIE Labs.
const WA_NUMBER = "628976046500"; // wa.me uses no leading 0 — user: 08976046500
const WA_DISPLAY = "0897 6046 500";
const EMAIL = "info@indielabs.id";
const WA_LINK = (msg = "Halo INDIE Labs, saya tertarik diskusi proyek.") =>
`https://wa.me/${WA_NUMBER}?text=${encodeURIComponent(msg)}`;
const INDIELABS_SUPABASE_URL = "https://indie.supabase.co";
const INDIELABS_SUPABASE_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Indsc3pqdnZveXltd2dwbXRnd2V4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzQ1ODg5OTcsImV4cCI6MjA5MDE2NDk5N30.5emUfc2jlLxutLhtGZFD0Rq3MOUl4JAcU3Fd5RydjRU";
// Lightweight, non-blocking auth state hook for navbar.
// Returns: { state: "unknown" | "anon" | "user" }
function useLabsAuth() {
const [state, setState] = React.useState("unknown");
React.useEffect(() => {
let cancelled = false;
function check() {
if (cancelled) return;
if (!window.supabase || !window.supabase.createClient) {
// Supabase UMD belum siap — coba lagi sebentar, kalau gagal anggap anon.
setTimeout(check, 400);
return;
}
try {
const c = window.supabase.createClient(INDIELABS_SUPABASE_URL, INDIELABS_SUPABASE_ANON_KEY);
c.auth.getSession().then((res) => {
if (cancelled) return;
setState(res && res.data && res.data.session ? "user" : "anon");
}).catch(() => { if (!cancelled) setState("anon"); });
} catch (_) { if (!cancelled) setState("anon"); }
}
check();
return () => { cancelled = true; };
}, []);
return state;
}
function NavAuthLink() {
const state = useLabsAuth();
if (state === "unknown") {
// Reserve space tanpa flicker
return ;
}
if (state === "user") {
return (
Dashboard →
);
}
return (
Login
);
}
function LabsMark({ size = 32 }) {
return (
);
}
function Nav({ current = "home" }) {
const [scrolled, setScrolled] = React.useState(false);
React.useEffect(() => {
const onScroll = () => setScrolled(window.scrollY > 8);
onScroll();
window.addEventListener("scroll", onScroll);
return () => window.removeEventListener("scroll", onScroll);
}, []);
const links = [
{ id: "home", label: "Home", href: "index.html" },
{ id: "services", label: "Services", href: "services.html" },
{ id: "portfolio", label: "Portfolio", href: "portfolio.html" },
{ id: "contact", label: "Contact", href: "contact.html" },
];
return (