feat(ui): player notes and tags — click a seat to note a player; tag icons (fish, shark, tight, loose…) show by their pill

Open
#947 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@Dzeezbtc is already working on this.

Since Nov 1, 2026.

  • #948 by @Dzeezbtc — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
react, typescript
Domain
frontend

Research direction

Start with the opponent seat component in src/components/playPage/Players/OppositePlayer.tsx, which has cursor-pointer but no click handler, and with the stack pill it must sit beside. The work is a notes popover, a tag picker with the listed icons, and a localStorage store keyed by the noted player's address, read on every table. Done means the chosen tag icons appear left of that player's pill on any table, hovering shows the note, and the record survives a refresh.

Written by the indexing model from the issue text.

Description

What

Players need a way to keep notes on the people they play against, plus quick preset tags whose icons show on that player's seat.

  1. Click any other player's seat at the table → a notes box expands next to it.
  2. Type free-text notes.
  3. Pick one or more preset tags (icons):
    • 🐟 Fish — recreational, makes big mistakes
    • 🐋 Whale — recreational with deep pockets
    • 🦈 Shark — strong winning player
    • 🪨 Tight — rock / nit
    • 🎲 Loose — plays lots of hands
    • 🔥 Aggressive — bets and raises a lot
    • 🐢 Passive — checks and calls
    • 📞 Calling station — won't fold
    • 🐣 Weak — folds to pressure
    • 💣 Maniac — raises anything
    • 🎭 Bluffer
    • 😡 Tilts
  4. Click OK → the chosen tag icons sit just to the left of that player's stack pill, on every table that player sits at. Hovering them shows the tags and the start of the note. A 📝 icon shows when there is text but no tag.

What exists today

  • No player notes or tags anywhere in ui, poker-vm or pokerchain (searched issues/PRs and code).
  • ui#809 (admin player operations, closed) covered admin notes on players, not a player's own private notes.
  • src/pages/PlayersPage.tsx (ui#589) lists players by address; it has no notes.
  • Opponent seats (src/components/playPage/Players/OppositePlayer.tsx) have cursor-pointer but no click action.

Storage

Notes are private to the viewer, so v1 keeps them in localStorage, one record per viewer wallet, keyed by the noted player's address (follows them across tables, survives refresh, syncs across tabs for multi-tabling). Moving them server-side so they follow the user across devices would need a backend; out of scope here.

Suggested labels: feature, UI, ux, table-layout

Dominant language
TypeScript
Stars
2
Forks
5
Avg merge
22h 35m
Merged PRs (30d)
91

Getting set up

We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from block52/ui

All issues in block52/ui

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.