sanifae/src/routes/user/[user]/+page.svelte

92 lines
2.3 KiB
Svelte
Raw Normal View History

2023-02-05 09:47:26 -05:00
<script>
2023-02-12 01:53:13 -05:00
import Button from '$lib/components/Button.svelte'
2023-02-05 09:47:26 -05:00
import Area from '$lib/components/Area.svelte';
2023-02-12 01:53:13 -05:00
import PostList from '$lib/components/PostList.svelte';
2023-02-05 09:47:26 -05:00
/** @type {import('./$types').PageData} */
export let data;
let userData = data.postJsonUser.data;
let userBio = data.postJsonUserBio.data;
2023-03-06 02:26:57 -05:00
let following = data.postJsonUser.following;
let followers = data.postJsonUser.followers;
function follow() {
let fData = (new FormData());
fData.append('target',userData.username);
fetch('/api/follow', {
method: 'POST',
body: fData
}).then(async x => {
let xJson = (await x.json()).data;
following = xJson.following;
followers = xJson.followers;
})
}
2023-02-05 09:47:26 -05:00
</script>
2023-03-06 02:34:40 -05:00
<style>
.follower {
margin-right: 1.5rem;
}
</style>
2023-02-11 19:42:10 -05:00
{#if userData}
<Area>
<span slot="header">
<a href='/users/{userData.username}'>
{userData.username}
</a>
</span>
<span slot="main">
<p>
<b>Reputation:</b> {userData.reputation}
</p>
<p>
<b>Upvotes:</b> {userData.upvotes}
</p>
<p>
<b>Downvotes:</b> {userData.downvotes}
</p>
{#if userBio && userBio.roles == 69}
<p><b>This user is an Owner.</b></p>
{/if}
2023-03-06 02:26:57 -05:00
<h2>Following</h2>
{#each following as user}
2023-03-06 02:35:30 -05:00
<a class='follower' href='/user/{user.following}'>{user.following}</a>
2023-03-06 02:26:57 -05:00
{/each}
<h2>Followers</h2>
{#each followers as user}
2023-03-06 02:35:30 -05:00
<a class='follower' href='/user/{user.username}'>{user.username}</a>
2023-03-06 02:26:57 -05:00
{/each}
2023-02-11 19:42:10 -05:00
</span>
<span slot="footer">
2023-03-06 02:26:57 -05:00
<Button clickFunc={follow}>
Follow
</Button>
2023-02-11 19:42:10 -05:00
</span>
</Area>
{:else}
<Area>
<span slot="header">
2023-02-12 01:53:13 -05:00
<a href='/users/{data.user}'>
{data.user}
</a>
2023-02-11 19:42:10 -05:00
</span>
<span slot="main">
</span>
<span slot="footer">
2023-02-12 01:53:13 -05:00
This user does not have any statistics available.
2023-02-11 19:42:10 -05:00
</span>
</Area>
{/if}
2023-02-05 09:47:26 -05:00
<h2>Posts</h2>
2023-02-12 01:53:13 -05:00
<PostList data={data} />