Skip to content

fix(navbar): cancel pending hide timer before rescheduling - #491

Closed
hivecommons-hive[bot] wants to merge 2 commits into
mainfrom
hive/adopt-477
Closed

hivecommons-hive[bot] wants to merge 2 commits into
mainfrom
hive/adopt-477

Conversation

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Supersedes #477 (adopted after CI went red and the contributor was unavailable; original commits by @thatguywob preserved).

Fixes #475

This branch is #477's head 689bc054d2f3 as pushed by @thatguywob (fork thatguywob/docs-1), unchanged. Last lane reason on the original: reviewer-verdict:changes_requested.

Hive fix agent: rebase this branch on main, fix the failing checks / review asks, and push to THIS branch. Keep the original author's commits and their Signed-off-by; add your own sign-off on your commits. Do not open another PR.

Prevent paired menu/container leave events from orphaning a timer that closes a dropdown after re-entry. Cover navbar and language switcher re-entry paths.

Hive-Run: #475
Hive-Plan: navbar-hide-timer-regression
Hive-Spec: issue-475#expected
Signed-off-by: thatguywob <thatguywob@users.noreply.github.com>
@kubestellar-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign clubanderson for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@netlify

netlify Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

❌ Deploy Preview for hivecommons-docs failed. Why did it fail? →

Name Link
🔨 Latest commit 6230c67
🔍 Latest deploy log https://app.netlify.com/projects/hivecommons-docs/deploys/6adfe47c4de987df5413ddf3

@hivecommons-hive hivecommons-hive Bot added author/hive This repository's own hive (the App or one of its agent lanes) authored this PR dco All commits are DCO signed-off role/trusted Author is trusted for unattended merge (trusted-author role or registry/claim tier in require_tiers) stage/050-review-pending Review swarm requested; awaiting a verdict for the current head labels Oct 26, 2026
changelog.d/fixed-475.md already exists from #476; the extra fragment
would emit a second release-notes line for the same fix.

Hive-Fix-Attempt: 1/6
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Decision needed: @clubanderson should decide whether to close this adoption in favour of #477, whose current head 6230c67 is the same refactor+tests minus a second #475 changelog fragment that duplicates the one #476 already merged.

Conclusion: this PR is a frozen snapshot of #477's old head (689bc05). #477 has since moved to 6230c67, and the only difference between them is that this one still adds changelog.d/fixed-475-navbar-hide-timer.md — a second fragment for #475. changelog.d/fixed-475.md is already on main from #476 (merged 2026-10-26, 0ea9ca3), so this fragment would double-report the fix.

What I verified (both diffs in full + main tree):

  • src/components/navbar/useNavDropdowns.ts and src/__tests__/useNavDropdowns.test.tsx hunks are byte-identical between this PR and #4776230c67.
  • The code change is a hoist, not a fix: clearHideTimeout moves from inside the per-dropdown loop (useNavDropdowns.ts:35 on main) to effect scope (:27 in the diff), and the language-switcher handleMouseLeave at :183-186 replaces its inline clearTimeout block with the shared helper. Same behaviour; the actual #475 bug was fixed by #476 at the merge-base.
  • The new it.each cases (useNavDropdowns.test.tsx:140-163, :393-418) exercise re-entry after paired mouseleave and then a normal close — regression coverage for #476.

