Add react-router-dom-v5-compat (#159173)

## Summary

Prep work for bumping react-router to v6
Following https://github.com/remix-run/react-router/discussions/8753

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Patryk Kopyciński 2023-06-14 14:13:15 +02:00 committed by GitHub
parent 2fba1b651e
commit 09577fa0af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 715 additions and 613 deletions

View file

@ -11,6 +11,7 @@ import { CoreStart } from '@kbn/core/public';
import { of } from 'rxjs';
import { createMemoryHistory } from 'history';
import { Router } from 'react-router-dom';
import { CompatRouter } from 'react-router-dom-v5-compat';
import { MemoryHistory } from 'history';
import { EuiThemeProvider } from '@kbn/kibana-react-plugin/common';
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
@ -38,11 +39,13 @@ export const render = (
return testLibRender(
<Router history={history}>
<KibanaContextProvider services={{ ...core }}>
<UrlParamsProvider>
<EuiThemeProvider>{component}</EuiThemeProvider>
</UrlParamsProvider>
</KibanaContextProvider>
<CompatRouter>
<KibanaContextProvider services={{ ...core }}>
<UrlParamsProvider>
<EuiThemeProvider>{component}</EuiThemeProvider>
</UrlParamsProvider>
</KibanaContextProvider>
</CompatRouter>
</Router>
);
};

View file

@ -11,6 +11,7 @@ import { History, Location } from 'history';
import moment from 'moment-timezone';
import * as React from 'react';
import { MemoryRouter, Router } from 'react-router-dom';
import { CompatRouter } from 'react-router-dom-v5-compat';
import type { UrlParams } from './types';
import { UrlParamsContext, UrlParamsProvider } from './url_params_context';
@ -164,25 +165,27 @@ describe('UrlParamsContext', () => {
const wrapper = mount(
<Router history={history}>
<UrlParamsProvider>
<UrlParamsContext.Consumer>
{({ urlParams, refreshTimeRange }) => {
return (
<React.Fragment>
<span id="data">{JSON.stringify(urlParams, null, 2)}</span>
<button
onClick={() =>
refreshTimeRange({
rangeFrom: 'now-1d/d',
rangeTo: 'now-1d/d',
})
}
/>
</React.Fragment>
);
}}
</UrlParamsContext.Consumer>
</UrlParamsProvider>
<CompatRouter>
<UrlParamsProvider>
<UrlParamsContext.Consumer>
{({ urlParams, refreshTimeRange }) => {
return (
<React.Fragment>
<span id="data">{JSON.stringify(urlParams, null, 2)}</span>
<button
onClick={() =>
refreshTimeRange({
rangeFrom: 'now-1d/d',
rangeTo: 'now-1d/d',
})
}
/>
</React.Fragment>
);
}}
</UrlParamsContext.Consumer>
</UrlParamsProvider>
</CompatRouter>
</Router>
);