From 18a98e3ecb9ccb9798586ea94c11bee06f6881db Mon Sep 17 00:00:00 2001 From: DNLRQ <18170433@itculiacan.edu.mx> Date: Sat, 30 Nov 2024 18:51:39 -0700 Subject: [PATCH] fix in app.jsx for the routes depending on whether it is in the browser (BrowserRouter) or if it is in electron (HashRouter) so that there are no problems in the routes --- package-lock.json | 26 ++++++++++++++++++++++++++ package.json | 1 + src/App.jsx | 36 +++++++++++++++++++++++++++++++++--- 3 files changed, 60 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d3c051f..423c704 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "classnames": "^2.5.1", "dexie": "^3.2.4", "dexie-react-hooks": "^1.1.7", + "electron-is": "^3.0.0", "file-saver": "^2.0.5", "framer-motion": "^10.18.0", "html-to-image": "^1.11.11", @@ -5368,6 +5369,31 @@ "node": ">= 10.0.0" } }, + "node_modules/electron-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/electron-is/-/electron-is-3.0.0.tgz", + "integrity": "sha512-aQv1y3WrDZ+mtO8acbhiiip/8fa0Et7cvZyvlqJm2H7fih4hiJWEFRyYxzLgDG2kmiLdF8l3y5tbek5JFOPQkQ==", + "license": "MIT", + "dependencies": { + "electron-is-dev": "^0.3.0", + "semver": "^5.5.0" + } + }, + "node_modules/electron-is-dev": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz", + "integrity": "sha512-jLttuuq8QK67n3mXmIe9pkrO7IH3LGIk12xJkhTmc852U2sCJaRAOpRGPSh+1Xnzck5v9escd9YXzuze9nGejg==", + "license": "MIT" + }, + "node_modules/electron-is/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/electron-publish": { "version": "25.1.7", "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz", diff --git a/package.json b/package.json index 8f1b7c7..df2832b 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "classnames": "^2.5.1", "dexie": "^3.2.4", "dexie-react-hooks": "^1.1.7", + "electron-is": "^3.0.0", "file-saver": "^2.0.5", "framer-motion": "^10.18.0", "html-to-image": "^1.11.11", diff --git a/src/App.jsx b/src/App.jsx index 080a4b7..ae2614e 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,4 +1,4 @@ -import { HashRouter, Routes, Route, useLocation } from "react-router-dom"; +import { BrowserRouter, HashRouter, Routes, Route, useLocation } from "react-router-dom"; import { useLayoutEffect } from "react"; import Editor from "./pages/Editor"; import Survey from "./pages/Survey"; @@ -10,10 +10,40 @@ import SettingsContextProvider from "./context/SettingsContext"; import { useSettings } from "./hooks"; import NotFound from "./pages/NotFound"; +function isElectron() { + if ( + typeof window !== "undefined" && + typeof window.process === "object" && + window.process.type === "renderer" + ) { + return true; + } + + if ( + typeof process !== "undefined" && + typeof process.versions === "object" && + !!process.versions.electron + ) { + return true; + } + + if ( + typeof navigator === "object" && + typeof navigator.userAgent === "string" && + navigator.userAgent.indexOf("Electron") >= 0 + ) { + return true; + } + + return false; +} + +const Router = isElectron() ? HashRouter : BrowserRouter; + export default function App() { return ( - + } /> @@ -52,7 +82,7 @@ export default function App() { } /> } /> - + ); }