aboutsummaryrefslogtreecommitdiffstats
path: root/src/hooks/useLoginState.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/hooks/useLoginState.js')
-rw-r--r--src/hooks/useLoginState.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/hooks/useLoginState.js b/src/hooks/useLoginState.js
new file mode 100644
index 0000000..b7c7221
--- /dev/null
+++ b/src/hooks/useLoginState.js
@@ -0,0 +1,33 @@
+import {useState} from 'react';
+
+export default function useLoginState() {
+ const [userInfo, setUserInfoState] = useState(
+ localStorage.userInfo ?
+ JSON.parse(localStorage.userInfo) :
+ {}
+ );
+
+ function setUserInfo(userInfo) {
+ setUserInfoState(userInfo);
+ localStorage.userInfo = JSON.stringify(userInfo || {});
+ }
+
+ async function login(username, password) {
+ console.log(`logging in: ${username}, ${password}`);
+ // const userInfo = await api.login()
+ const userInfo = {
+ username
+ };
+ console.log('Login success');
+ setUserInfo(userInfo);
+ return userInfo;
+ }
+
+ function logout() {
+ setUserInfo({});
+ }
+
+ const isLoggedIn = !!userInfo?.username;
+
+ return {userInfo, isLoggedIn, login, logout};
+}