mirror of
https://github.com/elastic/kibana.git
synced 2025-04-18 23:21:39 -04:00
## Summary This PR adjusts the approach introduced in #214861 to ensure state updates work consistently across tabs, even after switching tabs during async operations. The `currentTabId` prop has been removed from the central state since it can't be relied on in actions, and instead tab IDs are injected using a `CurrentTabProvider`. This allows selectors to work the same as they did before, and tab specific actions have been updated to use a standard `TabAction` interface that accepts a tab ID and prevents leaking state changes. This approach is safer but adds some complexity, so for actions dispatched from React components, a `useCurrentTabAction` hook has been added to handle injecting the current tab ID. We also still need to access tab state within `DiscoverStateContainer` for now, so two utility methods (`injectCurrentTab` and `getCurrentTab`) have been added to make this easier. Since `DiscoverStateContainer` is scoped to a single tab, this should be safe, and ideally temporary until we get rid of it completely. Resolves #215398. ### Checklist - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
---|---|---|
.. | ||
public | ||
kibana.jsonc | ||
tsconfig.json |