92 lines
2.3 KiB
Svelte
92 lines
2.3 KiB
Svelte
<article>
|
|
{#if $games.length == 0}
|
|
<div class="medium-height middle-align center-align">
|
|
<div class="center-align">
|
|
<progress class="circle"></progress>
|
|
|
|
<h5>gathering games...</h5>
|
|
</div>
|
|
</div>
|
|
{:else}
|
|
{#each Object.keys($sellers).sort() as username (username)}
|
|
<div class="row">
|
|
<h4 class="small">
|
|
<a name={`seller-${username}`} href={`#seller-${username}`}>
|
|
<i>link</i></a>
|
|
<BggUser {username} />
|
|
</h4>
|
|
<span class="max neighbourhood">
|
|
{#if $sellers[username].neighbourhood}
|
|
({$sellers[username].neighbourhood})
|
|
{/if}
|
|
</span>
|
|
<span class="nbr_games">
|
|
{nbr_games_for(username)}
|
|
</span>
|
|
</div>
|
|
|
|
<GameList
|
|
sellers={$sellers}
|
|
games={$games.filter((game) => game.username === username)} />
|
|
{/each}
|
|
{/if}
|
|
</article>
|
|
|
|
<script>
|
|
import { getContext } from 'svelte';
|
|
import GameList from './GameList.svelte';
|
|
import BggUser from '$lib/components/BggUser.svelte';
|
|
|
|
const games = getContext('games');
|
|
const sellers = getContext('sellers');
|
|
|
|
const nbr_games_for = (username) =>
|
|
$games.filter((game) => game.username === username).length;
|
|
</script>
|
|
|
|
<style>
|
|
p {
|
|
font-size: var(--font-size-10);
|
|
max-width: 60em;
|
|
text-align: justify;
|
|
margin-left: 3em;
|
|
margin-right: 3em;
|
|
}
|
|
a {
|
|
color: var(--primary);
|
|
text-decoration: underline;
|
|
}
|
|
.game-cell {
|
|
display: flex;
|
|
}
|
|
.game-cell > * {
|
|
display: block;
|
|
}
|
|
.game-desc {
|
|
flex: 1;
|
|
}
|
|
td {
|
|
font-size: var(--font-size-10);
|
|
}
|
|
|
|
@media screen and (max-width: 730px) {
|
|
h1 {
|
|
font-size: var(--font-size-12);
|
|
}
|
|
p {
|
|
font-size: inherit;
|
|
margin-left: 1em;
|
|
margin-right: 1em;
|
|
}
|
|
}
|
|
.nbr_games:after {
|
|
content: ' games';
|
|
}
|
|
.nbr_games:before {
|
|
content: 'selling ';
|
|
}
|
|
a {
|
|
padding-right: 1em;
|
|
}
|
|
</style>
|