diff --git a/package-lock.json b/package-lock.json index ec48ed5..7f835cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@mui/icons-material": "^5.15.2", "@mui/material": "^5.15.2", "@types/node": "^20.10.6", + "@vercel/speed-insights": "^1.0.9", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.21.1", @@ -1945,6 +1946,40 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@vercel/speed-insights": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.0.9.tgz", + "integrity": "sha512-f+XFP0O+aZ4Olj9h+BitkB1b4NJQaxtyCb69wWuDxytJHY6Pa4QtZPdBUftHOcajUCHRVeq062fk3MKXKtjNVQ==", + "hasInstallScript": true, + "peerDependencies": { + "@sveltejs/kit": "^1 || ^2", + "next": ">= 13", + "react": "^18 || ^19", + "svelte": "^4", + "vue": "^3", + "vue-router": "^4" + }, + "peerDependenciesMeta": { + "@sveltejs/kit": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-router": { + "optional": true + } + } + }, "node_modules/@vitejs/plugin-react": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", @@ -4799,9 +4834,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -5701,13 +5736,13 @@ } }, "node_modules/vite": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", - "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.0.tgz", + "integrity": "sha512-STmSFzhY4ljuhz14bg9LkMTk3d98IO6DIArnTY6MeBwiD1Za2StcQtz7fzOUnRCqrHSD5+OS2reg4HOz1eoLnw==", "dev": true, "dependencies": { "esbuild": "^0.19.3", - "postcss": "^8.4.32", + "postcss": "^8.4.35", "rollup": "^4.2.0" }, "bin": { diff --git a/package.json b/package.json index 5638557..b6e359e 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@mui/icons-material": "^5.15.2", "@mui/material": "^5.15.2", "@types/node": "^20.10.6", + "@vercel/speed-insights": "^1.0.9", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.21.1", diff --git a/src/App.tsx b/src/App.tsx index 9690496..1e4ff40 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,6 @@ import { BrowserRouter } from "react-router-dom"; import { ThemeProvider, createTheme } from "@mui/material"; +import { SpeedInsights } from "@vercel/speed-insights/react"; import AppRoutes from "./routes/AppRoutes"; import "./App.css"; @@ -48,6 +49,7 @@ const theme = createTheme({ const App = () => ( + diff --git a/src/components/MailDialog/MailDialog.scss b/src/components/MailDialog/MailDialog.scss index 97d868c..e7b0b0e 100644 --- a/src/components/MailDialog/MailDialog.scss +++ b/src/components/MailDialog/MailDialog.scss @@ -37,6 +37,10 @@ padding: 0.5rem 1rem; border-radius: 14px; text-decoration: none; - background-color: #a2c5e4; + background-color: #a2aee4; + color: white; + &:hover { + color: black; + } } } diff --git a/src/constants/javascript.json b/src/constants/javascript.json index f479280..8b9dfc1 100644 --- a/src/constants/javascript.json +++ b/src/constants/javascript.json @@ -112,7 +112,7 @@ { "id": 11, "category": "JavaScript", - "description": "What is the role of 'localStorage' and'sessionStorage' in JavaScript? (Both are Web APIs)", + "description": "What is the difference between 'localStorage' and 'sessionStorage' in JavaScript?", "answer": "'localStorage' persists data even after the browser is closed, while 'sessionStorage' stores data for the duration of the page session.", "wrongAnswers": [ "'localStorage' and 'sessionStorage' are used for server-side storage, one for storing local variables and the other for the rest.", @@ -123,12 +123,12 @@ { "id": 12, "category": "JavaScript", - "description": "What are JavaScript promises?", - "answer": "Promises are objects used to handle asynchronous operations in JavaScript. They represent a future value or error that will be available at some point.", + "description": "What JavaScript promises used for?", + "answer": "Promises are used to handle asynchronous operations.", "wrongAnswers": [ "Promises are only used for synchronous operations.", - "Promises are not supported in JavaScript.", - "Promises can handle only a single asynchronous operation." + "Promises are used to handle both asynchronous and asynchronous operations.", + "Promises use to handle only a single asynchronous operation at a time." ] }, { @@ -137,9 +137,9 @@ "description": "What is the purpose of the 'map' method in JavaScript?", "answer": "The 'map' method creates a new array by applying a function to each element of an existing array.", "wrongAnswers": [ - "The 'map' method modifies the original array.", - "The 'map' method cannot iterate over arrays.", - "The 'map' method only works on strings." + "The 'map' method modifies the original array than returns a new copy of it.", + "The 'map' method adds a key value pair to the array.", + "The 'map' method only works on strings and functions." ] }, {