Skip to content

[Chrome Next] Add AppHeader to dashboards listing page#271945

Open
kowalczyk-krzysztof wants to merge 2 commits into
elastic:mainfrom
kowalczyk-krzysztof:feat/dashboard-listing-page-app-header
Open

[Chrome Next] Add AppHeader to dashboards listing page#271945
kowalczyk-krzysztof wants to merge 2 commits into
elastic:mainfrom
kowalczyk-krzysztof:feat/dashboard-listing-page-app-header

Conversation

@kowalczyk-krzysztof
Copy link
Copy Markdown
Member

@kowalczyk-krzysztof kowalczyk-krzysztof commented May 29, 2026

Summary

This PR migrates dashboard listing page to use the new AppHeader component as part Chrome Next project. The Create <variant> button that was previously one of the table action buttons, has been moved into app menu.

Variant Before After
Solution Before (solution) After (solution)
Classic Before (classic) After (classic)

Closes: https://github.com/elastic/kibana-team/issues/3421

@kowalczyk-krzysztof kowalczyk-krzysztof self-assigned this May 29, 2026
@kowalczyk-krzysztof kowalczyk-krzysztof added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// labels May 29, 2026
@kowalczyk-krzysztof kowalczyk-krzysztof force-pushed the feat/dashboard-listing-page-app-header branch from fe7347e to ac655f9 Compare May 29, 2026 15:31
@github-actions
Copy link
Copy Markdown
Contributor

@kowalczyk-krzysztof, this PR increases one or more page-load bundle sizes by 15% or more:

Plugin Before (bytes) After (bytes) Change
visualizationListing 5,148 6,021 +17.0%

Large bundle size increases can affect page load performance. Consider whether dependencies can be lazy-loaded or code split to reduce the bundle.

See the bundle optimization guide for tips.

@kowalczyk-krzysztof kowalczyk-krzysztof force-pushed the feat/dashboard-listing-page-app-header branch 2 times, most recently from 8711af8 to 4cd49b2 Compare May 29, 2026 22:29
@kowalczyk-krzysztof kowalczyk-krzysztof force-pushed the feat/dashboard-listing-page-app-header branch from 4cd49b2 to 157b19f Compare May 29, 2026 22:30
{children}
<TabbedTableListView
headingId="dashboardListingHeading"
<AppHeader
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

q: Curious why we aren't upgrading the header inside the TabbedTableListView

Copy link
Copy Markdown
Member Author

@kowalczyk-krzysztof kowalczyk-krzysztof Jun 1, 2026

Choose a reason for hiding this comment

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

No reason really. I picked the first component that had tabs defined already. We could move it one level down or even up but I think it's best for presentation team to decide on that.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Oh, I thought there was a good reason. because otherwise more 1-to-1 migration would be putting it into TabbedTableListView where PageTemplate wraps the header, so it would be my default choice

items: [
{
id: 'createDashboard',
order: 1,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: Hehe, I still think it is weird that the API requires order for the array of items :D
The array is the natural order in this case.

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.

It won't always be the case that you will define all items in one file and having an if branch "if there's order, use it if not then use the order items were passed in" seems confusing.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I wonder what an example of this is and what it looks like in code.

I understand order for registry like api - registerItem({}) when you register from multiple places. There it makes sense.

But when it is a place where we pass the final order into the component, this seems confusing.

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.

Take a look at how discover defines app menu - each button is defined in a separate file. It's easier to understand which button has which position when you see order in that case. Also discover has a functionality built on-top of app menu (discover profiles) that lets you register custom app menu buttons, which is even more of a reason to keep order.

@kowalczyk-krzysztof kowalczyk-krzysztof marked this pull request as ready for review June 1, 2026 08:49
@kowalczyk-krzysztof kowalczyk-krzysztof requested review from a team as code owners June 1, 2026 08:49
@infra-vault-gh-plugin-prod
Copy link
Copy Markdown

Pinging @elastic/appex-sharedux (Team:SharedUX)

@kibanamachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #196 / Serverless Common UI - Home Page Sample data in serverless "after all" hook for "Sample data loads"

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
dashboard 1097 1135 +38

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
dashboard 1.1MB 1.1MB +29.0KB
visualizationListing 97.7KB 98.2KB +516.0B
visualizations 335.3KB 335.4KB +52.0B
total +29.6KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
dashboard 18.8KB 18.8KB +79.0B
eventAnnotationListing 12.3KB 12.8KB +482.0B
visualizationListing 4.9KB 5.0KB +143.0B
total +704.0B
Unknown metric groups

async chunk count

id before after diff
dashboard 13 14 +1

History

cc @kowalczyk-krzysztof

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

Labels

backport:skip This PR does not require backporting release_note:skip Skip the PR/issue when compiling release notes Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t//

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants