add login session
This commit is contained in:
parent
6ebe186370
commit
787dfca588
5 changed files with 92 additions and 9 deletions
63
package-lock.json
generated
63
package-lock.json
generated
|
|
@ -26,6 +26,7 @@
|
|||
"@babel/core": "^7.21.4",
|
||||
"@babel/preset-env": "^7.21.4",
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"@types/chrome": "^0.0.251",
|
||||
"babel-loader": "^9.1.2",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.7.3",
|
||||
|
|
@ -3634,6 +3635,16 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/chrome": {
|
||||
"version": "0.0.251",
|
||||
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.251.tgz",
|
||||
"integrity": "sha512-UF+yr0LEKWWGsKxQ5A3XOSF5SNoU1ctW3pXcWJPpT8OOUTEspYeaLU8spDKe+6xalXeMTS0TBrX1g0b6qlWmkw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/filesystem": "*",
|
||||
"@types/har-format": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/connect": {
|
||||
"version": "3.4.35",
|
||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
|
||||
|
|
@ -3695,6 +3706,21 @@
|
|||
"@types/range-parser": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/filesystem": {
|
||||
"version": "0.0.35",
|
||||
"resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.35.tgz",
|
||||
"integrity": "sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/filewriter": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/filewriter": {
|
||||
"version": "0.0.32",
|
||||
"resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.32.tgz",
|
||||
"integrity": "sha512-Kpi2GXQyYJdjL8mFclL1eDgihn1SIzorMZjD94kdPZh9E4VxGOeyjPxi5LpsM4Zku7P0reqegZTt2GxhmA9VBg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/graceful-fs": {
|
||||
"version": "4.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
|
||||
|
|
@ -3703,6 +3729,12 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/har-format": {
|
||||
"version": "1.2.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz",
|
||||
"integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/html-minifier-terser": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
|
||||
|
|
@ -19879,6 +19911,16 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/chrome": {
|
||||
"version": "0.0.251",
|
||||
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.251.tgz",
|
||||
"integrity": "sha512-UF+yr0LEKWWGsKxQ5A3XOSF5SNoU1ctW3pXcWJPpT8OOUTEspYeaLU8spDKe+6xalXeMTS0TBrX1g0b6qlWmkw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/filesystem": "*",
|
||||
"@types/har-format": "*"
|
||||
}
|
||||
},
|
||||
"@types/connect": {
|
||||
"version": "3.4.35",
|
||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
|
||||
|
|
@ -19940,6 +19982,21 @@
|
|||
"@types/range-parser": "*"
|
||||
}
|
||||
},
|
||||
"@types/filesystem": {
|
||||
"version": "0.0.35",
|
||||
"resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.35.tgz",
|
||||
"integrity": "sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/filewriter": "*"
|
||||
}
|
||||
},
|
||||
"@types/filewriter": {
|
||||
"version": "0.0.32",
|
||||
"resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.32.tgz",
|
||||
"integrity": "sha512-Kpi2GXQyYJdjL8mFclL1eDgihn1SIzorMZjD94kdPZh9E4VxGOeyjPxi5LpsM4Zku7P0reqegZTt2GxhmA9VBg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/graceful-fs": {
|
||||
"version": "4.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
|
||||
|
|
@ -19948,6 +20005,12 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/har-format": {
|
||||
"version": "1.2.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz",
|
||||
"integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/html-minifier-terser": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
"@babel/core": "^7.21.4",
|
||||
"@babel/preset-env": "^7.21.4",
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"@types/chrome": "^0.0.251",
|
||||
"babel-loader": "^9.1.2",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.7.3",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
/*global chrome*/
|
||||
import { useContext, useEffect, useState, useCallback } from "react";
|
||||
import { Router } from "react-chrome-extension-router";
|
||||
import AppPlug from "./components/AppPlug/AppPlug";
|
||||
|
|
@ -28,12 +29,19 @@ function App() {
|
|||
const [confirmationModalOpen, setConfirmationModalOpen] = useState(false);
|
||||
|
||||
const [incorrectPassword, setIncorrectPassword] = useState(false);
|
||||
const [loggedIn, setLoggedIn] = useState(getSessionLogIn());
|
||||
const [loggedIn, setLoggedIn] = useState(false);
|
||||
|
||||
// Flags of display
|
||||
// creatingPassword flag has an effect only in case of loggedIn flag is false.
|
||||
// creatingPassword flag means whether to show the password create screen or existing password enter screen.
|
||||
const creatingPassword = !passwordExists();
|
||||
|
||||
useEffect(() => {
|
||||
async function loadLogin() {
|
||||
setLoggedIn(await getSessionLogIn());
|
||||
}
|
||||
loadLogin();
|
||||
}, []);
|
||||
|
||||
const executeTransfer = useCallback(async () => {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
/*global chrome*/
|
||||
import Big from "big.js";
|
||||
import sha256 from "sha256";
|
||||
|
||||
|
|
@ -42,14 +43,11 @@ export const passwordExists = () => {
|
|||
return !!localStorage.getItem("hash");
|
||||
}
|
||||
|
||||
export const getSessionLogIn = () => {
|
||||
return !!sessionStorage.getItem("login");
|
||||
export const getSessionLogIn = async () => {
|
||||
// return !!localStorage.getItem("login");
|
||||
return !!(await fetchBackground({ method: "GET_LOGIN" })).login;
|
||||
}
|
||||
|
||||
export const setSessionLogIn = (login) => {
|
||||
if (login) {
|
||||
sessionStorage.setItem("login", true);
|
||||
} else {
|
||||
sessionStorage.removeItem("login");
|
||||
}
|
||||
export const setSessionLogIn = async (login) => {
|
||||
await fetchBackground({ method: "SET_LOGIN", login: !!login })
|
||||
}
|
||||
|
|
@ -15,6 +15,8 @@ chrome.runtime.onStartup.addListener(() => {
|
|||
|
||||
let pendingTx = null;
|
||||
|
||||
const userData = { login: false };
|
||||
|
||||
// eslint-disable-next-line no-undef
|
||||
chrome.storage.local.get("pendingTx", (result) => {
|
||||
if (result.pendingTx) {
|
||||
|
|
@ -148,6 +150,17 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
|||
sendResponse({ error: "No pending transaction" });
|
||||
}
|
||||
break;
|
||||
|
||||
case "SET_LOGIN": {
|
||||
userData.login = request.login;
|
||||
sendResponse({ success: true });
|
||||
break;
|
||||
}
|
||||
|
||||
case "GET_LOGIN": {
|
||||
sendResponse({ login: userData.login });
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
console.error("Unknown message method:", request.method);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue