My Sea iter 6c: bud-btn invite stub + #id_my_sea_menu gear (NVM-only, %applet-menu-styled, on both /gameboard/my-sea/ and the gatekeeper) + PAID DRAW now deletes the row and redirects to ?phase=picker so the user drops straight into picking cards instead of looping back to GATE VIEW — Sprint 5 iter 6c of My Sea roadmap — TDD

Bundled fix for the PAID-DRAW-loops-to-GATE-VIEW bug surfaced 2026-05-20 in
live testing: previously the view reset `created_at = now()` + cleared the
hand, but the row's continued existence meant `quota_spent=True` on the
next render → landing rendered GATE VIEW → user clicked it → back to
gatekeeper → loop.

Now PAID DRAW does `active_draw.delete()` after debiting the token + then
redirects to `/gameboard/my-sea/?phase=picker`. The my_sea view honors
`?phase=picker` (only when no active_draw exists — can't bypass
post-DEL GATE VIEW) by forcing `show_picker=True` so the user lands in
the picker ready to draw. First card draw creates a fresh row w. fresh
`created_at`, starting the new 24h quota cycle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-05-20 09:47:47 -04:00
parent 1e37fe1475
commit 4417b8c972
9 changed files with 267 additions and 41 deletions

View File

@@ -85,6 +85,7 @@
#id_post_menu { @extend %applet-menu; }
#id_billboard_applet_menu { @extend %applet-menu; }
#id_billscroll_menu { @extend %applet-menu; }
#id_my_sea_menu { @extend %applet-menu; }
// Page-level gear buttons — fixed to viewport bottom-right
.gameboard-page,
@@ -93,7 +94,8 @@
.room-page,
.post-page,
.billboard-page,
.billscroll-page {
.billscroll-page,
.my-sea-page {
> .gear-btn {
position: fixed;
bottom: 4.2rem;
@@ -108,7 +110,8 @@
#id_wallet_applet_menu,
#id_post_menu,
#id_billboard_applet_menu,
#id_billscroll_menu {
#id_billscroll_menu,
#id_my_sea_menu {
position: fixed;
bottom: 6.6rem;
right: 1rem;
@@ -126,7 +129,8 @@
.room-page,
.post-page,
.billboard-page,
.billscroll-page {
.billscroll-page,
.my-sea-page {
> .gear-btn {
right: calc((var(--sidebar-w) - 3rem) / 2);
bottom: 3.95rem;
@@ -141,7 +145,8 @@
#id_room_menu,
#id_post_menu,
#id_billboard_applet_menu,
#id_billscroll_menu {
#id_billscroll_menu,
#id_my_sea_menu {
right: calc((var(--sidebar-w) - 3rem) / 2);
bottom: 6.6rem;
top: auto;