Seed: event template (15 files)
This commit is contained in:
+4
-4
@@ -137,7 +137,7 @@ export default function IndexPage() {
|
||||
<div className="grid grid-cols-2 md:grid-cols-3 gap-8 stagger">
|
||||
{speakers.map((sp, i) => (
|
||||
<Link key={i} to="/speakers" className="group text-center hover:-translate-y-1 hover:shadow-xl transition-all duration-300">
|
||||
<div className={`w-24 h-24 mx-auto mb-4 rounded-full bg-gradient-to-br \${sp.gradient} flex items-center justify-center text-xl font-bold text-white ring-2 ring-offset-2 ring-offset-slate-950 ring-indigo-500/50 group-hover:scale-110 transition-transform`}>
|
||||
<div className={`w-24 h-24 mx-auto mb-4 rounded-full bg-gradient-to-br ${sp.gradient} flex items-center justify-center text-xl font-bold text-white ring-2 ring-offset-2 ring-offset-slate-950 ring-indigo-500/50 group-hover:scale-110 transition-transform`}>
|
||||
{sp.initials}
|
||||
</div>
|
||||
<div className="font-semibold text-white group-hover:text-indigo-400 transition-colors">{sp.name}</div>
|
||||
@@ -163,7 +163,7 @@ export default function IndexPage() {
|
||||
<h3 className="text-sm font-semibold text-indigo-400 uppercase tracking-wider text-center mb-6">{tier.tier}</h3>
|
||||
<div className="flex flex-wrap justify-center gap-6">
|
||||
{tier.names.map((name, i) => (
|
||||
<div key={i} className={`flex items-center justify-center rounded-lg border border-slate-800 bg-slate-900/50 px-8 py-4 text-slate-400 hover:border-indigo-500 hover:text-white hover:scale-110 transition-all duration-300 grayscale hover:grayscale-0 \${tier.tier === "Platinum" ? "text-lg font-semibold min-w-[200px] hover:drop-shadow-[0_0_8px_rgba(99,102,241,0.3)]" : tier.tier === "Gold" ? "min-w-[160px]" : "min-w-[120px] text-sm"}`}>
|
||||
<div key={i} className={`flex items-center justify-center rounded-lg border border-slate-800 bg-slate-900/50 px-8 py-4 text-slate-400 hover:border-indigo-500 hover:text-white hover:scale-110 transition-all duration-300 grayscale hover:grayscale-0 ${tier.tier === "Platinum" ? "text-lg font-semibold min-w-[200px] hover:drop-shadow-[0_0_8px_rgba(99,102,241,0.3)]" : tier.tier === "Gold" ? "min-w-[160px]" : "min-w-[120px] text-sm"}`}>
|
||||
{name}
|
||||
</div>
|
||||
))}
|
||||
@@ -187,7 +187,7 @@ export default function IndexPage() {
|
||||
{ name: "Regular", price: "$499", features: ["Everything in Early Bird", "Workshop access", "Networking lounge"], accent: "border-indigo-500 ring-1 ring-indigo-500/30" },
|
||||
{ name: "VIP", price: "$899", features: ["Everything in Regular", "Speaker dinner invite", "Priority front-row seating"], accent: "border-cyan-500" },
|
||||
].map((t, i) => (
|
||||
<Card key={i} className={`backdrop-blur-sm bg-slate-800/80 border-slate-700/50 \${t.accent} hover:-translate-y-1 hover:shadow-xl transition-all duration-300`}>
|
||||
<Card key={i} className={`backdrop-blur-sm bg-slate-800/80 border-slate-700/50 ${t.accent} hover:-translate-y-1 hover:shadow-xl transition-all duration-300`}>
|
||||
<CardContent className="p-8 text-center">
|
||||
<div className="flex items-center justify-center gap-2 mb-2">
|
||||
<div className="text-sm font-semibold text-indigo-400 uppercase tracking-wider">{t.name}</div>
|
||||
@@ -197,7 +197,7 @@ export default function IndexPage() {
|
||||
<ul className="text-sm text-slate-400 space-y-2 mb-8">
|
||||
{t.features.map((f, j) => <li key={j}>{f}</li>)}
|
||||
</ul>
|
||||
<Button disabled={purchasing} onClick={async () => { const amount = Math.round((parseFloat(String(t.price).replace(/[^0-9.]/g, "")) || 0) * 100); try { const res = await purchaseTicket({ plan: t.name, amount }); if (res?.url && String(res.url).indexOf("#") !== 0) { window.location.href = res.url; return; } toast.success(`\${t.name} ticket selected`); } catch { toast.error("Checkout unavailable. Please try again."); } }} className="w-full bg-indigo-600 hover:bg-indigo-500 active:scale-[0.98] text-white"><Ticket className="h-4 w-4 mr-2" />{purchasing ? "Processing…" : "Select"}</Button>
|
||||
<Button disabled={purchasing} onClick={async () => { const amount = Math.round((parseFloat(String(t.price).replace(/[^0-9.]/g, "")) || 0) * 100); try { const res = await purchaseTicket({ plan: t.name, amount }); if (res?.url && String(res.url).indexOf("#") !== 0) { window.location.href = res.url; return; } toast.success(`${t.name} ticket selected`); } catch { toast.error("Checkout unavailable. Please try again."); } }} className="w-full bg-indigo-600 hover:bg-indigo-500 active:scale-[0.98] text-white"><Ticket className="h-4 w-4 mr-2" />{purchasing ? "Processing…" : "Select"}</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user