CI: the only red checks here are the four Netlify contexts, which fail on every docs PR right now (Netlify team quota — see #419), not because of this diff.

Recommendation: close this in favour of #477 (no redundant fragment). I have not closed anything.

— hive: agent=reviewer backend=copilot model=claude-fable-5.1 copilot=1.0.88

@hivecommons-hive hivecommons-hive Bot added stage/085-needs-decision A human decision is owed: sentinel alert, hold/needs-decision label, human-only rule or parked issue and removed stage/050-review-pending Review swarm requested; awaiting a verdict for the current head labels Oct 26, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

Needs a decision, not a merge:

Head: verdict requires_human @689bc05, 4/4 checks green, DCO yes, soak 0s of 30m0s.

What to do: approve this head (689bc05) to merge as-is, or leave a changes requested review (or reply /hive decision <what to change>) and the hive will push the fix.

How to release it:

  • After reading the verdict, a trusted merger can submit a GitHub Approve review for the current head and the lane clears the hold on its next pass; /hive approve replies on a PR are acknowledged but not consumed.

Clear the cause and the hive re-evaluates on its next pass; the stage moves to stage/090-ready-for-human-merge, stage/095-pre-merge-soak or the merge queue on its own. Approval does not bypass CI, hold labels or other merge gates.

@hivecommons-hive hivecommons-hive Bot added stage/050-review-pending Review swarm requested; awaiting a verdict for the current head and removed stage/085-needs-decision A human decision is owed: sentinel alert, hold/needs-decision label, human-only rule or parked issue labels Oct 26, 2026

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Decision needed: @clubanderson should decide whether to close this adoption (#491) in favour of #477, now that both PRs point at the identical head 6230c67 and the adoption's premise (red CI, unavailable contributor) no longer holds.

Conclusion: #491 is now a no-op duplicate of #477 — merging one makes the other empty.

Evidence (verified at the current heads):

  • hive/adopt-477 (this PR) and thatguywob:fix/navbar-hide-timer-475 (#477) both resolve to head 6230c676c59a4bee16b470027873117f3866ed37 — same two commits (689bc05 fix, 6230c67 changelog-fragment drop). Identical tree, identical diff against main: src/components/navbar/useNavDropdowns.ts (hoists clearHideTimeout to effect scope, lines 27–32, and reuses it in the language-switcher handleMouseLeave, line 183) and src/__tests__/useNavDropdowns.test.tsx (five it.each re-entry regression cases). Pure refactor + tests; no behaviour change — the actual bug was already fixed at merge-base by #476 and #475 is closed.
  • CI is identical on both: TypeScript & ESLint, Audit, DCO pass; Lint/build and unit tests in progress; the Netlify deploy-preview / Header / Redirect / Pages failures are the known Netlify Free-team quota exhaustion ruled on in #419, not this diff.
  • The adoption body says this branch exists because #477 "went red and the contributor was unavailable". @thatguywob has since pushed 6230c67 to #477, and #477 already carries a hive approve at that head.

Difference worth noting: #477 cites Refs #475; this PR says Fixes #475. Since #475 is already closed (by #476), the closing keyword here is moot either way.

Recommendation: keep #477 (the contributor's original, authored by @thatguywob, same head, already reviewed) and close #491. I have not closed anything.

— hive: agent=reviewer-2 backend=copilot model=claude-fable-5.1 copilot=1.0.88

@hivecommons-hive hivecommons-hive Bot added stage/085-needs-decision A human decision is owed: sentinel alert, hold/needs-decision label, human-only rule or parked issue and removed stage/050-review-pending Review swarm requested; awaiting a verdict for the current head labels Oct 26, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

Needs a decision, not a merge:

Head: verdict requires_human @6230c67, 4/4 checks green, DCO yes, soak 0s of 30m0s.

What to do: approve this head (6230c67) to merge as-is, or leave a changes requested review (or reply /hive decision <what to change>) and the hive will push the fix.

How to release it:

  • After reading the verdict, a trusted merger can submit a GitHub Approve review for the current head and the lane clears the hold on its next pass; /hive approve replies on a PR are acknowledged but not consumed.

Clear the cause and the hive re-evaluates on its next pass; the stage moves to stage/090-ready-for-human-merge, stage/095-pre-merge-soak or the merge queue on its own. Approval does not bypass CI, hold labels or other merge gates.

@thatguywob

Copy link
Copy Markdown
Contributor

I am finishing the original PR #477 myself. Its fork branch now has head f1d1088, authored and DCO-signed as thatguywob, with the exact accepted file contents preserved. This resolves the bot-commit attribution blocker on #477 without adding a duplicate changelog or changing behavior.

Please keep #477 as the canonical helper-refactor/regression-test follow-up and close this adopted duplicate in its favor; do not supersede or close #477 on the basis of the old 6230c67 head. Fresh CI and normal maintainer approval are still required on #477.

@clubanderson

Copy link
Copy Markdown
Member

Closing: #477 (same diff, head f1d1088 authored and signed off by @thatguywob, CI green) has been merged as the canonical follow-up to #476, so this adoption copy is no longer needed.

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

Labels

author/hive This repository's own hive (the App or one of its agent lanes) authored this PR dco All commits are DCO signed-off dco-signoff: yes role/trusted Author is trusted for unattended merge (trusted-author role or registry/claim tier in require_tiers) size/M stage/085-needs-decision A human decision is owed: sentinel alert, hold/needs-decision label, human-only rule or parked issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[scanner] fix(navbar): useNavDropdowns orphans a hide timer when leaving via the menu, closing the dropdown under the cursor

2 participants