diff --git a/client/.env.production b/client/.env.production
index 7a11848c0..25849c7b9 100644
--- a/client/.env.production
+++ b/client/.env.production
@@ -1,3 +1,4 @@
VITE_APP_API_BASE_URL=UPTIME_APP_API_BASE_URL
+VITE_APP_API_V2_BASE_URL=UPTIME_APP_API_V2_BASE_URL
VITE_APP_CLIENT_HOST=UPTIME_APP_CLIENT_HOST
VITE_APP_LOG_LEVEL=UPTIME_APP_LOG_LEVEL
\ No newline at end of file
diff --git a/client/package-lock.json b/client/package-lock.json
index 7d6350f45..7cf0e8631 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -26,6 +26,7 @@
"i18next": "25.4.2",
"joi": "17.13.3",
"mui-color-input": "^6.0.0",
+ "pretty-ms": "9.3.0",
"react": "18.3.1",
"react-dom": "^18.2.0",
"react-hook-form": "7.63.0",
@@ -5184,6 +5185,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/parse-ms": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
+ "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -5311,6 +5324,21 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
+ "node_modules/pretty-ms": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz",
+ "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==",
+ "license": "MIT",
+ "dependencies": {
+ "parse-ms": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
diff --git a/client/package.json b/client/package.json
index 6d4858027..376671942 100644
--- a/client/package.json
+++ b/client/package.json
@@ -31,6 +31,7 @@
"i18next": "25.4.2",
"joi": "17.13.3",
"mui-color-input": "^6.0.0",
+ "pretty-ms": "9.3.0",
"react": "18.3.1",
"react-dom": "^18.2.0",
"react-hook-form": "7.63.0",
@@ -46,14 +47,6 @@
"vite-plugin-svgr": "^4.2.0",
"zod": "4.1.11"
},
- "unusedDepencies": {
- "@solana/wallet-adapter-base": "0.9.25",
- "@solana/wallet-adapter-material-ui": "0.16.35",
- "@solana/wallet-adapter-react": "0.15.37",
- "@solana/wallet-adapter-react-ui": "0.9.37",
- "@solana/wallet-adapter-wallets": "0.19.34",
- "@solana/web3.js": "1.98.0"
- },
"devDependencies": {
"@types/node": "24.5.2",
"@types/react": "^18.2.66",
diff --git a/client/src/App.jsx b/client/src/App.jsx
index 04f0d5b65..d21850ebb 100644
--- a/client/src/App.jsx
+++ b/client/src/App.jsx
@@ -9,7 +9,6 @@ import { CssBaseline, GlobalStyles } from "@mui/material";
import { logger } from "./Utils/Logger"; // Import the logger
import { networkService } from "./main";
import { Routes } from "./Routes";
-import WalletProvider from "./Components/WalletProvider";
import AppLayout from "@/Components/v1/Layouts/AppLayout";
function App() {
@@ -24,16 +23,12 @@ function App() {
}, []);
return (
- /* Extract Themeprovider, baseline and global styles to Styles */
-
-
-
-
-
-
-
-
+
+
+
+
+
);
}
diff --git a/client/src/Components/v2/ActionsMenu/index.tsx b/client/src/Components/v2/ActionsMenu/index.tsx
index 5b606e5b0..a143be3f5 100644
--- a/client/src/Components/v2/ActionsMenu/index.tsx
+++ b/client/src/Components/v2/ActionsMenu/index.tsx
@@ -15,11 +15,13 @@ export const ActionsMenu = ({ items }: { items: ActionMenuItem[] }) => {
const [anchorEl, setAnchorEl] = useState(null);
const open = Boolean(anchorEl);
- const handleClick = (event: React.MouseEvent) => {
- setAnchorEl(event.currentTarget);
+ const handleClick = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ setAnchorEl(e.currentTarget);
};
- const handleClose = () => {
+ const handleClose = (e: React.MouseEvent) => {
+ e.stopPropagation();
setAnchorEl(null);
};
@@ -36,8 +38,9 @@ export const ActionsMenu = ({ items }: { items: ActionMenuItem[] }) => {
{items.map((item) => (