Skip to content

[Manage] Use BUI page header - #7896

Merged
grantila merged 3 commits into
backstage:mainfrom
grantila:grantila/bui-page-header
Mar 3, 2026
Merged

[Manage] Use BUI page header#7896
grantila merged 3 commits into
backstage:mainfrom
grantila:grantila/bui-page-header

Conversation

@grantila

@grantila grantila commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Hey, I just made a Pull Request!

The Manage plugin is fully NFS, but OFS is still supported. The complexity of the plugin makes supporting both a bit tricky. While OFS is marked as deprecated, and removing support for it will enable a pretty big cleanup, support for both is still there and both need to work.

This PR:

  • Fixes the "manage.kinds" config not being read (minor change)
  • Moves the NFS version to the BUI Page header (sadly requiring a big change);

Moving the header is not just replacing the one in MUI with the one in BUI. In MUI, it's a component mounted inside the page, relatively deep within providers and other top-level components. The knowledge of what tabs to show requires providers and logic (and tabs may be added by extensions dynamically). For the BUI page header to look right, it needs to be mounted top-level of visual components which causes this change to be quite significant. It's almost entirely refactoring / moving code around, with almost no other change. An icon and title is added to the plugin object, and the icon is changed from a MUI icon to remixicon.

The ManagePage, ManageTabs and ManagePageFilters components are moved into /src/components-ofs for the OFS version (for future deletion), and the the logic for NFS is copied and heavily changed. This way, the OFS support is left intact while the NFS version is changed.

The full-height setting for extensions to use (to get a parent container filling the space between the tabs and the bottom of the page) is re-written for NFS specifically, as the body element cannot be accounted for for viewport height. The body element is not filling up vertical space when using BUI headers, they way it is using the MUI page header.

The PR may look big, well, it is. But it's mostly refactoring/moving for the BUI header to work.

Unit tests for both the OFS and NFS versions exist to ensure components are rendered in the table of entities, and both versions work well with manual testing too.

There is no API change, it's all internal.

The example app:

Skärmavbild 2026-03-02 kl  16 20 24

✔️ Checklist

  • A changeset describing the change and affected packages. (more info)
  • Added or updated documentation
  • Tests for new functionality and regression tests for bug fixes
  • Screenshots attached (for UI changes)
  • All your commits have a Signed-off-by line in the message. (more info)

grantila added 3 commits March 2, 2026 15:57
…what kinds to render tabs for

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
The tabs used to be MUI tabs _inside_ the page. Moving to BUI PluginHeader means a lot of refactoring was necessary, to move providers outside this so that the header has access to provider contexts.

Support for the old frontend system is still there, so its ManagePage, ManagePageFilters and ManageTabs where moved into /src/components-ofs and the necessary refactoring of the NFS page was done in isolation.

No API breakage or changes - both OFS and NFS work as before.

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
@grantila
grantila requested a review from a team as a code owner March 2, 2026 19:37
@grantila
grantila requested a review from Parsifal-M March 2, 2026 19:37
@backstage-goalie

Copy link
Copy Markdown
Contributor

Changed Packages

Package Name Package Path Changeset Bump Current Version
app-next workspaces/manage/packages/app-next none v0.0.7
@backstage-community/plugin-manage-react workspaces/manage/plugins/manage-react patch v2.2.0
@backstage-community/plugin-manage workspaces/manage/plugins/manage minor v1.2.0

@vinzscam vinzscam 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.

@grantila
grantila merged commit 57d32c5 into backstage:main Mar 3, 2026
13 checks passed
evanlankveld pushed a commit to evanlankveld/community-plugins that referenced this pull request Apr 28, 2026
* Parse and forward missing "kinds" settings from config - controlling what kinds to render tabs for

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>

* Move page header and tabs to BUI

The tabs used to be MUI tabs _inside_ the page. Moving to BUI PluginHeader means a lot of refactoring was necessary, to move providers outside this so that the header has access to provider contexts.

Support for the old frontend system is still there, so its ManagePage, ManagePageFilters and ManageTabs where moved into /src/components-ofs and the necessary refactoring of the NFS page was done in isolation.

No API breakage or changes - both OFS and NFS work as before.

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>

* changeset

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>

---------

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
Signed-off-by: Emiel van Lankveld <evanlankveld@bol.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants