Skip to content

Conversation

@Jipperism
Copy link
Collaborator

@Jipperism Jipperism commented Dec 22, 2025

Description

Surface orchestrator governance activity so stakeholders can see how they vote over time and per proposal.

Type of Change

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation update
  • style: Code style/formatting changes
  • refactor: Code refactoring
  • perf: Performance improvement
  • test: Adding or updating tests
  • build: Build system or dependency changes
  • ci: CI/CD changes
  • chore: Other changes

Related Issue

Closes #310
Closes #464

xxx## Changes Made

Governance visibility (core of #310)

  • Orchestrator history: added governance vote events as standard history items (action + proposal link + For/Against/Abstain + timestamp).
  • Orchestrator profile: added a governance participation stat (voted/eligible) to quickly gauge engagement.
  • Treasury proposal pages: refreshed the voters list to show vote, voting power, and links back to orchestrator profiles.
  • Standardized For/Against/Abstain wording, icons, and badge styling across all views.

Voting Widget Formatting (fixes #464)

  • Improved visual hierarchy and spacing in Voting and Treasury Voting widgets.
  • Refined "Your vote" section with clearer typography (SectionLabel) and layout.
  • Updated button sizing and focus states for better usability.

Refactors

  • Split poll vs treasury vote types and extracted shared hooks.
  • Removed legacy voting history/orchestrator list components.
  • Removed Cube.js client and related query generator (replaced by subgraph queries).

Fixes

  • SWR key fix for missing proposal titles.
  • Address and transaction hash formatting.
  • Orchestrators page early return.

Testing

  • Tested locally
  • Added/updated tests
  • All tests passing

Screenshots (if applicable)

image image image

Checklist

  • My commits are signed (verified)
  • My commit messages follow Conventional Commits format
  • My branch name follows the naming convention
  • My code follows the project's code style
  • I have commented my code where necessary

- Introduced a new component to present a list of orchestrators with their voting statistics, including proposals voted on, votes casted, recent votes, and voting turnout.
- Added Cube.js client for data fetching with new utility functions for querying voting history.
- Introduced VotingHistoryView component to display voting statistics, including proposals voted on and voting turnout.
- Updated package.json and pnpm-lock.yaml to include Cube.js client dependencies.
- Exported VoterSummary type for better type management in voting components.
- Integrated VotingHistoryView into the account layout for displaying voting statistics.
- Added new VotingHistory page to handle routing and data fetching for user voting history.
- Updated account layout to include a new tab for voting history, improving user navigation.
- Implemented utility functions for processing and summarizing voting data from Cube.js.
- Added OrchestratorVotingList component to display voting data for orchestrators.
- Implemented tabbed interface for Yield Overview and Voting History sections.
- Integrated voter summary processing functions to aggregate voting data.
- Updated getStaticProps to fetch and pass initial voter data to the page.
- Adds treasury proposals voting overview
@Jipperism Jipperism linked an issue Dec 22, 2025 that may be closed by this pull request
@vercel
Copy link

vercel bot commented Dec 22, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
explorer-arbitrum-one Ready Ready Preview, Comment Jan 29, 2026 8:58pm

Request Review

- Changed the method of accessing raw data from Cube.js API to use a function call.
- Simplified response validation in getStaticProps by removing unnecessary checks and directly using the response for voter summaries.
- Fetches voting metrics (voted/eligible) from Cube.js using LivepeerVoteProposals
- Adds an interactive Stat card to OrchestratingView with a visual progress bar
- Displays participation rate percentage and integrated link to account history
- Adds  utility to the Cube query generator
…nology

- Moved to a friendlier "Sky & Tomato" color scheme to keep voting separate from our main green brand accent.
- Standardized labels to "For / Against / Abstain" everywhere, including the global transaction feed.
- Rebuilt the vote table using our core data table component for a consistent look.
- Made it easier to explore voter history with new dedicated buttons, better tooltips, and subtle animations.
- Cleaned up the layout by stripping out redundant titles and shrinking fonts where they were getting too loud.
- Polished the details: added specific styling for "No reason provided" and refined how voter profiles are we showing voter names and txn links.
- Eliminated the agent log useEffect that was posting debug information.
- Streamlined imports by removing unnecessary useEffect import.
…List

- Changed badge colors to use a "Sky & Tomato" color scheme for better visual distinction.
- Updated badge labels from "Yes/No" to "For/Against" to standardize terminology across the application.
…rast

- Add mobile card layout matching MobileVoteView, use TransactionBadge component
- Hide timeline on mobile, improve contrast with $loContrast modal background
- Maintain desktop timeline layout
- Display formatted timestamp (MM/DD/YYYY h:mm a) below proposal ID
- Show on both mobile and desktop layouts
- Move transaction timestamp to bottom row grouped with transaction badge
- Narrow VoteModal desktop width from 50% to 40% with 600px max-width
- Improve reason text readability with shorter line lengths
- Better visual hierarchy by grouping transaction metadata together
- Redesign VoteDetail and MobileVoteView cards with improved visual hierarchy
- Make vote badge the hero element (top-left, larger size with icon)
- Remove redundant visual signals (left border, truncated proposal ID)
- Implement collapsible reason display (collapsed by default) for cleaner layout
- Simplify footer to single-line transaction badge and timestamp
- Add transaction timestamp to VoteItem for better context
- Refactor spacing and layout for consistency across mobile and desktop views
- Align card styling with Livepeer design system patterns
@thebeyondr
Copy link
Collaborator

In the voting widget, some element styles differ from the rest of the UI, for example, transaction links and hover states. Can we ensure styling is consistent across the entire explorer?

The address styling in the history popup should match what we use elsewhere in the explorer—possibly using the same pill-style component.

refactored ui in 1765609


Dashed link styling
The dashed underline under the “reason” text feels like editable content to me (though I’m not a UI expert).

We can remove the dashed underline since the text is already truncated with "..." and serves as a natural hint that there's more content available. In addition we can add a cursor change on hover (like a help/question cursor) for discoverability. I've included an example below.

removed in 399542e cc: @adamsoffer


Can we ensure the same voting history button is used on both the orchestrator page and the votes page? I’m fine with adding text before the button, similar to what we currently do on mobile.

@rickstaa Gonna push back here. I'm all for visual consistency but there's also contextual relevance that allows for adaptation. The icon here is space-efficient, uses a tooltip to provide clarity and is distinct from the "navigate away from this page" the orchestrator history design implies


Link styling in the history tab should be consistent with other elements. Right now, the transaction ID link for votes is styled differently than for other entries.

styled in b61e706


The right padding in the history row feels slightly off. I think we should match the left padding by adding a bit more spacing near the history icon.

padded in ff411eb


Mobile voting history styling
On mobile, can we match the styling used on the main page?

matching outfits in b9f5a98
additionally, in 28f5392 I redesign vote cards to align with Livepeer design language. Vote badge is now the hero element (top-left, larger with icon). Removed redundant signals (left border, truncated ID). Collapsible reason (collapsed by default). Simplified footer to a single line with transaction badge and timestamp. Added transaction timestamp to VoteItem. Consistent spacing and layout across mobile and desktop.


Would it make sense to add a timestamp to the history view (time, date, or block number) so users can easily see when these actions were executed?

timestamped in d588ab2

Copy link
Member

@rickstaa rickstaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thebeyondr thanks for the updates. This looks a lot better. I however had some small improvements which make it more consistent with the explorer. Please check it out in #514 and apply to your liking.

@rickstaa Gonna push back here. I'm all for visual consistency but there's also contextual relevance that allows for adaptation. The icon here is space-efficient, uses a tooltip to provide clarity and is distinct from the "navigate away from this page" the orchestrator history design implies

That makes sense, thanks for the explanation. In that case, one follow-up improvement we should tackle is adding the ability to filter the history page to only show votes, and then forward users to that filtered view (see #511
). This would help preserve clarity while keeping the current interaction model.

@Jipperism as explained in #457 (review) one thing I noticed is that on some proposals we get N/A instead of a transaction id. This should not happen since the orchestrator did perform a vote on-chain. Could you take a look and handle this edge case. Thanks!

@github-project-automation github-project-automation bot moved this from In Review to Todo in Explorer Revamp Jan 29, 2026
* refactor: improve mobile vote item hover behaviour

Ensure the hover behaviour is in the voting item is consistent with the
hover behavoir used in the rest of the explorer.

* refactor: reuse DataTable pagination for mobile vote tabke

Reuse the existing arrow-only pagination from DataTable in the mobile voting table
to ensure consistent behavior and styling.
@ECWireless
Copy link
Collaborator

@Jipperism as explained in #457 (review) one thing I noticed is that on some proposals we get N/A instead of a transaction id. This should not happen since the orchestrator did perform a vote on-chain. Could you take a look and handle this edge case. Thanks!

Addressed in 14eb3c9

@ECWireless ECWireless requested a review from rickstaa January 29, 2026 19:33
@ECWireless
Copy link
Collaborator

@rickstaa this is ready again for your review!

@rickstaa
Copy link
Member

@rickstaa this is ready again for your review!

Amazing, UI is approved also from my end now I will do one code review tomorrow morning and then we can merge.

@ECWireless ECWireless moved this from Todo to In Review in Explorer Revamp Jan 29, 2026
- Add gap between badge and title on mobile
- Align badge left edge with title text
myAccount: AccountQuery;
};

export const formatPercent = (percent: number, mantissa = 4) =>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ECWireless this helper could also be reused in other parts of the codebase. We might consider moving it to a shared utils module and standardizing percentage formatting across the app in a follow-up PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

Improve Voting widget formatting Showcase orchestrator voting activity in the UI

6 participants