W7-C2: Bid/Ask side selector sluggish — radio switch does not respond immediately on click #153
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#153
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue Summary
On the
/tradepage, switching between the Bid (CORAL) and Ask (EMBER) radio buttons in the Place Limit panel feels sticky. The toggle does not switch immediately on click — it visually holds before registering the new selection. The form logic updates correctly once the switch takes effect (amount label and balance both reflect the new side), but the interaction itself feels unresponsive and would undermine trust for a fast-moving trader.Reproduction Steps
/tradeand select any pair (tested: EMBER / CORAL)Expected Behavior
Clicking either radio button should switch the active side immediately with no perceptible delay. The form fields (Amount label, Balance, token context) should update in the same render cycle.
Actual Behavior
The radio button switch hesitates — the selected state does not update immediately on click. The form eventually reflects the correct side, but the lag creates uncertainty about whether the click registered. Fast alternation between Bid and Ask makes the sluggishness more pronounced.
Environment Details
localterra(local Docker)VITE_NETWORK=local npm run devatlocalhost:3000make indexer-dev)make deploy-localWallet / Device Details
terra1...sl7cvvterra146...c9mjav)Screenshots / Recordings
Severity / Impact
P2 Polish. No funds are at risk and the correct side is applied after the delay. However, a sticky side selector on the order form is a trust issue — a trader who clicks Ask and sees no immediate response may click again, potentially in the wrong direction. The radio click target is also small, compounding the perceived unresponsiveness. Found under W7-C2 (Side selector — Interactivity dimension).
cc: @PlasticDigits
mentioned in issue #116
mentioned in commit
62875666abmentioned in issue #154
mentioned in commit
86320d088aUpdate (W7-C2 / #153)
Implemented a shared
LimitOrderBidAskSideSelector: WAI-ARIAradiogroupwith tworole="radio"<button type="button">controls using existingtab-neo/tab-neo-active/tab-neo-inactivestyles (larger hit targets, no native controlled<input type="radio">). Wired intoTradeOrderTicket(idPrefix="trade-ticket", compact) andLimitOrdersPage(idPrefix="limit-orders") above the limit price field so it composes with GitLab #154 (LimitOrderPlaceLimitHeading+LimitOrderPriceInputWithContext).Docs / agent playbooks:
docs/frontend.md§ Limit place — Bid / Ask side control; new skillskills/AGENTS_FRONTEND_LIMIT_ORDER_SIDE_SELECTOR.md; cross-links inskills/AGENTS_FRONTEND_TRADE_PAGE_LAYOUT.mdandskills/AGENTS_FRONTEND_LIMIT_ORDER_PRICE.md.Tests run:
vitest runonLimitOrderBidAskSideSelector.test.tsxandTradePage.test.tsx;tsc -b+vite build. Playwright global setup needs LocalTerra LCD +.env.local(not exercised here).Verification checklist
/tradewith a pair selected: Bid / Ask toggles update active tab styling on first click (no “stuck” native radio)./limitsafter choosing a pair.:focus-visibleon tab buttons).Requesting QA on the above — @totdking please confirm the trade ticket feels snappy on your setup (Chrome + Station, localterra).
Issue left open until you sign off.
mentioned in commit
3ede6ca8dementioned in issue #152
QA verification complete (W7-C2 / #153)
Verified on local stack: LocalTerra healthy, host Postgres :5432, indexer :3001, frontend :3000, bot swarm 30/30.
Verification checklist
/trade(EMBER/CORAL): Bid/Ask toggles update active tab styling immediately on first click — no stuck native radio lag./limits(EMBER/CORAL after pair select): same immediate toggle behaviour.tab-neowith:focus-visiblering (seefrontend-dapp/src/index.css).Optional (rapid alternation)
/trade— each click switches active styling and amount label in the same interaction with no perceptible hold.Tests
vitest run—LimitOrderBidAskSideSelector.test.tsx(3/3),TradePage.test.tsx(15/15).No additional code changes required; existing
LimitOrderBidAskSideSelectorimplementation resolves the sluggish native-radio behaviour. Closing as verified.mentioned in issue #524
mentioned in issue #563
mentioned in issue #693