diff --git a/srcs/requirements/svelte/api_front/old_unused/primaryRoutes.svelte b/srcs/requirements/svelte/api_front/old_unused/primaryRoutes.svelte new file mode 100644 index 00000000..4c254fec --- /dev/null +++ b/srcs/requirements/svelte/api_front/old_unused/primaryRoutes.svelte @@ -0,0 +1,177 @@ + \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/App.svelte b/srcs/requirements/svelte/api_front/src/App.svelte index bb5ca6eb..7a383eb1 100644 --- a/srcs/requirements/svelte/api_front/src/App.svelte +++ b/srcs/requirements/svelte/api_front/src/App.svelte @@ -3,6 +3,7 @@ // may not need {link} here import Router, { link, replace } from "svelte-spa-router"; import { primaryRoutes } from "./routes/primaryRoutes.js"; + // import primaryRoutes from "./routes/primaryRoutes.svelte"; const conditionsFailed = (event) => { console.error('conditionsFailed event', event.detail); diff --git a/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte b/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte index d6901b2b..f50bb74a 100644 --- a/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte @@ -3,6 +3,7 @@ import { push } from "svelte-spa-router"; import { onMount } from 'svelte'; import { userStore, userLogout } from '../stores/loginStatusStore.js'; + import { get } from "svelte/store"; onMount(async () => { @@ -15,9 +16,16 @@ // .catch( userLogout(); ) // yea ok i don't know how to use catch... - // userStore.set(user); - // console.log('user in userStore'); - // console.log($userStore); + // Testing Svelet get(store) + + // let tmp = get(userStore); + // console.log('in SplashPage get(store)') + // console.log(tmp) + + + // userStore.set(user); + // console.log('user in userStore'); + // console.log($userStore); // console.log('now user in the local var'); // console.log(user); // if (user && user.statusCode && user.statusCode === 403) { @@ -44,7 +52,8 @@ await fetch('http://transcendance:8080/api/v2/user') .then((resp) => resp.json()) - .then((data) => void userStore.set(data)); + .then((data) => userStore.set(data)); + // .then((data) => void userStore.set(data)); // decide if do this here on in backend // push('/profile'); diff --git a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte index 124a32c0..3e3de3af 100644 --- a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte @@ -30,8 +30,8 @@ set.tfa = user.isEnabledTwoFactorAuth; // tmp - console.log('this is what is in the avatar before fetch') - console.log(avatar) + // console.log('this is what is in the avatar before fetch') + // console.log(avatar) await fetch("http://transcendance:8080/api/v2/user/avatar", {method: "GET"}) .then(response => {return response.blob()}) @@ -44,10 +44,10 @@ // .then(() => errors.avatar = '' ) // unnecessary i think cuz in on mount... // tmp - console.log('this is what is in the avatar') - console.log(avatar) - console.log('this is what is in the NEW Avatar') - console.log(newAvatar) + // console.log('this is what is in the avatar') + // console.log(avatar) + // console.log('this is what is in the NEW Avatar') + // console.log(newAvatar) }) const settingsHandler = async() => { @@ -55,7 +55,7 @@ // I don't really care which i use at this point... // if (set.username === nameTmp) { - if (set.username === user.username || set.username.trim() === '') { + if (set.username === user.username || (set.username.trim() === '' && set.username !== '')) { errors.username = 'Invalid new username'; valid = false; } else { @@ -90,7 +90,7 @@ } const data = new FormData(); data.append("file", newAvatar[0]); - + // tmp console.log(data); @@ -132,13 +132,6 @@ - {#if avatar !== undefined} your avatar {/if} diff --git a/srcs/requirements/svelte/api_front/src/pieces/Header.svelte b/srcs/requirements/svelte/api_front/src/pieces/Header.svelte index 89346a0d..c022852a 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/Header.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/Header.svelte @@ -34,6 +34,9 @@ + + + diff --git a/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js b/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js index aba904fd..77651f68 100644 --- a/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js +++ b/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js @@ -3,10 +3,8 @@ import ProfilePage from "../pages/profile/ProfilePage.svelte"; import SplashPage from "../pages/SplashPage.svelte"; import TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte'; import UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte'; -import { loginStatus } from "../stores/loginStatusStore"; import { wrap } from 'svelte-spa-router/wrap' import { get } from 'svelte/store'; - import TestPage from '../pages/TmpTestPage.svelte'; import { userStore, userLogout } from "../stores/loginStatusStore"; @@ -93,17 +91,57 @@ export const primaryRoutes = { component: TestPage, conditions: [ (detail) => { - const user = get(userStore); - // console.log(fortyTwo); - // console.log(tfa); + const user = get(userStore); // seems like get(store) is not an option + // // const user = userStore; + // // console.log(fortyTwo); + // // console.log(tfa); + // console.log('in /test what is in user') + // console.log(user) + + // you moron $userStore is a Svelte Abreviation, this is .JS, duh + // let user = $userStore; + // let user; + // const unsub = userStore.subscribe(value => { + // console.log(value); + // user = value; + // }); + console.log('in /test what is in userStore directly') + console.log(user) + // return true; - if (user) + // obvi this doesn't work cuz skips to true after no user... + // you gotta make the condition the true and the everything else false + // if (user && user.statusCode && user.statusCode === 403) + // if (user && user.username) { + if (user !== null) { + unsub(); return true; - else + } else { + unsub(); return false; + } } ] }), + // '/test': wrap({ + // component: TestPage, + // conditions: [ + // async(detail) => { + // // THIS SHIT TOTALLY WORKS + // // Yea in the end this might be the best thing, like also from a Security point of view + // const user = await fetch('http://transcendance:8080/api/v2/user') + // .then((resp) => resp.json()) + + // console.log('in /test what is in user') + // console.log(user) + + // if (user && user.username) + // return true; + // else + // return false; + // } + // ] + // }), '/2fa': TwoFactorAuthentication, "/profile": ProfilePage, "/profile/*": ProfilePage, diff --git a/srcs/requirements/svelte/api_front/src/routes/profileRoutes.js b/srcs/requirements/svelte/api_front/src/routes/profileRoutes.js index 7a70f0ff..6de8ea41 100644 --- a/srcs/requirements/svelte/api_front/src/routes/profileRoutes.js +++ b/srcs/requirements/svelte/api_front/src/routes/profileRoutes.js @@ -2,7 +2,6 @@ import NotFound from "../pages/NotFound.svelte"; import ProfileDisplay from '../pages/profile/ProfileDisplay.svelte'; import ProfileSettings from '../pages/profile/ProfileSettings.svelte'; -import { loginStatus } from "../stores/loginStatusStore"; import { wrap } from 'svelte-spa-router/wrap' // establishing the prefix here very clearly so we can have a coherent repeatable structure diff --git a/srcs/requirements/svelte/api_front/src/stores/loginStatusStore.js b/srcs/requirements/svelte/api_front/src/stores/loginStatusStore.js index 4ef25d24..91b928c1 100644 --- a/srcs/requirements/svelte/api_front/src/stores/loginStatusStore.js +++ b/srcs/requirements/svelte/api_front/src/stores/loginStatusStore.js @@ -8,11 +8,17 @@ let _user = localStorage.getItem('42User'); // turns out a simple store is actually the easiest :) export const userStore = writable(_user ? JSON.parse(_user) : null); // we start with no user, but go get one if one exists +// export const userStore = writable(null); // ok so this will happen no matter what, basically we are telling it what to do if the store containing the user changes userStore.subscribe((value) => { - if (value) localStorage.setItem('42User', JSON.stringify(value)); - else localStorage.removeItem('42User'); // for logout + if (value) + localStorage.setItem('42User', JSON.stringify(value)); + else + localStorage.removeItem('42User'); // for logout }); export const userLogout = () => userStore.set(null); + + +// export const tmpStore = userStore \ No newline at end of file