Compare commits

..

5 Commits

Author SHA1 Message Date
2010cc3260
No longer showing logged out users the profile pic thingy
All checks were successful
continuous-integration/drone/push Build is passing
2021-08-21 08:38:01 +02:00
8c1a2d319b
Now ignoring status on logout 2021-08-21 08:36:38 +02:00
b57aa535de
Removed unused function 2021-08-21 08:35:18 +02:00
84ab757e11
More userstore fixes
ref #1
2021-08-21 08:34:54 +02:00
cd3508dcb6
Weired fucking fix for the userstore data not being instantly loaded....
ref #1
2021-08-21 08:34:33 +02:00
6 changed files with 57 additions and 31 deletions

View File

@ -18,6 +18,7 @@ export default class Apiclient {
} }
static async getUrls() { static async getUrls() {
console.log("APICALL")
return ( return (
await axios.get('https://kauft.es/api?showVisits=true', { await axios.get('https://kauft.es/api?showVisits=true', {
headers: { Authorization: `Bearer ${UserStore.state.token}` } headers: { Authorization: `Bearer ${UserStore.state.token}` }
@ -62,7 +63,9 @@ export default class Apiclient {
static async logout() { static async logout() {
return ( return (
await axios.post(`https://kauft.es/api/auth/logout`, {}, { await axios.post(`https://kauft.es/api/auth/logout`, {}, {
headers: { Authorization: `Bearer ${UserStore.state.token}` } headers: { Authorization: `Bearer ${UserStore.state.token}`,
validateStatus: null
}
}) })
).data; ).data;
} }

View File

@ -1,21 +1,10 @@
<script> <script>
import UserStore from '$lib/UserStore'; import UserStore from '$lib/UserStore';
import { onDestroy, onMount } from 'svelte'; import { onDestroy } from 'svelte';
import * as localForage from 'localforage';
import Apiclient from './Apiclient'; import Apiclient from './Apiclient';
$: logged_in = false; $: logged_in = false;
onMount(() => {
localForage.getItem('userdata', (err, value) => {
if (value) {
if (value.token) {
UserStore.login(value);
}
}
});
});
const unsubscribe = UserStore.subscribe((value) => { const unsubscribe = UserStore.subscribe((value) => {
logged_in = value.isLoggedIn; logged_in = value.isLoggedIn;
}); });
@ -23,7 +12,7 @@
onDestroy(unsubscribe); onDestroy(unsubscribe);
async function logout() { async function logout() {
await Apiclient.logout().catch((e)=>{}); await Apiclient.logout().catch((e) => {});
UserStore.logout(); UserStore.logout();
} }
</script> </script>
@ -166,13 +155,15 @@
{/if} {/if}
</nav> </nav>
<div class="flex items-center px-4 -mx-2"> {#if logged_in}
<img <div class="flex items-center px-4 -mx-2">
class="object-cover mx-2 rounded-full h-9 w-9" <img
src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=634&q=80" class="object-cover mx-2 rounded-full h-9 w-9"
alt="avatar" src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=634&q=80"
/> alt="avatar"
<h4 class="mx-2 font-medium text-gray-800 dark:text-gray-200 hover:underline">John Doe</h4> />
</div> <h4 class="mx-2 font-medium text-gray-800 dark:text-gray-200 hover:underline">Username here</h4>
</div>
{/if}
</div> </div>
</div> </div>

View File

@ -2,8 +2,20 @@
import '../app.postcss'; import '../app.postcss';
import Sidebar from '$lib/Sidebar.svelte'; import Sidebar from '$lib/Sidebar.svelte';
import UserStore from '$lib/UserStore'; import UserStore from '$lib/UserStore';
import { onMount } from 'svelte';
import * as localForage from 'localforage';
onMount(() => {
UserStore.init();
localForage.getItem('userdata', (err, value) => {
if (value) {
if (value.token) {
UserStore.login(value);
}
}
});
});
UserStore.init();
</script> </script>
<div style="min-height: 640px;" class="bg-white dark:bg-gray-800"> <div style="min-height: 640px;" class="bg-white dark:bg-gray-800">

View File

@ -1,8 +1,11 @@
<script> <script>
import { page } from '$app/stores'; import { page } from '$app/stores';
import Apiclient from '$lib/Apiclient'; import Apiclient from '$lib/Apiclient';
import UserStore from '$lib/UserStore';
import { onDestroy } from 'svelte';
let shortcode = $page.query.get('shortcode'); let shortcode = $page.query.get('shortcode');
$: urlDetails = { $: urlDetails = {
shortcode: 'Loading...', shortcode: 'Loading...',
url: 'Loading...', url: 'Loading...',
@ -10,13 +13,20 @@
visits: 'Loading...' visits: 'Loading...'
}; };
$: urlVisists = []; $: urlVisists = [];
let visitQuery;
Apiclient.getUrlDetails(shortcode).then((res) => { const unsubscribe = UserStore.subscribe((value) => {
urlDetails = res; if (value.isLoggedIn) {
}); Apiclient.getUrlDetails(shortcode).then((res) => {
let visitQuery = Apiclient.getUrlVisits(shortcode).then((res) => { urlDetails = res;
urlVisists = res; });
visitQuery = Apiclient.getUrlVisits(shortcode).then((res) => {
urlVisists = res;
});
}
}); });
onDestroy(unsubscribe);
</script> </script>
<h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">Details: {shortcode}</h2> <h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">Details: {shortcode}</h2>

View File

@ -1,10 +1,21 @@
<script> <script>
import Apiclient from '$lib/Apiclient'; import Apiclient from '$lib/Apiclient';
import UserStore from '$lib/UserStore';
import { onDestroy } from 'svelte';
$: urls = []; $: urls = [];
let urlQuery = Apiclient.getUrls().then((res) => { let urlQuery;
urls = res;
const unsubscribe = UserStore.subscribe((value) => {
if (value.isLoggedIn) {
urlQuery = Apiclient.getUrls().then((res) => {
urls = res;
});
}
}); });
onDestroy(unsubscribe);
function deleteUrl(shortcode) { function deleteUrl(shortcode) {
Apiclient.deleteUrl(shortcode).then(() => { Apiclient.deleteUrl(shortcode).then(() => {
urls = urls.filter((url) => url.shortcode != shortcode); urls = urls.filter((url) => url.shortcode != shortcode);

View File

@ -7,7 +7,6 @@ import Apiclient from '$lib/Apiclient';
$: password = ""; $: password = "";
$: error = ""; $: error = "";
UserStore.init();
async function login() { async function login() {
try { try {
const login = await Apiclient.login(username, password); const login = await Apiclient.login(username, password);