diff --git a/src/app.tsx b/src/app.tsx
index b510aae..8a3a52f 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -8,7 +8,7 @@ import { AppProvider, useAppContext } from "./providers/AuthProvider";
const HomePage: FunctionComponent = () => {
const { route } = useLocation();
const { isLoggedIn } = useAppContext();
- if (isLoggedIn) route("/profile/tasks", true);
+ if (isLoggedIn.value) route("/profile/tasks", true);
else route("/login", true);
return
Redirecting...
;
};
diff --git a/src/pages/login.tsx b/src/pages/login.tsx
index 0375a2d..697a1b3 100644
--- a/src/pages/login.tsx
+++ b/src/pages/login.tsx
@@ -22,6 +22,7 @@ const LoginPage: FunctionComponent = () => {
color="secondary"
onClick={() => {
isLoggedIn.value = true;
+ localStorage.setItem("loggedIn", "true");
route("/profile/tasks", true);
}}
>
diff --git a/src/pages/profile_settings.tsx b/src/pages/profile_settings.tsx
index e756fd1..ba15871 100644
--- a/src/pages/profile_settings.tsx
+++ b/src/pages/profile_settings.tsx
@@ -29,6 +29,7 @@ const ProfileSettings: FunctionComponent = () => {
color="secondary"
onClick={() => {
isLoggedIn.value = false;
+ localStorage.setItem("loggedIn", "false");
route("/login", true);
}}
>
diff --git a/src/providers/AuthProvider.tsx b/src/providers/AuthProvider.tsx
index 60a2d18..f001a9a 100644
--- a/src/providers/AuthProvider.tsx
+++ b/src/providers/AuthProvider.tsx
@@ -1,3 +1,4 @@
+import { stringToBoolean } from "@/utils/converter";
import { signal, Signal } from "@preact/signals";
import { createContext, JSX } from "preact";
import { useContext } from "preact/hooks";
@@ -5,14 +6,15 @@ import { useContext } from "preact/hooks";
interface AppContextValue {
isLoggedIn: Signal;
}
+const ininitialValue = stringToBoolean(localStorage.getItem("loggedIn"));
const AppContext = createContext({
- isLoggedIn: signal(false),
+ isLoggedIn: signal(ininitialValue),
});
const AppProvider = ({ children }: { children: JSX.Element }) => {
const value: AppContextValue = {
- isLoggedIn: signal(false),
+ isLoggedIn: signal(ininitialValue),
};
return {children};
diff --git a/src/utils/converter.ts b/src/utils/converter.ts
new file mode 100644
index 0000000..0e9ea14
--- /dev/null
+++ b/src/utils/converter.ts
@@ -0,0 +1,5 @@
+export const stringToBoolean = (value: string | null): boolean => {
+ if (value === "true") return true;
+ if (value === "false") return false;
+ return false;
+};