refactor(tui): share StyledGlyph across queue show/status renderers#1444
Conversation
This was referenced May 19, 2026
Member
Author
|
This pull request is part of a Mergify stack:
|
This was referenced May 19, 2026
Contributor
Merge ProtectionsYour pull request matches the following merge protections and will not be merged until they are valid. 🔴 ⛓️ Depends-On RequirementsWaiting for
This rule is failing.Requirement based on the presence of
🔴 👀 Review RequirementsWaiting for
This rule is failing.
🔴 🔎 ReviewsWaiting for
This rule is failing.
🟢 🤖 Continuous IntegrationWonderful, this rule succeeded.
🟢 Enforce conventional commitWonderful, this rule succeeded.Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
🟢 📕 PR descriptionWonderful, this rule succeeded.
|
sileht
previously approved these changes
May 20, 2026
d729c8f to
66bd10c
Compare
e195107 to
1a26a25
Compare
Member
Author
Revision history
|
66bd10c to
c6ab109
Compare
30e29f7 to
6629220
Compare
c6ab109 to
62b1222
Compare
62b1222 to
52176dc
Compare
6629220 to
1472a2e
Compare
`queue show` and `queue status` both map an enum-ish state code to
an "(icon, ANSI style)" pair, but spelled the pairing two different
ways: `show.rs::check_state_glyph` returned `(&'static str, Style)`,
while `status.rs` split it into separate `status_icon` /
`batch_status_style` functions. Same shape, different names, drifting
naturally as new states land.
Add a small `StyledGlyph` struct to `mergify-tui` and route both
callers through it. `status.rs::status_icon` + `batch_status_style`
collapse into a single `batch_glyph(theme, code) -> StyledGlyph`;
the early-return for the disabled-theme case is preserved (the
`merged → green.dimmed()` composition would otherwise emit a dim
escape when colors are off).
The third candidate — `freeze/list.rs`'s active/scheduled coloring
— stays inline: it has no icon, just a two-arm color pick, and
forcing a `StyledGlyph::new("", color)` would add more noise than
it removes.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Change-Id: I8ed9bb5fffd46ecf75ff833df85b2ddf9812a4d8
1472a2e to
69759d0
Compare
52176dc to
502583e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
queue showandqueue statusboth map an enum-ish state code toan "(icon, ANSI style)" pair, but spelled the pairing two different
ways:
show.rs::check_state_glyphreturned(&'static str, Style),while
status.rssplit it into separatestatus_icon/batch_status_stylefunctions. Same shape, different names, driftingnaturally as new states land.
Add a small
StyledGlyphstruct tomergify-tuiand route bothcallers through it.
status.rs::status_icon+batch_status_stylecollapse into a single
batch_glyph(theme, code) -> StyledGlyph;the early-return for the disabled-theme case is preserved (the
merged → green.dimmed()composition would otherwise emit a dimescape when colors are off).
The third candidate —
freeze/list.rs's active/scheduled coloring— stays inline: it has no icon, just a two-arm color pick, and
forcing a
StyledGlyph::new("", color)would add more noise thanit removes.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
Depends-On: #1443