Repository navigation
fix(hub-ui): hide the panel while a toggle action is on - #477
Merged
Merged
Conversation
The floating dock panel showed whenever a dock was selected, so a toggle action set `session.open` to false but the panel stayed on the page. The panel now shows only while `session.open` is true, like edge mode. The selection stays, so the same view and route come back when the tool turns off. While the panel is hidden, the dock bar no longer marks the selected view as active. A click on that view now opens it again, instead of clearing the selection. Refs #469 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
👁️🗨️ Review this pull request with grouped, summarized diffs at: raw result💭 analyzed by {
"headSha": "43cfb85e528d9775b2e7f227b6cdd0523309d409",
"result": {
"overallSummary": "Fixes the floating dock panel (DockPanel.vue) not hiding while a toggle action is on, by giving it and the edge panel a shared `getPanelViewEntry` helper that respects `panel.session.open`, plus a matching test and a doc clarification for hub UI providers.",
"groups": [
{
"key": "panel-visibility-fix",
"label": "Panel visibility fix",
"summary": "Introduces a shared `getPanelViewEntry(context)` helper so both the floating panel and the edge panel hide whenever `panel.session.open` is `false` (e.g. while a toggle action is on), while the selection and iframe stay mounted. Also makes the dock bar stop marking the selection as active while the panel is hidden, so a click on it reopens the view instead of clearing the selection.",
"category": "core",
"filePaths": [
"packages/hub-ui/src/client/state/dock-settings.ts",
"packages/hub-ui/src/client/components/dock/DockPanel.vue",
"packages/hub-ui/src/client/components/dock/DockEdge.vue",
"packages/hub-ui/src/client/components/dock/Dock.vue"
],
"critical": true,
"fileNotes": [
{
"path": "packages/hub-ui/src/client/state/dock-settings.ts",
"text": "New shared helper: panel content shows only when `session.open` is true and the selected entry isn't an action; used by both DockPanel and DockEdge to fix the inconsistency."
},
{
"path": "packages/hub-ui/src/client/components/dock/DockPanel.vue",
"text": "Previously `v-show` only checked that a non-action entry was selected, ignoring `session.open`; now it uses the shared helper, fixing the reported bug."
}
]
},
{
"key": "tests",
"label": "Tests",
"summary": "Adds an integration test covering the three ways a toggle action can turn off (click, `setActionActive(false)`, Escape command), asserting the panel hides while on and the same view/route return when off.",
"category": "tests",
"filePaths": [
"packages/hub-ui/src/client/state/client-script.integration.test.ts"
]
},
{
"key": "docs",
"label": "Hub UI provider guide",
"summary": "Clarifies that custom hub UI providers must show the panel only while `panel.session.open` is `true`, matching the fixed behavior.",
"category": "docs",
"filePaths": [
"docs/content/1.guide/22.build-your-own-hub-ui.md"
]
}
],
"schemaVersion": 1,
"source": "llm",
"generatedAt": "2026-11-01T12:56:34.001Z",
"model": "vercel-ai-gateway/anthropic/claude-sonnet-5",
"locale": "en"
}
} |
antfubot
added a commit
to nuxt/devtools
that referenced
this pull request
Nov 1, 2026
Includes the fix for toggle dock actions not hiding the panel (devframes/devframe#477). Also exclude `@devframes/agentic` from the minimum release age by name, like the rest of the devframe packages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 1, 2026
This branch was successfully deployed
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.
Fixes a bug in #469 (toggle dock actions, released in 1.3.0).
Problem
When a toggle action turns on, the hub sets
panel.session.opentofalseand keeps the selection. The floating panel inDockPanel.vueshowed whenever a dock was selected. It did not readsession.open, so the panel stayed on the page over the tool. Edge mode already readsession.open, so only the floating dock had the bug.Fix
getPanelViewEntry(context). It returns the selected view only whilesession.openistrue.panel.session.openistrue.I did not change the hub to save and restore the selection. That approach unmounts the view and loses the iframe state.
I looked for code that needs "open is false but the panel shows". I found none. Outside click and Escape already clear the selection. Dock auto-hide treats
open: falseas closed. Edge mode already hid the panel. The standalone viewer does not usesession.open. The two custom hub examples have no floating panel.Verification
client-script.integration.test.ts. It turns the tool on and off in three ways: a second click,setActionActive(id, false), and the Escape command. After each one, it checks that the panel view is hidden and that the same view and route come back. The test fails without the fix.?embedded, with a temporary toggle action):open: false)setActionActive(id, false)pnpm lint,pnpm knip,pnpm typecheck, andpnpm buildpass.pnpm test: 1813 tests pass. Twodevframetests fail in my sandbox ([::1]loopback through an HTTP proxy). They are not related to this change.🤖 Generated with Claude Code