chore: remove dead TierPicker + strike resolved gotchas
TierPicker.vue is a 5-tier preset picker from before the arbitrary- amount contribution redesign. Zero imports across app/ and server/ — purely dead code (99 lines). Strike two LAUNCH_READINESS bullets that describe already-fixed issues: the "stale tier comment" in useMemberPayment.js (no `tier` references remain in that file), and the SeriesPassPurchase auto- refresh gotcha (fetchPassInfo() already runs after the success path at line 318).
This commit is contained in:
parent
be24ae32fb
commit
3c49317437
2 changed files with 0 additions and 102 deletions
|
|
@ -1,99 +0,0 @@
|
|||
<template>
|
||||
<div class="tier-picker">
|
||||
<div
|
||||
v-for="tier in tiers"
|
||||
:key="tier.amount"
|
||||
class="tier-option"
|
||||
:class="{ current: modelValue === tier.amount }"
|
||||
@click="$emit('update:modelValue', tier.amount)"
|
||||
>
|
||||
<span class="tier-amount">{{ tier.display }}</span>
|
||||
<span v-if="tier.subtitle" class="tier-subtitle">{{ tier.subtitle }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
defineProps({
|
||||
modelValue: { type: Number, default: 0 },
|
||||
tiers: {
|
||||
type: Array,
|
||||
default: () => [
|
||||
{ amount: 0, display: "$0", label: "Free" },
|
||||
{ amount: 5, display: "$5", label: "/month" },
|
||||
{ amount: 15, display: "$15", label: "/month" },
|
||||
{ amount: 30, display: "$30", label: "/month" },
|
||||
{ amount: 50, display: "$50", label: "/month" },
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
defineEmits(["update:modelValue"]);
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.tier-picker {
|
||||
display: flex;
|
||||
gap: 0;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.tier-option {
|
||||
flex: 1;
|
||||
padding: 18px 8px;
|
||||
text-align: center;
|
||||
border: 1px dashed var(--border);
|
||||
background: var(--bg);
|
||||
cursor: pointer;
|
||||
transition: all 0.15s;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Overlap adjacent borders so dashed lines collapse into one */
|
||||
.tier-option + .tier-option {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.tier-option:hover {
|
||||
background: var(--surface-hover);
|
||||
}
|
||||
|
||||
/* Active item paints its solid border on top of any neighbor */
|
||||
.tier-option.current {
|
||||
border-color: var(--candle);
|
||||
border-style: solid;
|
||||
background: var(--surface);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.tier-amount {
|
||||
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-subtitle {
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
font-size: 11px;
|
||||
color: var(--text-dim);
|
||||
font-family: "Commit Mono", monospace;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.tier-picker {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.tier-option {
|
||||
min-width: 60px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -144,7 +144,6 @@ See `docs/TODO.md` for:
|
|||
|
||||
- **Admin edit does not sync Helcim `recurringAmount`.** `/admin/members/[id]` PUT writes `contributionAmount` direct to Mongo by design. Admins must PATCH Helcim manually. Worth surfacing in admin UI or docs.
|
||||
- **Cadence switch rejected on active subscriptions.** `update-contribution.post.js:184-189` refuses cadence changes mid-subscription; no UI toggle exists on `/member/account`. Adding cadence switch would require a Helcim subscription replacement flow, not a plain update.
|
||||
- **`SeriesPassPurchase.vue` doesn't auto-refresh after purchase.** (Observed 2026-04-21 during Phase 4 series-pass functional tests.) Component's local `$fetch` to `/api/series/{id}/tickets/available` fires on mount + `userEmail` watch, but isn't re-invoked after a successful purchase — the "already registered" state only appears on next navigation. Parent page calls `refreshNuxtData()` but the component doesn't participate in it. Fix: call `fetchPassInfo()` after the success toast in `handleSubmit`, or lift the fetch to `useAsyncData` so it can be refreshed from outside.
|
||||
- **S2 test fixture `id`/`slug` inconsistency.** (Local dev only.) Seeded S2 series has `id: 'test-s2-drop-in-allowed'` but `slug: 'test-s2-drop-in-allowed-series'`. Doesn't affect prod — fix the seed script if anyone re-runs fixtures and is confused why `id`-based Mongo queries return empty.
|
||||
|
||||
### Events-surface visual audit — deferred items (2026-04-21)
|
||||
|
|
@ -159,8 +158,6 @@ Context: Phase 4 audit against `docs/specs/events-visual-audit-findings.md` fixe
|
|||
|
||||
### Contribution-amount redesign — cosmetic cleanup (naming only, not behavior)
|
||||
- Rename admin members column header "Tier" → "Contribution" (`app/pages/admin/members/index.vue:265`).
|
||||
- Delete dead `app/components/TierPicker.vue`.
|
||||
- Update stale tier comment in `app/composables/useMemberPayment.js:59`.
|
||||
- Update error log message referencing "tier" in `server/api/members/update-contribution.post.js:221`.
|
||||
- Rename `handleUpdateTier` handler in `app/pages/member/account.vue`.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue