aboutsummaryrefslogtreecommitdiffstats
path: root/src/hooks/useLoginState.js
diff options
context:
space:
mode:
authordan <[email protected]>2023-08-28 10:55:50 -0400
committerdan <[email protected]>2023-08-28 10:55:50 -0400
commit7c9345f41d9c86142019cce05ca0495408b01730 (patch)
tree45da541a80047da04191c48accee490447f8a234 /src/hooks/useLoginState.js
parentf8cf6c21d238fea96192ad3f418ab7489092355f (diff)
downloaddraggable-form-demo-7c9345f41d9c86142019cce05ca0495408b01730.tar.gz
draggable-form-demo-7c9345f41d9c86142019cce05ca0495408b01730.tar.bz2
draggable-form-demo-7c9345f41d9c86142019cce05ca0495408b01730.zip
feat: skeleton of app
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};
+}