Copy and layout improvements.
This commit is contained in:
parent
39eb9e039a
commit
02222a5c16
20 changed files with 464 additions and 652 deletions
|
|
@ -133,11 +133,11 @@
|
|||
<div class="sidebar-meta">
|
||||
<ClientOnly>
|
||||
Part of
|
||||
<a href="https://babyghosts.org" target="_blank">Baby Ghosts</a><br />
|
||||
<a href="https://babyghosts.org" target="_blank">Baby Ghosts</a><br >
|
||||
A Canadian nonprofit
|
||||
<template #fallback>
|
||||
Part of
|
||||
<a href="https://babyghosts.org" target="_blank">Baby Ghosts</a><br />
|
||||
<a href="https://babyghosts.org" target="_blank">Baby Ghosts</a><br >
|
||||
A Canadian nonprofit
|
||||
</template>
|
||||
</ClientOnly>
|
||||
|
|
@ -199,7 +199,6 @@ const youItems = [
|
|||
{ label: "Dashboard", path: "/member/dashboard" },
|
||||
{ label: "Profile", path: "/member/profile" },
|
||||
{ label: "Account", path: "/member/account" },
|
||||
{ label: "Activity Log", path: "/member/activity" },
|
||||
];
|
||||
|
||||
const exploreItems = [
|
||||
|
|
|
|||
|
|
@ -120,23 +120,29 @@
|
|||
|
||||
<form @submit.prevent="handleSubmit">
|
||||
<div class="field">
|
||||
<label>Full Name</label>
|
||||
<label for="ticket-name">Full Name</label>
|
||||
<input
|
||||
id="ticket-name"
|
||||
v-model="form.name"
|
||||
name="name"
|
||||
type="text"
|
||||
autocomplete="name"
|
||||
required
|
||||
:disabled="processing"
|
||||
/>
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label>Email Address</label>
|
||||
<label for="ticket-email">Email Address</label>
|
||||
<input
|
||||
id="ticket-email"
|
||||
v-model="form.email"
|
||||
name="email"
|
||||
type="email"
|
||||
autocomplete="email"
|
||||
required
|
||||
:disabled="processing"
|
||||
/>
|
||||
>
|
||||
</div>
|
||||
|
||||
<p
|
||||
|
|
@ -244,11 +250,13 @@ onMounted(async () => {
|
|||
await fetchTicketInfo();
|
||||
});
|
||||
|
||||
const fetchTicketInfo = async () => {
|
||||
const fetchTicketInfo = async (emailOverride = null) => {
|
||||
loading.value = true;
|
||||
error.value = null;
|
||||
|
||||
try {
|
||||
const effectiveEmail = emailOverride || props.userEmail;
|
||||
|
||||
// First check if this event requires a series pass
|
||||
if (props.userEmail) {
|
||||
try {
|
||||
|
|
@ -284,7 +292,7 @@ const fetchTicketInfo = async () => {
|
|||
}
|
||||
|
||||
// Regular ticket availability check
|
||||
const params = props.userEmail ? `?email=${props.userEmail}` : "";
|
||||
const params = effectiveEmail ? `?email=${encodeURIComponent(effectiveEmail)}` : "";
|
||||
const response = await $fetch(
|
||||
`/api/events/${props.eventId}/tickets/available${params}`,
|
||||
);
|
||||
|
|
@ -326,15 +334,17 @@ const handleSubmit = async () => {
|
|||
}
|
||||
}
|
||||
|
||||
const body = {
|
||||
name: form.value.name,
|
||||
email: form.value.email,
|
||||
};
|
||||
if (transactionId) body.transactionId = transactionId;
|
||||
|
||||
const response = await $fetch(
|
||||
`/api/events/${props.eventId}/tickets/purchase`,
|
||||
{
|
||||
method: "POST",
|
||||
body: {
|
||||
name: form.value.name,
|
||||
email: form.value.email,
|
||||
transactionId,
|
||||
},
|
||||
body,
|
||||
},
|
||||
);
|
||||
|
||||
|
|
@ -347,7 +357,7 @@ const handleSubmit = async () => {
|
|||
});
|
||||
|
||||
emit("success", response);
|
||||
await fetchTicketInfo();
|
||||
await fetchTicketInfo(form.value.email);
|
||||
} catch (err) {
|
||||
console.error("Error purchasing ticket:", err);
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
@click="$emit('update:modelValue', tier.amount)"
|
||||
>
|
||||
<span class="tier-amount">{{ tier.display }}</span>
|
||||
<span class="tier-label">{{ tier.label }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -40,7 +39,7 @@ defineEmits(["update:modelValue"]);
|
|||
|
||||
.tier-option {
|
||||
flex: 1;
|
||||
padding: 10px 8px;
|
||||
padding: 18px 8px;
|
||||
text-align: center;
|
||||
border: 1px dashed var(--border);
|
||||
background: var(--bg);
|
||||
|
|
@ -67,30 +66,18 @@ defineEmits(["update:modelValue"]);
|
|||
}
|
||||
|
||||
.tier-amount {
|
||||
font-size: 16px;
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
font-family: "Brygada 1918", serif;
|
||||
display: block;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.tier-option.current .tier-amount {
|
||||
color: var(--candle);
|
||||
}
|
||||
|
||||
.tier-label {
|
||||
font-size: 9px;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
color: var(--text-faint);
|
||||
display: block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.tier-option.current .tier-label {
|
||||
color: var(--candle-dim);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.tier-picker {
|
||||
flex-wrap: wrap;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue