Skip to content

feat(settings): Support plugin settings tabs - #116

Merged
nfebe merged 1 commit into
devfrom
feat/plugin-settings-tabs
Oct 23, 2026
Merged

nfebe merged 1 commit into
devfrom
feat/plugin-settings-tabs

Conversation

@nfebe

@nfebe nfebe commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Add plugin-provided Settings tabs. Tabs appear only when the matching plugin UI is installed.

@sourceant

sourceant Bot commented Oct 23, 2026

Copy link
Copy Markdown

Code Review Summary

Settings tabs are now addressable through the ?tab= query parameter, with unknown or unavailable keys falling back to the account tab, and selecting a tab rewrites the query. Plugin descriptors can declare a settings.tabs entry whose body is the layer-registered component; such tabs are hidden until that component exists and are ordered by the descriptor's order value. The theme also mirrors its state into a data-theme attribute, and icon resolution moved into a shared utility.

🚀 Key Improvements

  • Settings tabs become linkable and bookmarkable via ?tab= with a safe account fallback.
  • Plugin tabs only appear once their layer registers a component, avoiding broken or empty tabs.
  • Icon lookup is shared through utils/integrationIcon.ts instead of duplicated in components.

📉 Regressions

  • Selecting a tab calls router.replace with a query object containing only tab, dropping any other query parameters on /settings.

💡 Minor Suggestions

  • Review coverage is incomplete. Inspect the execution details before approving.

@sourceant sourceant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review complete. See the overview comment for a summary.

@nfebe
nfebe merged commit 778944b into dev Oct 23, 2026
6 checks passed
@nfebe
nfebe deleted the feat/plugin-settings-tabs branch October 23, 2026 17:15
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.

1 participant