-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
98 additions
and
11 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
28 changes: 28 additions & 0 deletions
28
src/frontend/src/btc/components/transactions/BtcTransaction.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<script lang="ts"> | ||
import { nonNullish } from '@dfinity/utils'; | ||
import { BigNumber } from '@ethersproject/bignumber'; | ||
import type { BtcTransactionStatus, BtcTransactionUi } from '$btc/types/btc'; | ||
import Transaction from '$lib/components/transactions/Transaction.svelte'; | ||
import { modalStore } from '$lib/stores/modal.store'; | ||
import type { TransactionType } from '$lib/types/transaction'; | ||
export let transaction: BtcTransactionUi; | ||
let value: bigint | undefined; | ||
let timestamp: number | undefined; | ||
let status: BtcTransactionStatus; | ||
let type: TransactionType; | ||
$: ({ type, status, value, timestamp } = transaction); | ||
let pending: boolean; | ||
$: pending = status === 'pending'; | ||
</script> | ||
|
||
<Transaction | ||
on:click={() => modalStore.openBtcTransaction(transaction)} | ||
value={nonNullish(value) ? BigNumber.from(value) : undefined} | ||
{type} | ||
{timestamp} | ||
{pending} | ||
/> |
22 changes: 22 additions & 0 deletions
22
src/frontend/src/btc/components/transactions/BtcTransactions.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<script lang="ts"> | ||
import { slide } from 'svelte/transition'; | ||
import BtcTransaction from '$btc/components/transactions/BtcTransaction.svelte'; | ||
import { | ||
sortedTransactions, | ||
transactionsNotInitialized | ||
} from '$btc/derived/btc-transactions.derived'; | ||
import TokensSkeletons from '$lib/components/tokens/TokensSkeletons.svelte'; | ||
import { i18n } from '$lib/stores/i18n.store'; | ||
</script> | ||
|
||
<TokensSkeletons loading={$transactionsNotInitialized}> | ||
{#each $sortedTransactions as transaction (transaction.data.id)} | ||
<div transition:slide={{ duration: 250 }}> | ||
<BtcTransaction transaction={transaction.data} /> | ||
</div> | ||
{/each} | ||
|
||
{#if $sortedTransactions.length === 0} | ||
<p class="text-secondary mt-4 opacity-50">{$i18n.transactions.text.no_transactions}</p> | ||
{/if} | ||
</TokensSkeletons> |
47 changes: 47 additions & 0 deletions
47
src/frontend/src/lib/components/transactions/Transaction.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
<script lang="ts"> | ||
import { nonNullish } from '@dfinity/utils'; | ||
import { BigNumber } from '@ethersproject/bignumber'; | ||
import type { ComponentType } from 'svelte'; | ||
import IconReceive from '$lib/components/icons/IconReceive.svelte'; | ||
import IconSend from '$lib/components/icons/IconSend.svelte'; | ||
import TransactionPending from '$lib/components/transactions/TransactionPending.svelte'; | ||
import Amount from '$lib/components/ui/Amount.svelte'; | ||
import Card from '$lib/components/ui/Card.svelte'; | ||
import RoundedIcon from '$lib/components/ui/RoundedIcon.svelte'; | ||
import { i18n } from '$lib/stores/i18n.store'; | ||
import type { TransactionType } from '$lib/types/transaction'; | ||
import { formatSecondsToDate } from '$lib/utils/format.utils.js'; | ||
export let value: BigNumber | undefined; | ||
export let type: TransactionType; | ||
export let pending: boolean; | ||
export let timestamp: number | undefined; | ||
let label: string; | ||
$: label = type === 'send' ? $i18n.send.text.send : $i18n.receive.text.receive; | ||
let icon: ComponentType; | ||
$: icon = type === 'send' ? IconSend : IconReceive; | ||
</script> | ||
|
||
<button class="contents"> | ||
<Card> | ||
<span class="inline-block first-letter:capitalize">{label}</span> | ||
|
||
<RoundedIcon slot="icon" {icon} iconStyleClass={pending ? 'opacity-10' : ''} /> | ||
|
||
<svelte:fragment slot="amount"> | ||
{#if nonNullish(value)} | ||
<Amount amount={BigNumber.from(value)} /> | ||
{/if} | ||
</svelte:fragment> | ||
|
||
<svelte:fragment slot="description"> | ||
{#if nonNullish(timestamp)} | ||
{formatSecondsToDate(timestamp)} | ||
{/if} | ||
|
||
<TransactionPending {pending} /> | ||
</svelte:fragment> | ||
</Card> | ||
</button> |
2 changes: 1 addition & 1 deletion
2
src/frontend/src/lib/components/transactions/TransactionsSignedIn.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters