[Bug]: "Merge stack" appears late and pushes the stack picker out from under the cursor
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- react, typescript
- Ambito
- frontend
Direzione di ricerca
Leggi apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx intorno alla riga 1304 e apps/web/src/components/pullRequest/PullRequestStackMenu.tsx intorno alla riga 202. Segui il rendering dell’intestazione mentre si aggiorna la query dello stack, poi confronta l’ordine dei controlli per le PR impilate e per una singola PR. Il lavoro è completato quando il selettore resta al suo posto durante il caricamento e i controlli delle PR impilate seguono un ordine coerente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/web
Steps to reproduce
- Open a stacked PR you can merge. Public demo: GisTypical/t3-stack-demo (PRs 1–5 are a stack, PR 7 is a single PR).
- Pick another layer from the stack picker (
3/5). - Click the stack picker again as soon as it shows.
- Merge stack pops in, pushes the picker left, and the click opens the merge confirmation instead. This repeats on every layer switch.
Expected behavior
Header controls don't move while data loads, and stacked PRs use the same order as single PRs.
Actual behavior
| View | Header order |
|---|---|
| Single PR | [linked threads] [Merge] [Check out] [⋯] |
| Stacked PR, loading | [2/5] [linked threads] [Check out] [⋯] |
| Stacked PR, loaded | [2/5] [Merge stack] [linked threads] [Check out] [⋯] |
The picker jumps 105 px left about 0.7 s after a layer switch (1280×800). The linked-threads button also swaps sides of the merge action between single and stacked PRs.
Cause, at e923627:
- Merge stack only renders once the stack query is fresh (
PullRequestDetailPanel.tsx:1304), but the picker renders from cached data. The row is right-aligned, so the late button pushes the picker. PullRequestStackMenurenders Merge stack next to the picker (PullRequestStackMenu.tsx:202) instead of in the Merge slot, which is why the order differs.
Impact
Minor bug or occasional failure
Version or commit
30f4d63 (dev build); the affected files are unchanged on e923627.
Environment
Linux, Chromium, GitHub stacked PRs made with gh stack.
Screenshots, recordings, or supporting files
https://github.com/user-attachments/assets/8aef5f95-79bd-4e75-b04f-45ad603cd77b
| Single PR | Stacked, loading | Stacked, loaded |
|---|---|---|
Proposed fix
Which would you accept?
- GitHub's layout: move the stack picker to the left, next to the PR status, and render Merge stack in the Merge slot.
- Smaller: render Merge stack in the Merge slot, and keep it mounted but disabled while the stack refreshes.
Both give stacked and single PRs one header order and keep Merge stack disabled until the stack is fresh.
- Lingua principale
- TypeScript
- Stelle
- 24.8k
- Fork
- 6.4k
- Merge medio
- 2h 54m
- PR unite (30g)
- 350
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pingdotgg/t3code
-
[Bug]: Pen taps on sidebar rows start a drag and lose their clickForse già presa @makhnatkin l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Guest messages near the 4,000-char limit fail with 400 "The request was not valid." because multipart turns \n into \r\nForse già presa @juliusmarminge l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Server preview browser is laggy: always launched with --disable-gpu and device scale 2Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
pingdotgg/t3code#26523 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: preview_evaluate forbids WebMCP write tools even when the user explicitly asks for the changeForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di pingdotgg/t3code
Issue simili
-
bug ui-dashboard
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
caelestia-dots/caelestia#534 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area: scripts bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
tdk-landscape/tdk-cli-core#2706 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bobadilla-tech/biasmarket.com#402 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
javvadivijayprasad/sel2pw#28 ·