diff --git a/web/package.json b/web/package.json
index cdba0b9..38fed85 100644
--- a/web/package.json
+++ b/web/package.json
@@ -35,11 +35,11 @@
"react-expanding-textarea": "^2.3.6",
"react-i18not": "^0.1.1",
"react-icons": "^4.3.1",
- "react-router-dom": "^6.3.0",
"sass": "^1.51.0",
"typesocket": "^1.0.2",
"uuid": "^9.0.0",
- "vite-plugin-info": "^0.4.1"
+ "vite-plugin-info": "^0.4.1",
+ "wouter": "^2.12.1"
},
"scripts": {
"start": "vite",
diff --git a/web/src/App.tsx b/web/src/App.tsx
index 9c657f6..492492e 100644
--- a/web/src/App.tsx
+++ b/web/src/App.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Routes, Route, BrowserRouter } from 'react-router-dom';
+import { Router, Route, Switch } from 'wouter';
import { useTranslation } from 'react-i18not';
import './App.scss';
@@ -19,20 +19,34 @@ export const App: React.FC = () => {
document.body.dir = dir;
return (
-
-
-
-
-
- } />
- } />
- } />
- } />
- } />
- } />
- } />
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
};
diff --git a/web/src/components/Footer.tsx b/web/src/components/Footer.tsx
index 0084ff7..186fbbe 100644
--- a/web/src/components/Footer.tsx
+++ b/web/src/components/Footer.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import { useTranslation } from 'react-i18not';
-import { Link } from 'react-router-dom';
+import { Link } from 'wouter';
import { observer } from 'mobx-react-lite';
import clsx from 'clsx';
diff --git a/web/src/components/Header.tsx b/web/src/components/Header.tsx
index d280946..bf182f2 100644
--- a/web/src/components/Header.tsx
+++ b/web/src/components/Header.tsx
@@ -5,7 +5,7 @@ import {
IoInformationCircle,
IoLogoTwitter,
} from 'react-icons/io5/index.js';
-import { Link } from 'react-router-dom';
+import { Link } from 'wouter';
import { observer } from 'mobx-react-lite';
import styles from './Header.module.scss';
diff --git a/web/src/screens/About.tsx b/web/src/screens/About.tsx
index 5f22ad6..279f9e1 100644
--- a/web/src/screens/About.tsx
+++ b/web/src/screens/About.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Link } from 'react-router-dom';
+import { Link } from 'wouter';
import { TextSection } from '../components/TextSection.js';
diff --git a/web/src/screens/Abuse.tsx b/web/src/screens/Abuse.tsx
index bb7e127..5e8c58f 100644
--- a/web/src/screens/Abuse.tsx
+++ b/web/src/screens/Abuse.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Link } from 'react-router-dom';
+import { Link } from 'wouter';
import { observer } from 'mobx-react-lite';
import { TextSection } from '../components/TextSection.js';
diff --git a/web/src/screens/Home.tsx b/web/src/screens/Home.tsx
index 08c605a..8185e3b 100644
--- a/web/src/screens/Home.tsx
+++ b/web/src/screens/Home.tsx
@@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react';
-import { useParams } from 'react-router-dom';
+import { useParams } from 'wouter';
import { observer } from 'mobx-react-lite';
import { useTranslation } from 'react-i18not';
import clsx from 'clsx';
diff --git a/web/src/screens/Redirect.tsx b/web/src/screens/Redirect.tsx
index 17254d5..e13ed36 100644
--- a/web/src/screens/Redirect.tsx
+++ b/web/src/screens/Redirect.tsx
@@ -1,5 +1,5 @@
import React, { useEffect } from 'react';
-import { useNavigate } from 'react-router-dom';
+import { useLocation } from 'wouter';
import { useTranslation } from 'react-i18not';
import { observer } from 'mobx-react-lite';
@@ -14,7 +14,7 @@ export const Redirect: React.FC = observer(() => {
const suggestedNetworkName = applicationStore.suggestedNetworkName;
const { connected, clientId } = connection;
- const navigate = useNavigate();
+ const navigate = useLocation()[1];
useEffect(() => {
const currentNetworkName =
diff --git a/web/src/sections/Connect/index.tsx b/web/src/sections/Connect/index.tsx
index 02e1967..f2c2796 100644
--- a/web/src/sections/Connect/index.tsx
+++ b/web/src/sections/Connect/index.tsx
@@ -3,7 +3,7 @@ import clsx from 'clsx';
import { QRCodeSVG } from 'qrcode.react';
import { useTranslation } from 'react-i18not';
import { IoSend } from 'react-icons/io5/index.js';
-import { useLocation } from 'react-router-dom';
+import { useLocation } from 'wouter';
import { observer } from 'mobx-react-lite';
import styles from './index.module.scss';
@@ -16,10 +16,10 @@ import { LocalNetworks } from '../LocalNetworks/index.js';
export const ConnectSection: React.FC = observer(() => {
const { t } = useTranslation();
- const { pathname } = useLocation();
+ const [location] = useLocation();
// eslint-disable-next-line react-hooks/exhaustive-deps
- const href = useMemo(() => window.location.href, [pathname]);
+ const href = useMemo(() => window.location.href, [location]);
return (
<>
diff --git a/web/src/sections/LocalNetworks/index.tsx b/web/src/sections/LocalNetworks/index.tsx
index 7586789..19a31e4 100644
--- a/web/src/sections/LocalNetworks/index.tsx
+++ b/web/src/sections/LocalNetworks/index.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import clsx from 'clsx';
import { observer } from 'mobx-react-lite';
-import { Link } from 'react-router-dom';
+import { Link } from 'wouter';
import styles from './index.module.scss';
import { applicationStore, networkStore } from '../../stores/index.js';
diff --git a/yarn.lock b/yarn.lock
index 0609bda..830e89a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1581,11 +1581,6 @@
node-addon-api "^3.2.1"
node-gyp-build "^4.3.0"
-"@remix-run/router@1.8.0":
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc"
- integrity sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==
-
"@rushstack/eslint-patch@^1.1.0":
version "1.3.3"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz#16ab6c727d8c2020a5b6e4a176a243ecd88d8d69"
@@ -5056,21 +5051,6 @@ react-refresh@^0.14.0:
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==
-react-router-dom@^6.3.0:
- version "6.15.0"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.15.0.tgz#6da7db61e56797266fbbef0d5e324d6ac443ee40"
- integrity sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ==
- dependencies:
- "@remix-run/router" "1.8.0"
- react-router "6.15.0"
-
-react-router@6.15.0:
- version "6.15.0"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.15.0.tgz#bf2cb5a4a7ed57f074d4ea88db0d95033f39cac8"
- integrity sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg==
- dependencies:
- "@remix-run/router" "1.8.0"
-
react-with-forwarded-ref@^0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/react-with-forwarded-ref/-/react-with-forwarded-ref-0.3.5.tgz#7d0bae2a9996fc91493f40ab179b8c54d29cfab9"
@@ -5957,7 +5937,7 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
-use-sync-external-store@^1.2.0:
+use-sync-external-store@^1.0.0, use-sync-external-store@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
@@ -6118,6 +6098,13 @@ why-is-node-running@^2.2.2:
siginfo "^2.0.0"
stackback "0.0.2"
+wouter@^2.12.1:
+ version "2.12.1"
+ resolved "https://registry.yarnpkg.com/wouter/-/wouter-2.12.1.tgz#11d913324c6320b679873783acb15ea3523b8521"
+ integrity sha512-G7a6JMSLSNcu6o8gdOfIzqxuo8Qx1qs+9rpVnlurH69angsSFPZP5gESNuVNeJct/MGpQg191pDo4HUjTx7IIQ==
+ dependencies:
+ use-sync-external-store "^1.0.0"
+
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"