Skip to content

Improve plugins infrastructure#800

Merged
Micheal Parks (micheal-parks) merged 7 commits into
mainfrom
plugins-infra-1
Jul 6, 2026
Merged

Improve plugins infrastructure#800
Micheal Parks (micheal-parks) merged 7 commits into
mainfrom
plugins-infra-1

Conversation

@micheal-parks

@micheal-parks Micheal Parks (micheal-parks) commented Jun 30, 2026

Copy link
Copy Markdown
Member

Overview

This PR introduces 3 new portaling components for plugins: DashboardPortal, DetailsPortal and SettingsPortal. The last one is the most configurable and allows creation of settings tabs. The first two are pretty barebones and only allow what we currently do with injecting into the dashboard and details panels, but in subsequent PRs I'll improve them so that we can order dashboard items and allow injection into specific areas of the details panel.

Additionally, this PR updates floating panels so that they are automatically wrapped in DOM portals, removing the need for plugins to do this.

@changeset-bot

changeset-bot Bot commented Jun 30, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e66f494

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@viamrobotics/motion-tools Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-07-06 15:52 UTC


$effect(() => {
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
label

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.

nit: would pulling const tab = { label, children } up here turn on reactivity for these so we don't need to do the eslint ignore

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

good point, fixed!

}
| {
label: string
children: Snippet

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.

why does this prop need to render children now? can we not just have the useSettingsTab require a Component or move everyone over to use snippets?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The problem is that components make sense when making tabs internally, and snippets make sense ergonomically when making tabs via plugins. Small complexity cost internally.

@viamrobotics-overwatch

Copy link
Copy Markdown

Hey Micheal Parks (@micheal-parks) — this PR has been approved and CI has been green for 3+ business days. Ready to merge?

Auto-comment from overwatch. Will not re-nudge for 7 days.

@micheal-parks Micheal Parks (micheal-parks) merged commit ec08d01 into main Jul 6, 2026
6 checks passed
@micheal-parks Micheal Parks (micheal-parks) deleted the plugins-infra-1 branch July 6, 2026 15:52
@claude claude Bot mentioned this pull request Jul 6, 2026
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.

3 participants