// Prodz — Home: Set Moments · Productions (Trending lives only here) · Locations.
function Home() {
const { L } = useL();
const nav = useNav();
const { FeatureCard, Tag, Avatar, Button } = window.ProdzDesignSystem_d0b87b;
const [loc, setLoc] = useStateS(null);
const [gearSel, setGearSel] = useStateS(null);
const railPad = { padding: '14px 16px 4px', margin: '0 -16px' };
return (
{/* ---- SET MOMENTS → 24h Stories from people you follow ---- */}
nav.openStories(0)}>
{/* add-your-moment */}
{STORIES.map((st, i) => {
const person = PEOPLE[st.person];
return (
);
})}
{/* ---- TRENDING PRODUCTIONS (Home only) ---- */}
nav.openAllProductions()}>
{PRODUCTIONS.map((p) =>
)}
{/* ---- LOCATIONS — "In evidenza" (sponsorable; brief §1.9 / §2.3) ---- */}
nav.openLocations()}>
{LOCATIONS.map((lc) =>
)}
{L('Gestisci uno spazio? Mettilo in evidenza con Prodz Premium.', 'Manage a space? Feature it with Prodz Premium.')}
{/* ---- GEAR — rental / availability rail (brief §2.1) ---- */}
nav.toast(L('Marketplace gear in arrivo', 'Gear marketplace coming soon'), null)}>
{GEAR.map((g) => {
const owner = PEOPLE[g.owner];
return (
);
})}
{/* Location detail sheet → routes to a Collab conversation in the Inbox */}
setLoc(null)}>
{loc &&
{loc.sponsored &&
{L('In evidenza · Sponsorizzato', 'Featured · Sponsored')}}
{loc.title}
{tr(L, loc.meta)} · {tr(L, loc.price)}
}>{L('Salva', 'Save')}
}
onClick={() => {setLoc(null);nav.openInbox();}}>{L('Contatta', 'Contact')}
}
{/* Gear detail sheet → rent / save */}
setGearSel(null)}>
{gearSel &&
{!gearSel.img && }
{gearSel.cat} · {tr(L, gearSel.price)}
{gearSel.name}
{tr(L, gearSel.kind)} · {PEOPLE[gearSel.owner].name} · {gearSel.city}
} onClick={() => { setGearSel(null); nav.toast(L('Salvato negli elementi', 'Saved to your items'), null); }}>{L('Salva', 'Save')}
} onClick={() => { setGearSel(null); nav.openInbox(); }}>{L('Richiedi', 'Request')}
}
);
}
const momentCol = { display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 8, width: 70, flexShrink: 0, background: 'none', border: 'none', cursor: 'pointer', padding: 0 };
const momentRing = { width: 64, height: 64, borderRadius: '50%', display: 'flex', alignItems: 'center', justifyContent: 'center', flexShrink: 0 };
const momentLabel = { fontFamily: 'var(--font-ui)', fontSize: 10.5, fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.04em', color: 'var(--text-body)', whiteSpace: 'nowrap' };
const sponsorPromo = { display: 'flex', alignItems: 'center', gap: 10, padding: '12px 14px', background: 'var(--teal-surface)', borderRadius: 'var(--radius-md)', boxShadow: 'var(--ring-teal)' };
Object.assign(window, { Home });