Skip to content

refactor: split ObjectActions out of the ObjectInfo panel - #14

Open
ericgozzi wants to merge 3 commits into
mainfrom
feature/object-actions-panel
Open

refactor: split ObjectActions out of the ObjectInfo panel#14
ericgozzi wants to merge 3 commits into
mainfrom
feature/object-actions-panel

Conversation

@ericgozzi

Copy link
Copy Markdown
Collaborator

Summary

  • ObjectInfo now shows metadata only; the backend-driven FUNCTIONS buttons/selects move into a new ObjectActions floating panel
  • Both panels dock in the same top-right column (via a new RightSidebar wrapper, mirroring the existing Sidebar pattern for Toolbar/Openbar) and only reflow when ObjectInfo is actually opened or closed
  • ObjectInfo also sizes to its metadata instead of always stretching the full column height
  • Fixes a real bug this surfaced: ObjectActions previously toggled via an internal v-if inside the reflow TransitionGroup, so every object-selection change (which briefly clears then repopulates the action list) was treated as a full leave+enter cycle, momentarily rendering two panels with the same id. It now stays mounted and hides via CSS so only the deliberate ObjectInfo open/close animates.

Test plan

  • npm run typecheck
  • npm test
  • npm run build
  • Manual smoke test: confirmed both panels render as separate floating glass boxes, ObjectActions docks in the same slot as ObjectInfo and only moves down when ObjectInfo opens, and reselecting objects no longer flickers or duplicates the actions panel

ericgozzi and others added 3 commits August 14, 2026 09:57
ObjectInfo now shows metadata only. The backend-driven FUNCTIONS
buttons/selects move into a new ObjectActions floating panel, anchored
bottom-right so it doesn't interfere with ObjectInfo's existing full-height
top-right layout. It only renders while there are actions to show.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… reflow

ObjectActions now docks in the top-right slot by default and only moves
down when ObjectInfo actually opens, via a shared RightSidebar wrapper
(mirrors Sidebar's Toolbar/Openbar pattern) using TransitionGroup for the
slide/reflow animation. ObjectInfo also sizes to its metadata instead of
always stretching the full column.

Also fixes a real bug this surfaced: ObjectActions previously toggled via
an internal v-if inside the TransitionGroup, so Vue treated every
selection change (which briefly clears then repopulates the action list)
as a full leave+enter cycle, momentarily rendering two panels with the
same id while one slid out and another slid in. It now stays mounted and
hides via CSS, so only the deliberate ObjectInfo open/close triggers the
animation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@gonzalocasas gonzalocasas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM except the same comment about not changing the changelog manually! ;)

For a follow up, it would be interesting to explore a more fully fledged theming capability

:class="{ dark: theme.value === 'dark' }"
>
FUNCTIONS
METADATA

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Very tiny thing, but the titles of these panels in uppercase could be capitalized normally, e.g. Metadata and have the uppercasing be handled by CSS, so that if a theme on top wants to preserve capitalized titles, it's possible

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants