Skip to content

Commit ad5d43a

Browse files
fix(deps): update dependency react-router-dom to v7 (#3194)
* fix(deps): update dependency react-router-dom to v7 * Remove future flag post-upgrade * Fix breaking changes * Use react-router instead of react-router-dom * Fix format * Fix test setup * Update test snapshots * Fix missed dependency substitution * Fix old test API --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Richard Dominick <34370238+RichDom2185@users.noreply.github.com>
1 parent d8013a2 commit ad5d43a

File tree

34 files changed

+106
-92
lines changed

34 files changed

+106
-92
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
"react-papaparse": "^4.0.2",
8888
"react-qr-reader": "^3.0.0-beta-1",
8989
"react-redux": "^8.1.1",
90-
"react-router-dom": "^6.14.1",
90+
"react-router": "^7.6.2",
9191
"react-select": "^5.7.3",
9292
"react-simple-keyboard": "^3.6.27",
9393
"react-sortable-hoc": "^2.0.0",

src/commons/ReactRouterPrompt.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
/**
22
* Intermediate implementation of deprecated <Prompt /> component
3-
* from react-router-dom's v5 to v6 upgrade.
3+
* from react-router's v5 to v6 upgrade.
44
*
5-
* react-router-dom plans to bring <Prompt /> back in the future. Until then,
5+
* react-router plans to bring <Prompt /> back in the future. Until then,
66
* we can use this suggested implementation.
77
*
88
* See: https://github.com/remix-run/react-router/issues/8139#issuecomment-1382428200
99
*/
1010
import React from 'react';
11-
import { useBeforeUnload, useBlocker } from 'react-router-dom';
11+
import { useBeforeUnload, useBlocker } from 'react-router';
1212

1313
// You can abstract `useBlocker` to use the browser's `window.confirm` dialog to
1414
// determine whether or not the user should navigate within the current origin.

src/commons/application/Application.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import { useDispatch } from 'react-redux';
3-
import { Outlet } from 'react-router-dom';
3+
import { Outlet } from 'react-router';
44
import Messages, {
55
MessageType,
66
MessageTypeNames,

src/commons/application/ApplicationWrapper.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import { IconNames } from '@blueprintjs/icons';
33
import classNames from 'classnames';
44
import { useEffect, useMemo, useState } from 'react';
55
import { useDispatch } from 'react-redux';
6-
import { RouterProvider } from 'react-router';
7-
import { createBrowserRouter } from 'react-router-dom';
6+
import { createBrowserRouter, RouterProvider } from 'react-router';
87
import { getAcademyRoutes } from 'src/pages/academy/academyRoutes';
98

109
import { getFullAcademyRouterConfig, playgroundOnlyRouterConfig } from '../../routes/routerConfig';
@@ -38,9 +37,7 @@ const ApplicationWrapper: React.FC = () => {
3837
? playgroundOnlyRouterConfig
3938
: getFullAcademyRouterConfig({ name, isLoggedIn, courseId, academyRoutes });
4039

41-
const r = createBrowserRouter(routerConfig, {
42-
future: { v7_relativeSplatPath: true }
43-
});
40+
const r = createBrowserRouter(routerConfig);
4441
dispatch(updateReactRouter(r));
4542

4643
return r;

src/commons/application/actions/CommonsActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Router } from '@remix-run/router';
1+
import { Router } from 'src/commons/application/types/CommonsTypes';
22
import { createActions } from 'src/commons/redux/utils';
33

44
const CommonsActions = createActions('commons', {
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
import { Router } from '@remix-run/router';
1+
import type { createBrowserRouter } from 'react-router';
22

3+
export type Router = ReturnType<typeof createBrowserRouter>;
34
export type RouterState = Router | null;

src/commons/assessment/Assessment.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ import classNames from 'classnames';
2222
import { sortBy } from 'lodash';
2323
import React, { useMemo, useState } from 'react';
2424
import { useDispatch } from 'react-redux';
25-
import { Navigate, useLoaderData, useParams } from 'react-router';
26-
import { NavLink } from 'react-router-dom';
25+
import { Navigate, NavLink, useLoaderData, useParams } from 'react-router';
2726
import { numberRegExp } from 'src/features/academy/AcademyTypes';
2827
import classes from 'src/styles/Academy.module.scss';
2928

src/commons/assessment/__tests__/__snapshots__/Assessment.tsx.snap

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,7 @@ exports[`Assessment page does not show attempt Button for upcoming assessments f
493493
>
494494
<a
495495
className=""
496+
data-discover="true"
496497
href="/courses/undefined/missions/3/0"
497498
onClick={[Function]}
498499
>
@@ -715,6 +716,7 @@ exports[`Assessment page does not show attempt Button for upcoming assessments f
715716
>
716717
<a
717718
className=""
719+
data-discover="true"
718720
href="/courses/undefined/missions/2/0"
719721
onClick={[Function]}
720722
>
@@ -1090,6 +1092,7 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = `
10901092
>
10911093
<a
10921094
className=""
1095+
data-discover="true"
10931096
href="/courses/undefined/missions/1/0"
10941097
onClick={[Function]}
10951098
>
@@ -1354,6 +1357,7 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = `
13541357
>
13551358
<a
13561359
className=""
1360+
data-discover="true"
13571361
href="/courses/undefined/missions/3/0"
13581362
onClick={[Function]}
13591363
>
@@ -1576,6 +1580,7 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = `
15761580
>
15771581
<a
15781582
className=""
1583+
data-discover="true"
15791584
href="/courses/undefined/missions/2/0"
15801585
onClick={[Function]}
15811586
>

src/commons/dropdown/DropdownSettings.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
} from '@blueprintjs/core';
1111
import { IconNames } from '@blueprintjs/icons';
1212
import React, { useContext } from 'react';
13-
import { useNavigate } from 'react-router-dom';
13+
import { useNavigate } from 'react-router';
1414

1515
import { EditorBinding, WorkspaceSettingsContext } from '../WorkspaceSettingsContext';
1616
import LocaleSelector from './LocaleSelector';

src/commons/editingOverviewCard/EditingOverviewCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
import { IconNames } from '@blueprintjs/icons';
1717
import { ItemRenderer, Select } from '@blueprintjs/select';
1818
import React, { useState } from 'react';
19-
import { NavLink } from 'react-router-dom';
19+
import { NavLink } from 'react-router';
2020
import Textarea from 'react-textarea-autosize';
2121

2222
import defaultCoverImage from '../../assets/default_cover_image.jpg';

0 commit comments

Comments
 (0)