mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[EuiProvider] Fix AppEx-SharedUX code (#183872)
## Summary
Fixes needed for getting CI to pass when EUI throws an error if
attempting to render a component without the EuiProvider in the render
tree.
## Detailed description
In https://github.com/elastic/kibana/pull/180819, I will deliver a
change that will cause EUI components to throw an error if the
EuiProvider context is missing. This PR comes in as part of the final
work to get all functional tests passing in an environment where EUI
will throw the error. The tied to the ["Fix 'dark mode' inconsistencies
in Kibana" Epic](https://github.com/elastic/kibana-team/issues/805) has
so far been in preparation for this.
**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**
<img width="1107" alt="image"
src="c0d2ce08
-ac35-45a7-8192-0b2256fceb0e">
### Checklist
Delete any items that are not applicable to this PR.
- [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
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
c17e957724
commit
7d7f9de609
20 changed files with 311 additions and 217 deletions
|
@ -5,7 +5,7 @@
|
|||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
import { EuiButton } from '@elastic/eui';
|
||||
import { EuiButton, EuiProvider } from '@elastic/eui';
|
||||
|
||||
import React, { useState } from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
|
@ -74,23 +74,27 @@ export class ErrorBoundaryExamplePlugin implements Plugin<void, void, SetupDeps>
|
|||
id: 'errorBoundaryExample',
|
||||
title: 'Error Boundary Example',
|
||||
async mount({ element }: AppMountParameters) {
|
||||
// Using the "EuiProvider" here rather than KibanaRenderContextProvider, because KibanaRenderContextProvider
|
||||
// wraps KibanaErrorBoundaryProvider and KibanaErrorBoundary and we want to test it directly, not a wrapper.
|
||||
ReactDOM.render(
|
||||
<KibanaErrorBoundaryProvider analytics={core.analytics}>
|
||||
<KibanaErrorBoundary>
|
||||
<KibanaPageTemplate>
|
||||
<KibanaPageTemplate.Header
|
||||
pageTitle="KibanaErrorBoundary example"
|
||||
data-test-subj="errorBoundaryExampleHeader"
|
||||
/>
|
||||
<KibanaPageTemplate.Section grow={false}>
|
||||
<FatalComponent />
|
||||
</KibanaPageTemplate.Section>
|
||||
<KibanaPageTemplate.Section>
|
||||
<RecoverableComponent />
|
||||
</KibanaPageTemplate.Section>
|
||||
</KibanaPageTemplate>
|
||||
</KibanaErrorBoundary>
|
||||
</KibanaErrorBoundaryProvider>,
|
||||
<EuiProvider>
|
||||
<KibanaErrorBoundaryProvider analytics={core.analytics}>
|
||||
<KibanaErrorBoundary>
|
||||
<KibanaPageTemplate>
|
||||
<KibanaPageTemplate.Header
|
||||
pageTitle="KibanaErrorBoundary example"
|
||||
data-test-subj="errorBoundaryExampleHeader"
|
||||
/>
|
||||
<KibanaPageTemplate.Section grow={false}>
|
||||
<FatalComponent />
|
||||
</KibanaPageTemplate.Section>
|
||||
<KibanaPageTemplate.Section>
|
||||
<RecoverableComponent />
|
||||
</KibanaPageTemplate.Section>
|
||||
</KibanaPageTemplate>
|
||||
</KibanaErrorBoundary>
|
||||
</KibanaErrorBoundaryProvider>
|
||||
</EuiProvider>,
|
||||
element
|
||||
);
|
||||
return () => ReactDOM.unmountComponentAtNode(element);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue