diff --git a/src/App.js b/src/App.js
index e07cf1f..dec29f6 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,13 +1,16 @@
import Test from './components/Test';
+import AuthProvider from './config/authProvider';
import localizationInit from './config/localization';
localizationInit();
function App() {
return (
-
-
-
+
+
+
+
+
);
}
diff --git a/src/components/Test.js b/src/components/Test.js
index 3fbd94e..c87d1dd 100644
--- a/src/components/Test.js
+++ b/src/components/Test.js
@@ -1,11 +1,39 @@
import { useTranslation } from 'react-i18next';
+import { useNavigate } from 'react-router-dom';
+import { useAuth } from '../config/authProvider';
export default function Test() {
const { t } = useTranslation();
+ let auth = useAuth();
+ let navigate = useNavigate();
+
+ if (!auth.user) {
+ return (
+ <>
+ You are not logged in.
{' '}
+
+ >
+ );
+ }
+
return (
- <>
+
{t('app_title')}
{t('welcome_message')}
- >
+ Welcome {auth.user}!{' '}
+
+
);
}
diff --git a/src/config/authProvider.js b/src/config/authProvider.js
new file mode 100644
index 0000000..e1024ef
--- /dev/null
+++ b/src/config/authProvider.js
@@ -0,0 +1,28 @@
+import { createContext, useContext, useState } from 'react';
+import authService from '../services/auth.service';
+
+let AuthContext = createContext(null);
+
+export default function AuthProvider({ children }) {
+ let [user, setUser] = useState(authService.getCurrentUser());
+
+ let signin = async (loginData, callback) => {
+ const userData = await authService.login(loginData);
+ setUser(userData);
+ callback();
+ };
+
+ let signout = async (callback) => {
+ await authService.logout();
+ setUser(null);
+ callback();
+ };
+
+ let value = { user, signin, signout };
+
+ return {children};
+}
+
+export const useAuth = () => {
+ return useContext(AuthContext);
+};
diff --git a/src/constants/placeholder b/src/constants/placeholder
deleted file mode 100644
index e69de29..0000000
diff --git a/src/services/auth.service.js b/src/services/auth.service.js
new file mode 100644
index 0000000..62833a1
--- /dev/null
+++ b/src/services/auth.service.js
@@ -0,0 +1,42 @@
+// import axiosInstance from '../config/axios';
+// import urls from '../constants/urls';
+
+const authService = {
+ login(username) {
+ // return axiosInstance
+ // .post(urls.auth, {
+ // username,
+ // password,
+ // })
+ // .then((response) => {
+ // if (response.data.accessToken) {
+ localStorage.setItem('user', username);
+ // localStorage.setItem('user', JSON.stringify(response.data));
+ // localStorage.setItem('token', JSON.stringify(response.data.accessToken));
+ // }
+
+ // return response.data;
+ // });
+ return username;
+ },
+
+ logout() {
+ localStorage.removeItem('user');
+ localStorage.removeItem('token');
+ },
+
+ // register(username, email, password) {
+ // return axios.post(API_URL + 'signup', {
+ // username,
+ // email,
+ // password,
+ // });
+ // }
+
+ getCurrentUser() {
+ return localStorage.getItem('user');
+ // return JSON.parse(localStorage.getItem('user'));
+ },
+};
+
+export default authService;
diff --git a/src/services/placeholder b/src/services/placeholder
deleted file mode 100644
index e69de29..0000000