Let a phone move a player to another seat #72
Closed
jheaps
wants to merge 1 commits from
fix/casino-holdem-move-seat-on-touch into fix/casino-holdem-amount-fields-select
pull from: fix/casino-holdem-move-seat-on-touch
merge into: :fix/casino-holdem-amount-fields-select
:master
:feature/socialism
:polish/holdem-seats-one-size
:fix/holdem-dealer-chip-eats-its-seat
:polish/holdem-game-night-ready
:polish/holdem-round-next
:polish/holdem-seat-collisions
:polish/holdem-offline-and-render
:fix/naming-a-blind-deals-the-hand
:release/casino-holdem-polish
:fix/casino-holdem-phone-look
:fix/casino-holdem-sidebar-crowding
:fix/casino-holdem-contribution-rule
:fix/casino-holdem-one-stack-rule
:fix/casino-holdem-default-stack-buyin
:feat/casino-holdem-waiting-list
:feat/casino-holdem-misdeal
:feat/casino-holdem-cash-out
:feat/casino-holdem-clock
:feat/casino-holdem-rake
:fix/casino-holdem-stadium-ring
:fix/casino-holdem-phone-felt-shape
:fix/casino-holdem-audit-runs-everything
:feat/casino-holdem-straddle
:fix/casino-holdem-landscape-ring
:feat/casino-holdem-table-file
:fix/casino-holdem-touch-targets
:fix/casino-holdem-audit-modal-blindspot
:fix/casino-holdem-quicksplit-chop
:fix/casino-holdem-buildable-bet-sizes
:fix/casino-holdem-pot-sized-raise
:fix/casino-holdem-chips-to-count-out
:fix/casino-holdem-first-buy-in
:fix/casino-holdem-seating-a-table
:fix/casino-holdem-showdown-order
:fix/casino-holdem-hand-log-filter
:fix/casino-holdem-posting-in
:fix/casino-holdem-dead-button
:fix/casino-holdem-discarded-pot
:fix/casino-holdem-honest-tank-clock
:fix/casino-holdem-export-the-notes
:fix/casino-holdem-stacks-in-chips
:fix/casino-holdem-close-audit-blind-spots
:fix/casino-holdem-readable-dim-states
:fix/casino-holdem-drop-broken-watermark
:fix/casino-holdem-two-tabs
:fix/casino-holdem-unreadable-save
:fix/casino-holdem-say-when-not-saving
:fix/casino-holdem-shortcut-discovery
:fix/casino-holdem-rulings-index-compact
:fix/casino-holdem-rulings-index
:fix/casino-holdem-payout-in-chips
:fix/casino-holdem-move-seat-on-touch
:fix/casino-holdem-amount-fields-select
:fix/casino-holdem-touch-targets-by-pointer
:fix/casino-holdem-button-box-model
:fix/casino-holdem-blind-badge-placement
:fix/casino-holdem-buyin-deals-in
:fix/casino-holdem-bet-vs-raise
:fix/casino-holdem-deal-around-broke
:fix/casino-holdem-settle-up
:fix/casino-holdem-allin-and-bar
:fix/casino-holdem-one-dealer-button
:fix/casino-holdem-manual-deal
:fix/casino-holdem-less-guessing
:feature/casino-holdem-seat-editor
:fix/casino-holdem-landscape-table
:feature/casino-holdem-acting-seat
:feature/casino-holdem-raise-guard
:feature/casino-holdem-first-run
:feature/casino-holdem-contrast-audit
:feature/casino-holdem-layout-audit
:feature/casino-holdem-blind-fairness
:feature/casino-holdem-rulings-depth
:feature/casino-holdem-bank-audit
:feature/casino-holdem-fewer-taps
:feature/casino-holdem-render-perf
:feature/casino-holdem-keyboard-focus
:feature/casino-holdem-resilience
:feature/casino-holdem-messy-tables
:feature/casino-holdem-touch-mobile
:chore/casino-holdem-tech-debt
:feature/casino-holdem-dealer-batch
:feature/casino-holdem-seat-count-safety
:feature/casino-holdem-odd-chip
:feature/casino-holdem-button-moves
:feature/casino-holdem-allin-runout
:feature/casino-holdem-heads-up
:feature/casino-holdem-contrast
:feature/casino-holdem-touch-audit
:feature/casino-holdem-wizard-polish
:feature/casino-quicksplit-side-pots
:feature/casino-holdem-rebuys
:feature/casino-holdem-rulings
:feature/casino-holdem-sidebar-polish
:feature/casino-holdem-keyboard
:feature/casino-holdem-action-undo
:feature/casino-holdem-pace
:feature/casino-holdem-side-pot-breakdown
:feature/casino-holdem-gestures
:feature/casino-holdem-card-picker
:feature/casino-holdem-live-betting
:feature/casino-holdem-bet-chips
:feature/casino-holdem-seat-legibility
:feature/casino-holdem-undo-toasts
:feature/casino-holdem-quick-split
:feature/casino-holdem-mobile-table
:feature/casino-holdem-hand-history
:feature/casino-texas-holdem
:feature/casino-holdem-dealer-mode-polish
:feature/fractional-learned-weights
:fix/stockfish-dispose-hang
:fix/blog-cache-staleness
:fix/workflows
:gitea/workflows
:echo-acoustic-ranging
:chess-ui-overhaul
:feature/customChessEngine
:feature/blog
:AddProject
:feature/generalUpdate
:tech-debt/chess-cleanup
:tests/CreatePlaywrightTests
:UpdateParticleSimulatorButton
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The hint under the table has said this on every screen since the gestures went in:
Three of those work on a phone. The fourth never has. Swapping seats is HTML5 drag-and-drop —
draggable="true",dragstart,drop— and a touch screen doesn't generate drag events at all. So the one clause written in the same breath as "tap" and "press and hold" was the one thing a thumb could never do. Stacked on #71.I found it by dragging seat 1 onto seat 4 with real touch pointer events and watching nothing happen: no swap, no menu, no error.
Moving a seat is in the long-press menu now
Which is the route a thumb already takes for everything else. "Move to…" replaces the action list with the other chairs, by number and name, and picking one makes the move:
That subtitle is the rule, and it's the one a card room uses: the whole seat travels, while everything naming a position stays put. Somebody who sits down in the big blind's chair is the big blind.
Driven through on an emulated phone: Ben — small blind, $109 behind with $1 posted — moves to seat 5 with both numbers; seat 2 goes empty; the button stays on seat 1; the toast reads "Ben moved to seat 5" and undo puts it all back. Reopening the menu on another seat shows actions again rather than the chair list it closed on.
The hint tells the truth per device now — dragging is only mentioned where a mouse exists. Dragging still works there, checked.
Validation
8 tests (232 total): the whole seat moves, the bet moves with it, chips are conserved, the button and the blinds stay on their chairs, swapping twice is a no-op, and a chair that isn't there is refused rather than swallowed. Picker rows all clear 44px on touch; no console errors.
One audit fix rides along
The "one dealer button" check counted the empty slot that a hovered seat deliberately fades in, so it reported two buttons whenever a mouse happened to rest on the table — which is most of the time a mouse exists. It ignores the hovered seat now, and still catches the real fault: with the pre-#62 behaviour put back it reports six, or five while hovering.
The hint under the table has said this on every screen since the gestures went in: Tap a seat to edit - double-tap to fold - press and hold for quick actions - drag to swap seats. Three of those work on a phone. The fourth never has. Swapping seats is HTML5 drag-and-drop -- draggable="true", dragstart, drop -- and a touch screen does not generate drag events at all. So the one clause written in the same breath as "tap" and "press and hold" was the one thing a thumb could never do. I found it by dragging seat 1 onto seat 4 with real touch pointer events and watching nothing happen: no swap, no menu, no error. Moving a seat is in the long-press menu now, which is the route a thumb already takes for everything else. "Move to..." replaces the action list with the other chairs, by number and name, and picking one makes the move: Move Ben to... Their chips, cards and bet go with them. The button and the blinds stay on the chair. Seat 1 - Ann Seat 3 - Cal Seat 4 - Dee Seat 5 - empty ... That subtitle is the rule, and it is the one a card room uses: the whole seat travels, while everything naming a position stays put. Somebody who sits down in the big blind's chair is the big blind. Driven through on a phone: Ben, small blind, $109 behind with $1 posted, moves to seat 5 with both numbers; seat 2 goes empty; the button stays on seat 1; the toast reads "Ben moved to seat 5" and undo puts it all back. Reopening the menu on another seat shows actions again rather than the chair list it closed on. The hint tells the truth per device now -- dragging is only mentioned where a mouse exists. Dragging still works there, checked. 8 tests (232 total): the whole seat moves, the bet moves with it, chips are conserved, the button and the blinds stay on their chairs, swapping twice is a no-op, and a chair that is not there is refused rather than swallowed. One audit fix rides along. The "one dealer button" check counted the empty slot that a hovered seat deliberately fades in, so it reported two buttons whenever a mouse happened to rest on the table -- which is most of the time a mouse exists. It ignores the hovered seat now, and still catches the real fault: with the pre-#62 behaviour put back it reports six, or five while hovering. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_015bnp7xKUPFFSpwkYNFaPgbPull request closed