aboutsummaryrefslogtreecommitdiff
path: root/src/lib/sections/Bank.svelte
blob: 46c70c9709f596909156ce286492c274374ceb76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<script lang="ts">
	import type { CleanMemberProfile } from '$lib/APITypes'
	import Tooltip from '$lib/Tooltip.svelte'
	import ConditionalLink from '$lib/ConditionalLink.svelte'
	import {
		colorCodeCharacter,
		formattingCodeToHtml,
		millisecondsToTime,
		removeFormattingCode,
	} from '$lib/utils'

	export let data: CleanMemberProfile
</script>

{#if data.profile.bank}
	<p class="bank-main-current-balance">
		Current balance: <span class="bank-main-current-balance-value"
			><b>{data.profile.bank.balance}</b> coins</span
		>
	</p>
	{#each data.profile.bank.history as transaction}
		<div>
			<span class="transaction-player">
				<ConditionalLink
					href="/player/{removeFormattingCode(transaction.name)}"
					isWrapped={transaction.name.startsWith(colorCodeCharacter)}
				>
					{@html formattingCodeToHtml(transaction.name)}
				</ConditionalLink>
			</span>
			<Tooltip>
				<span slot="tooltip">
					New balance: <b>{transaction.total}</b>
				</span>
				<span
					class:difference-positive={transaction.change > 0}
					class:difference-negative={transaction.change < 0}
				>
					{transaction.change > 0
						? '+' + transaction.change.toLocaleString()
						: transaction.change.toLocaleString()}
				</span>
			</Tooltip>

			<span class="transaction-timeago">
				{millisecondsToTime(Date.now() - transaction.timestamp)}
			</span>
		</div>
	{/each}
{/if}

<style>
	.difference-positive {
		color: #0f0;
	}
	.difference-negative {
		color: red;
	}

	.transaction-timeago {
		color: var(--theme-darker-text);
	}

	.transaction-player {
		font-family: Minecraft, 'Atkinson Hyperlegible', sans-serif;
		font-size: 0.8em;
	}

	.bank-main-current-balance {
		margin: 0.5em 0;
		color: var(--theme-darker-text);
	}

	.bank-main-current-balance-value {
		color: var(--theme-main-text);
	}
</style>