From 8ae7fd44292dc6ca92824fbae7317f55a2b19f5c Mon Sep 17 00:00:00 2001 From: Tom Clark <> Date: Wed, 16 Oct 2019 09:49:08 +0100 Subject: [PATCH 1/6] Updated docs to explicitly refer to react-router-dom docs/examples and imports --- docs/Admin.md | 2 +- docs/CreateEdit.md | 4 ++-- docs/CustomApp.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Admin.md b/docs/Admin.md index a1957238ac4..52a789c5f9f 100644 --- a/docs/Admin.md +++ b/docs/Admin.md @@ -368,7 +368,7 @@ export default App; ## `customRoutes` -To register your own routes, create a module returning a list of [react-router](https://github.com/ReactTraining/react-router) `` component: +To register your own routes, create a module returning a list of [react-router-dom](https://reacttraining.com/react-router/web/guides/quick-start) `` component: ```jsx // in src/customRoutes.js diff --git a/docs/CreateEdit.md b/docs/CreateEdit.md index 708ddd027e7..96c94e3a58f 100644 --- a/docs/CreateEdit.md +++ b/docs/CreateEdit.md @@ -261,9 +261,9 @@ Alternately, you may need to prepopulate a record based on a *related* record. F **Note** `` is designed to be used in an edit view `` component, not inside a ``. The `Toolbar` is basically for submitting the form, not for going to another resource. -By default, the `` view starts with an empty `record`. However, if the `location` object (injected by [react-router](https://reacttraining.com/react-router/web/api/location)) contains a `record` in its `state`, the `` view uses that `record` instead of the empty object. That's how the `` works behind the hood. +By default, the `` view starts with an empty `record`. However, if the `location` object (injected by [react-router-dom](https://reacttraining.com/react-router/web/api/location)) contains a `record` in its `state`, the `` view uses that `record` instead of the empty object. That's how the `` works behind the hood. -That means that if you want to create a link to a creation form, presetting *some* values, all you have to do is to set the location `state`. React-router provides the `` component for that: +That means that if you want to create a link to a creation form, presetting *some* values, all you have to do is to set the location `state`. `react-router-dom` provides the `` component for that: {% raw %} ```jsx diff --git a/docs/CustomApp.md b/docs/CustomApp.md index 08848ed3c53..34541cf5f2b 100644 --- a/docs/CustomApp.md +++ b/docs/CustomApp.md @@ -11,7 +11,7 @@ The `` tag is a great shortcut to be up and running with react-admin in m Fortunately, the `` component detects when it's used inside an existing Redux ``, and skips its own store initialization. That means that react-admin will work out of the box inside another redux application - provided, of course, the store is compatible. -Beware that you need to know about [redux](http://redux.js.org/), [react-router](https://github.com/reactjs/react-router), and [redux-saga](https://github.com/yelouafi/redux-saga) to go further. +Beware that you need to know about [redux](http://redux.js.org/), [react-router-dom](https://reacttraining.com/react-router/web/guides/quick-start), and [redux-saga](https://github.com/yelouafi/redux-saga) to go further. React-admin requires that the redux state contains at least 3 reducers: `admin`, `i18n` and `router`. You can add more, or replace some of them with your own, but you can't remove or rename them. As it relies on `connected-react-router` and `redux-saga`, react-admin also expects the store to use their middlewares. From 59df5ce825825ea98e02ba54409a156ed0421c76 Mon Sep 17 00:00:00 2001 From: Tom Clark <> Date: Wed, 16 Oct 2019 09:58:15 +0100 Subject: [PATCH 2/6] Updated examples to import consistently from react-router-dom --- examples/demo/src/reviews/ReviewList.js | 2 +- examples/simple/src/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/demo/src/reviews/ReviewList.js b/examples/demo/src/reviews/ReviewList.js index 2c078ac7bcb..58243b8230f 100644 --- a/examples/demo/src/reviews/ReviewList.js +++ b/examples/demo/src/reviews/ReviewList.js @@ -1,7 +1,7 @@ import React, { Fragment, useCallback } from 'react'; import classnames from 'classnames'; import { BulkDeleteButton, List } from 'react-admin'; -import { Route, useHistory } from 'react-router'; +import { Route, useHistory } from 'react-router-dom'; import { Drawer, useMediaQuery, makeStyles } from '@material-ui/core'; import BulkAcceptButton from './BulkAcceptButton'; import BulkRejectButton from './BulkRejectButton'; diff --git a/examples/simple/src/index.js b/examples/simple/src/index.js index e070f6a286d..664f47381d3 100644 --- a/examples/simple/src/index.js +++ b/examples/simple/src/index.js @@ -2,7 +2,7 @@ import React from 'react'; import { Admin, Resource } from 'react-admin'; // eslint-disable-line import/no-unresolved import { render } from 'react-dom'; -import { Route } from 'react-router'; +import { Route } from 'react-router-dom'; import { reducer as tree } from 'ra-tree-ui-materialui'; import authProvider from './authProvider'; From 73d2c5874571e0ef45b9b397badcdc04884bfff5 Mon Sep 17 00:00:00 2001 From: Tom Clark <> Date: Wed, 16 Oct 2019 10:03:37 +0100 Subject: [PATCH 3/6] Updated to import router components directly from react-router-dom --- packages/ra-core/src/auth/Authenticated.spec.tsx | 2 +- packages/ra-core/src/auth/useAuthenticated.spec.tsx | 2 +- packages/ra-core/src/auth/useLogin.ts | 2 +- packages/ra-core/src/auth/useLogout.ts | 2 +- packages/ra-core/src/controller/useCreateController.ts | 2 +- packages/ra-core/src/controller/useListParams.ts | 2 +- packages/ra-core/src/sideEffect/useRedirect.ts | 2 +- packages/ra-core/src/types.ts | 2 +- packages/ra-core/src/util/TestContext.tsx | 2 +- packages/ra-ui-materialui/src/auth/Login.tsx | 2 +- packages/ra-ui-materialui/src/detail/TabbedShowLayout.js | 2 +- packages/ra-ui-materialui/src/detail/TabbedShowLayoutTabs.js | 2 +- packages/ra-ui-materialui/src/field/ReferenceArrayField.spec.js | 2 +- packages/ra-ui-materialui/src/field/ReferenceField.spec.js | 2 +- packages/ra-ui-materialui/src/form/TabbedForm.js | 2 +- packages/ra-ui-materialui/src/form/TabbedForm.spec.js | 2 +- packages/ra-ui-materialui/src/form/TabbedFormTabs.js | 2 +- packages/ra-ui-materialui/src/form/TabbedFormTabs.spec.js | 2 +- packages/ra-ui-materialui/src/layout/Layout.js | 2 +- packages/ra-ui-materialui/src/list/DatagridRow.js | 2 +- packages/ra-ui-materialui/src/list/DatagridRow.spec.js | 2 +- packages/ra-ui-materialui/src/list/List.spec.js | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/ra-core/src/auth/Authenticated.spec.tsx b/packages/ra-core/src/auth/Authenticated.spec.tsx index f4bdb885e3a..a2c869a8928 100644 --- a/packages/ra-core/src/auth/Authenticated.spec.tsx +++ b/packages/ra-core/src/auth/Authenticated.spec.tsx @@ -7,7 +7,7 @@ import AuthContext from './AuthContext'; import renderWithRedux from '../util/renderWithRedux'; import { showNotification } from '../actions/notificationActions'; import { createMemoryHistory } from 'history'; -import { Router } from 'react-router'; +import { Router } from 'react-router-dom'; describe('', () => { afterEach(cleanup); diff --git a/packages/ra-core/src/auth/useAuthenticated.spec.tsx b/packages/ra-core/src/auth/useAuthenticated.spec.tsx index 1b245c6f449..d21e57890a9 100644 --- a/packages/ra-core/src/auth/useAuthenticated.spec.tsx +++ b/packages/ra-core/src/auth/useAuthenticated.spec.tsx @@ -7,7 +7,7 @@ import AuthContext from './AuthContext'; import renderWithRedux from '../util/renderWithRedux'; import { showNotification } from '../actions/notificationActions'; import { createMemoryHistory } from 'history'; -import { Router } from 'react-router'; +import { Router } from 'react-router-dom'; describe('useAuthenticated', () => { afterEach(cleanup); diff --git a/packages/ra-core/src/auth/useLogin.ts b/packages/ra-core/src/auth/useLogin.ts index 2e5d1bcaacf..a7967238123 100644 --- a/packages/ra-core/src/auth/useLogin.ts +++ b/packages/ra-core/src/auth/useLogin.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react'; import useAuthProvider, { defaultAuthParams } from './useAuthProvider'; -import { useLocation, useHistory } from 'react-router'; +import { useLocation, useHistory } from 'react-router-dom'; /** * Get a callback for calling the authProvider.login() method diff --git a/packages/ra-core/src/auth/useLogout.ts b/packages/ra-core/src/auth/useLogout.ts index 6986db55c6c..26910e450e6 100644 --- a/packages/ra-core/src/auth/useLogout.ts +++ b/packages/ra-core/src/auth/useLogout.ts @@ -3,7 +3,7 @@ import { useDispatch, useStore } from 'react-redux'; import useAuthProvider, { defaultAuthParams } from './useAuthProvider'; import { clearState } from '../actions/clearActions'; -import { useHistory, useLocation } from 'react-router'; +import { useHistory, useLocation } from 'react-router-dom'; /** * Get a callback for calling the authProvider.logout() method, diff --git a/packages/ra-core/src/controller/useCreateController.ts b/packages/ra-core/src/controller/useCreateController.ts index 4d12e04d273..6f94409663a 100644 --- a/packages/ra-core/src/controller/useCreateController.ts +++ b/packages/ra-core/src/controller/useCreateController.ts @@ -3,7 +3,7 @@ import { useCallback } from 'react'; import inflection from 'inflection'; import { parse } from 'query-string'; import { Location } from 'history'; -import { match as Match } from 'react-router'; +import { match as Match } from 'react-router-dom'; import { useCheckMinimumRequiredProps } from './checkMinimumRequiredProps'; import { useCreate } from '../dataProvider'; diff --git a/packages/ra-core/src/controller/useListParams.ts b/packages/ra-core/src/controller/useListParams.ts index f1f57b7dfff..dee43dae780 100644 --- a/packages/ra-core/src/controller/useListParams.ts +++ b/packages/ra-core/src/controller/useListParams.ts @@ -16,7 +16,7 @@ import { changeListParams, ListParams } from '../actions/listActions'; import { Sort, ReduxState } from '../types'; import removeEmpty from '../util/removeEmpty'; import removeKey from '../util/removeKey'; -import { useHistory } from 'react-router'; +import { useHistory } from 'react-router-dom'; interface ListParamsOptions { resource: string; diff --git a/packages/ra-core/src/sideEffect/useRedirect.ts b/packages/ra-core/src/sideEffect/useRedirect.ts index cecc173ff14..a2d1c828dd0 100644 --- a/packages/ra-core/src/sideEffect/useRedirect.ts +++ b/packages/ra-core/src/sideEffect/useRedirect.ts @@ -4,7 +4,7 @@ import { useDispatch } from 'react-redux'; import { Identifier, Record } from '../types'; import resolveRedirectTo from '../util/resolveRedirectTo'; import { refreshView } from '../actions/uiActions'; -import { useHistory } from 'react-router'; +import { useHistory } from 'react-router-dom'; type RedirectToFunction = ( basePath?: string, diff --git a/packages/ra-core/src/types.ts b/packages/ra-core/src/types.ts index 0a538fa37c1..2e528354926 100644 --- a/packages/ra-core/src/types.ts +++ b/packages/ra-core/src/types.ts @@ -1,5 +1,5 @@ import { ReactNode, ReactElement, ComponentType } from 'react'; -import { RouteProps, RouteComponentProps, match as Match } from 'react-router'; +import { RouteProps, RouteComponentProps, match as Match } from 'react-router-dom'; import { Location } from 'history'; import { WithPermissionsChildrenParams } from './auth/WithPermissions'; diff --git a/packages/ra-core/src/util/TestContext.tsx b/packages/ra-core/src/util/TestContext.tsx index cc218cb495c..57531a64ff4 100644 --- a/packages/ra-core/src/util/TestContext.tsx +++ b/packages/ra-core/src/util/TestContext.tsx @@ -3,7 +3,7 @@ import { createStore, Store } from 'redux'; import { Provider } from 'react-redux'; import merge from 'lodash/merge'; import { createMemoryHistory, History } from 'history'; -import { Router } from 'react-router'; +import { Router } from 'react-router-dom'; import createAdminStore from '../createAdminStore'; import { convertLegacyDataProvider } from '../dataProvider'; diff --git a/packages/ra-ui-materialui/src/auth/Login.tsx b/packages/ra-ui-materialui/src/auth/Login.tsx index 6c15ba07214..ffd96f3cffa 100644 --- a/packages/ra-ui-materialui/src/auth/Login.tsx +++ b/packages/ra-ui-materialui/src/auth/Login.tsx @@ -16,7 +16,7 @@ import { } from '@material-ui/core'; import { ThemeProvider } from '@material-ui/styles'; import LockIcon from '@material-ui/icons/Lock'; -import { StaticContext, useHistory } from 'react-router'; +import { StaticContext, useHistory } from 'react-router-dom'; import { useCheckAuth } from 'ra-core'; import defaultTheme from '../defaultTheme'; diff --git a/packages/ra-ui-materialui/src/detail/TabbedShowLayout.js b/packages/ra-ui-materialui/src/detail/TabbedShowLayout.js index 4caaa5062bf..ec858534dbb 100644 --- a/packages/ra-ui-materialui/src/detail/TabbedShowLayout.js +++ b/packages/ra-ui-materialui/src/detail/TabbedShowLayout.js @@ -5,7 +5,7 @@ import { Route } from 'react-router-dom'; import { makeStyles } from '@material-ui/core/styles'; import TabbedShowLayoutTabs, { getTabFullPath } from './TabbedShowLayoutTabs'; -import { useRouteMatch } from 'react-router'; +import { useRouteMatch } from 'react-router-dom'; const sanitizeRestProps = ({ children, diff --git a/packages/ra-ui-materialui/src/detail/TabbedShowLayoutTabs.js b/packages/ra-ui-materialui/src/detail/TabbedShowLayoutTabs.js index 8639209962d..0374a81f33a 100644 --- a/packages/ra-ui-materialui/src/detail/TabbedShowLayoutTabs.js +++ b/packages/ra-ui-materialui/src/detail/TabbedShowLayoutTabs.js @@ -1,7 +1,7 @@ import React, { Children, cloneElement, isValidElement } from 'react'; import PropTypes from 'prop-types'; import Tabs from '@material-ui/core/Tabs'; -import { useLocation, useRouteMatch } from 'react-router'; +import { useLocation, useRouteMatch } from 'react-router-dom'; export const getTabFullPath = (tab, index, baseUrl) => `${baseUrl}${ diff --git a/packages/ra-ui-materialui/src/field/ReferenceArrayField.spec.js b/packages/ra-ui-materialui/src/field/ReferenceArrayField.spec.js index 2960feafee8..cc23a86f9e5 100644 --- a/packages/ra-ui-materialui/src/field/ReferenceArrayField.spec.js +++ b/packages/ra-ui-materialui/src/field/ReferenceArrayField.spec.js @@ -1,7 +1,7 @@ import React from 'react'; import expect from 'expect'; import { render, cleanup } from '@testing-library/react'; -import { MemoryRouter } from 'react-router'; +import { MemoryRouter } from 'react-router-dom'; import { ReferenceArrayFieldView } from './ReferenceArrayField'; import TextField from './TextField'; diff --git a/packages/ra-ui-materialui/src/field/ReferenceField.spec.js b/packages/ra-ui-materialui/src/field/ReferenceField.spec.js index 3950b7b5ddb..64cefc9f0a8 100644 --- a/packages/ra-ui-materialui/src/field/ReferenceField.spec.js +++ b/packages/ra-ui-materialui/src/field/ReferenceField.spec.js @@ -1,7 +1,7 @@ import React from 'react'; import expect from 'expect'; import { render, cleanup } from '@testing-library/react'; -import { MemoryRouter } from 'react-router'; +import { MemoryRouter } from 'react-router-dom'; import { renderWithRedux, DataProviderContext } from 'ra-core'; import ReferenceField, { ReferenceFieldView } from './ReferenceField'; diff --git a/packages/ra-ui-materialui/src/form/TabbedForm.js b/packages/ra-ui-materialui/src/form/TabbedForm.js index 3663582b4d8..1381733ad3b 100644 --- a/packages/ra-ui-materialui/src/form/TabbedForm.js +++ b/packages/ra-ui-materialui/src/form/TabbedForm.js @@ -16,7 +16,7 @@ import get from 'lodash/get'; import getFormInitialValues from './getFormInitialValues'; import Toolbar from './Toolbar'; import TabbedFormTabs, { getTabFullPath } from './TabbedFormTabs'; -import { useRouteMatch, useLocation } from 'react-router'; +import { useRouteMatch, useLocation } from 'react-router-dom'; const useStyles = makeStyles(theme => ({ errorTabButton: { color: theme.palette.error.main }, diff --git a/packages/ra-ui-materialui/src/form/TabbedForm.spec.js b/packages/ra-ui-materialui/src/form/TabbedForm.spec.js index 5dfb6d98c47..e5b45e41eed 100644 --- a/packages/ra-ui-materialui/src/form/TabbedForm.spec.js +++ b/packages/ra-ui-materialui/src/form/TabbedForm.spec.js @@ -1,6 +1,6 @@ import { cleanup } from '@testing-library/react'; import React, { createElement } from 'react'; -import { MemoryRouter } from 'react-router'; +import { MemoryRouter } from 'react-router-dom'; import { renderWithRedux } from 'ra-core'; import TabbedForm, { findTabsWithErrors } from './TabbedForm'; diff --git a/packages/ra-ui-materialui/src/form/TabbedFormTabs.js b/packages/ra-ui-materialui/src/form/TabbedFormTabs.js index c1b8b7b5053..02783318301 100644 --- a/packages/ra-ui-materialui/src/form/TabbedFormTabs.js +++ b/packages/ra-ui-materialui/src/form/TabbedFormTabs.js @@ -1,7 +1,7 @@ import React, { Children, cloneElement, isValidElement } from 'react'; import PropTypes from 'prop-types'; import Tabs from '@material-ui/core/Tabs'; -import { useLocation } from 'react-router'; +import { useLocation } from 'react-router-dom'; export const getTabFullPath = (tab, index, baseUrl) => `${baseUrl}${ diff --git a/packages/ra-ui-materialui/src/form/TabbedFormTabs.spec.js b/packages/ra-ui-materialui/src/form/TabbedFormTabs.spec.js index 6ea5dd2adf4..f9e1cc8d58c 100644 --- a/packages/ra-ui-materialui/src/form/TabbedFormTabs.spec.js +++ b/packages/ra-ui-materialui/src/form/TabbedFormTabs.spec.js @@ -3,7 +3,7 @@ import { render, cleanup } from '@testing-library/react'; import TabbedFormTabs from './TabbedFormTabs'; import FormTab from './FormTab'; -import { MemoryRouter } from 'react-router'; +import { MemoryRouter } from 'react-router-dom'; describe('', () => { afterEach(cleanup); diff --git a/packages/ra-ui-materialui/src/layout/Layout.js b/packages/ra-ui-materialui/src/layout/Layout.js index 93ca11edd22..0afeb1943e5 100644 --- a/packages/ra-ui-materialui/src/layout/Layout.js +++ b/packages/ra-ui-materialui/src/layout/Layout.js @@ -2,7 +2,7 @@ import React, { Component, createElement, useEffect, useRef } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import classnames from 'classnames'; -import { withRouter } from 'react-router'; +import { withRouter } from 'react-router-dom'; import { createMuiTheme, withStyles, diff --git a/packages/ra-ui-materialui/src/list/DatagridRow.js b/packages/ra-ui-materialui/src/list/DatagridRow.js index 283694ebf55..4153632b972 100644 --- a/packages/ra-ui-materialui/src/list/DatagridRow.js +++ b/packages/ra-ui-materialui/src/list/DatagridRow.js @@ -16,7 +16,7 @@ import { linkToRecord } from 'ra-core'; import DatagridCell from './DatagridCell'; import ExpandRowButton from './ExpandRowButton'; -import { useHistory } from 'react-router'; +import { useHistory } from 'react-router-dom'; const computeNbColumns = (expand, children, hasBulkActions) => expand diff --git a/packages/ra-ui-materialui/src/list/DatagridRow.spec.js b/packages/ra-ui-materialui/src/list/DatagridRow.spec.js index 76db50db86f..7ef7a602f4c 100644 --- a/packages/ra-ui-materialui/src/list/DatagridRow.spec.js +++ b/packages/ra-ui-materialui/src/list/DatagridRow.spec.js @@ -5,7 +5,7 @@ import { renderWithRedux, linkToRecord } from 'ra-core'; import DatagridRow from './DatagridRow'; import { createMemoryHistory } from 'history'; -import { Router } from 'react-router'; +import { Router } from 'react-router-dom'; const TitleField = ({ record }) => {record.title}; const ExpandPanel = () => expanded; diff --git a/packages/ra-ui-materialui/src/list/List.spec.js b/packages/ra-ui-materialui/src/list/List.spec.js index 5e00f8e7eea..aa17dde471f 100644 --- a/packages/ra-ui-materialui/src/list/List.spec.js +++ b/packages/ra-ui-materialui/src/list/List.spec.js @@ -4,7 +4,7 @@ import { cleanup } from '@testing-library/react'; import { renderWithRedux } from 'ra-core'; import { ThemeProvider } from '@material-ui/styles'; import { createMuiTheme } from '@material-ui/core/styles'; -import { MemoryRouter } from 'react-router'; +import { MemoryRouter } from 'react-router-dom'; import defaultTheme from '../defaultTheme.ts'; import List, { ListView } from './List'; From 8760933c4068db29204aa48e8bbe3aeaa70cfa9c Mon Sep 17 00:00:00 2001 From: Tom Clark <> Date: Wed, 16 Oct 2019 10:31:40 +0100 Subject: [PATCH 4/6] Fix - staticContext isn't a part of the publis API so has to be imported direct from react-router --- packages/ra-ui-materialui/src/auth/Login.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/ra-ui-materialui/src/auth/Login.tsx b/packages/ra-ui-materialui/src/auth/Login.tsx index ffd96f3cffa..3738b08d833 100644 --- a/packages/ra-ui-materialui/src/auth/Login.tsx +++ b/packages/ra-ui-materialui/src/auth/Login.tsx @@ -16,7 +16,8 @@ import { } from '@material-ui/core'; import { ThemeProvider } from '@material-ui/styles'; import LockIcon from '@material-ui/icons/Lock'; -import { StaticContext, useHistory } from 'react-router-dom'; +import { StaticContext } from 'react-router'; +import { useHistory } from 'react-router-dom'; import { useCheckAuth } from 'ra-core'; import defaultTheme from '../defaultTheme'; From aa1eeb546e8cd4d658812fdabd29f7b5fa2da02d Mon Sep 17 00:00:00 2001 From: Tom Clark <> Date: Wed, 16 Oct 2019 10:54:21 +0100 Subject: [PATCH 5/6] Fixed style of imports to prettier standard. --- packages/ra-core/src/types.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/ra-core/src/types.ts b/packages/ra-core/src/types.ts index 2e528354926..b5d21059700 100644 --- a/packages/ra-core/src/types.ts +++ b/packages/ra-core/src/types.ts @@ -1,5 +1,9 @@ import { ReactNode, ReactElement, ComponentType } from 'react'; -import { RouteProps, RouteComponentProps, match as Match } from 'react-router-dom'; +import { + RouteProps, + RouteComponentProps, + match as Match +} from 'react-router-dom'; import { Location } from 'history'; import { WithPermissionsChildrenParams } from './auth/WithPermissions'; From 9b32a6b2af350c106419eb5542c53b6ee9e15a11 Mon Sep 17 00:00:00 2001 From: Tom Clark <> Date: Wed, 16 Oct 2019 11:15:10 +0100 Subject: [PATCH 6/6] Fixed style of imports to prettier standard. --- packages/ra-core/src/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ra-core/src/types.ts b/packages/ra-core/src/types.ts index b5d21059700..6faa74e21c4 100644 --- a/packages/ra-core/src/types.ts +++ b/packages/ra-core/src/types.ts @@ -2,7 +2,7 @@ import { ReactNode, ReactElement, ComponentType } from 'react'; import { RouteProps, RouteComponentProps, - match as Match + match as Match, } from 'react-router-dom'; import { Location } from 'history';