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-03-06 16:15:27 -05:00
|
|
|
import FileUpload from '$lib/components/FileUpload.svelte';
|
2023-02-05 09:47:26 -05:00
|
|
|
|
|
|
|
/** @type {import('./$types').PageData} */
|
|
|
|
export let data;
|
|
|
|
|
2023-03-06 16:15:27 -05:00
|
|
|
let uploadForm = {};
|
|
|
|
|
2023-02-05 09:47:26 -05:00
|
|
|
let userData = data.postJsonUser.data;
|
2023-02-12 05:04:29 -05:00
|
|
|
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;
|
|
|
|
}
|
2023-03-06 16:15:27 -05:00
|
|
|
|
|
|
|
.pfp {
|
|
|
|
width: 50px;
|
|
|
|
height: 50px;
|
|
|
|
margin-right: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
#header {
|
|
|
|
display: flex;
|
2023-03-06 16:55:16 -05:00
|
|
|
align-items: center;
|
2023-03-06 16:15:27 -05:00
|
|
|
}
|
2023-03-06 02:34:40 -05:00
|
|
|
</style>
|
|
|
|
|
2023-02-11 19:42:10 -05:00
|
|
|
{#if userData}
|
|
|
|
<Area>
|
2023-03-06 16:15:27 -05:00
|
|
|
<span slot="header" id='header'>
|
|
|
|
<img class='pfp' src='/pfp/{userData.username}.png'/>
|
2023-02-11 19:42:10 -05:00
|
|
|
<a href='/users/{userData.username}'>
|
|
|
|
{userData.username}
|
|
|
|
</a>
|
|
|
|
</span>
|
|
|
|
<span slot="main">
|
2023-03-06 16:15:27 -05:00
|
|
|
<div class='left'></div>
|
2023-02-11 19:42:10 -05:00
|
|
|
<p>
|
|
|
|
<b>Reputation:</b> {userData.reputation}
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<b>Upvotes:</b> {userData.upvotes}
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<b>Downvotes:</b> {userData.downvotes}
|
|
|
|
</p>
|
2023-02-12 05:04:29 -05:00
|
|
|
{#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 16:15:27 -05:00
|
|
|
<a class='follower' href='/user/{user.following}'>
|
|
|
|
<img class='pfp' src='/pfp/{user.following}.png'/>
|
|
|
|
</a>
|
2023-03-06 02:26:57 -05:00
|
|
|
{/each}
|
|
|
|
|
|
|
|
<h2>Followers</h2>
|
|
|
|
{#each followers as user}
|
2023-03-06 16:15:27 -05:00
|
|
|
<a class='follower' href='/user/{user.username}'>
|
|
|
|
<img class='pfp' src='/pfp/{user.username}.png'/>
|
|
|
|
</a>
|
2023-03-06 02:26:57 -05:00
|
|
|
{/each}
|
2023-03-06 16:15:27 -05:00
|
|
|
{#if data.resAcc.data == userData.username}
|
|
|
|
<h2>Set PFP</h2>
|
|
|
|
<FileUpload bind:form={uploadForm} type='small' apiUrl={'/api/pfp'}/>
|
|
|
|
{/if}
|
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} />
|