Implement User Witness Votes Stat & Viewer
Feature Description:
This feature introduces an interactive "Witness Votes" stats card on user profile pages. Clicking this card will open a clean, simple dialog (modal) displaying the full list of witnesses that the user supports.
Feature Breakdown:
1. "Witness Votes" Stats Card:
- Location: A new card will be added to the user profile stats panel, styled identically to "Followers," "Joined," etc.
-
Content:
-
Icon: A relevant icon, such as a checkmark in a shield
<Vote>
or a simple<Users>
. -
Value: The number from the
witnesses_voted_for
field (e.g., "27"). - Label: "WITNESS VOTES"
-
Icon: A relevant icon, such as a checkmark in a shield
-
Interaction: The entire card will be clickable. Hovering over it will display a tooltip with the text:
"Voting for X out of 30 witnesses."
2. Witness Votes List Dialog (Modal):
- When a user clicks the new "Witness Votes" stat card, a dialog (modal) will open. This prevents navigating away from the profile page.
-
Header: The dialog title will be clear and contextual, e.g.,
"Witness Votes by @username"
. -
Content: The dialog will display a simple, scrollable list of the witnesses the user has voted for. Each item in the list should include:
- The witness's avatar.
- The witness's account name.
- Interaction: Each witness name in the list will be a clickable link to that witness's own profile page.
-
Proxy Information: If the user has set a proxy, the list will be empty, and a message should be displayed instead:
"This account is not voting directly. Their votes are cast by their proxy: @proxyname"