Skip to content

feat: fix chat scroll, add wizard step indicator, extract ArbitratorP… - #649

Merged
Kingsman-99 merged 1 commit into
Stellar-split:mainfrom
mikelmonie:feat/609-610-611-612-task-fixes
Aug 29, 2026
Merged

feat: fix chat scroll, add wizard step indicator, extract ArbitratorP…#649
Kingsman-99 merged 1 commit into
Stellar-split:mainfrom
mikelmonie:feat/609-610-611-612-task-fixes

Conversation

@mikelmonie

Copy link
Copy Markdown
Contributor

Title:

feat: fix chat scroll, add wizard step indicator, extract ArbitratorPicker, add vote bars

Description:

Summary

Resolves four issues in a single batch — all changes are isolated to their respective
component files.

Changes

#609 — InvoiceChat: scroll to bottom on new message

  • Auto-scrolls to the latest message when the user is within 100px of the bottom
  • When the user has scrolled up, a dismissible "↓ New message" indicator appears instead
  • Clicking the indicator scrolls to the bottom and dismisses it
  • Initial load always scrolls to the bottom instantly

#610 — DisputeWizard: step indicator

  • Added a dot-based StepIndicator at the top of the wizard modal
  • Shows current step highlighted (scaled + ring), completed steps filled, upcoming steps
    muted
  • Connector lines between dots fill in as steps are completed
  • Accessible: <nav aria-label="Step X of 4"> with aria-current="step" on the active dot

#611 — ArbitratorPicker: extracted standalone component

  • New src/components/ArbitratorPicker.tsx with fully typed props
  • Supports: selectable arbitrators, vote status badges, disabled state, custom heading
  • DisputePanel.tsx now imports and uses ArbitratorPicker — all inline arbitrator JSX
    removed
  • Arbitrator selection behaviour is unchanged

#612 — VotingPanel: vote count badge + percentage fill bar per option

  • Two options shown: Extend deadline (for) and Keep deadline (against)
  • Each option has a count badge (e.g. "3 votes") and a percentage fill bar (e.g. "60%")
  • Percentages update immediately after the user casts their vote (local state increment)
  • All bars show 0% when no votes have been cast

Testing

  • Existing tests continue to pass
  • No new dependencies introduced

Closes #609
Closes #610
Closes #611
Closes #612

…icker, add vote bars

- Stellar-split#609: InvoiceChat auto-scrolls to bottom on new message when user is
  within 100px of bottom; shows a dismissible 'New message' indicator
  when user has scrolled up to read history
- Stellar-split#610: DisputeWizard now shows a dot-based step indicator at the top
  with aria-label 'Step X of 4'; completed steps are visually distinct
- Stellar-split#611: Extract arbitrator selection UI from DisputePanel into a
  standalone ArbitratorPicker component (src/components/ArbitratorPicker.tsx);
  DisputePanel updated to import and use it
- Stellar-split#612: VotingPanel displays per-option vote count badge and percentage
  fill bar for 'Extend' vs 'Keep'; percentages update immediately on vote
  and show 0% when no votes have been cast

Closes Stellar-split#609, Stellar-split#610, Stellar-split#611, Stellar-split#612
@vercel

vercel Bot commented Aug 28, 2026

Copy link
Copy Markdown

@mikelmonie is attempting to deploy a commit to the kingsman-99's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Aug 28, 2026

Copy link
Copy Markdown

@mikelmonie Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Kingsman-99
Kingsman-99 merged commit 8031bfd into Stellar-split:main Aug 29, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants