/
ActivityTile.svelte
73 lines (69 loc) · 2.4 KB
/
ActivityTile.svelte
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
<script lang="typescript">
import {
InclusionState,
selectedAccountAssets,
getAssetFromPersistedAssets,
IPersistedAsset,
Activity,
ActivityType,
NotVerifiedStatus,
ActivityAsyncStatus,
} from '@core/wallet'
import { openPopup } from '@auxiliary/popup'
import {
ClickableTile,
TransactionActivityTileContent,
FoundryActivityTileContent,
AliasActivityTileContent,
TimelockActivityTileFooter,
AsyncActivityTileFooter,
NftActivityTileContent,
} from 'shared/components'
export let activity: Activity
let asset: IPersistedAsset
$: $selectedAccountAssets,
(asset =
activity.type === ActivityType.Basic || activity.type === ActivityType.Foundry
? getAssetFromPersistedAssets(activity.assetId)
: undefined)
function handleTransactionClick(): void {
if (asset?.verification?.status === NotVerifiedStatus.New) {
openPopup({
type: 'tokenInformation',
overflow: true,
props: {
activityId: activity.id,
asset,
},
})
} else {
openPopup({
type: 'activityDetails',
props: { activityId: activity.id },
})
}
}
</script>
<ClickableTile
onClick={handleTransactionClick}
classes={activity.inclusionState === InclusionState.Pending ? 'opacity-80 animate-pulse' : ''}
>
<activity-tile class="w-full flex flex-col space-y-4">
<tile-content class="flex flex-row items-center text-left space-x-4">
{#if activity.type === ActivityType.Basic}
<TransactionActivityTileContent {activity} />
{:else if activity.type === ActivityType.Alias}
<AliasActivityTileContent {activity} />
{:else if activity.type === ActivityType.Nft}
<NftActivityTileContent {activity} />
{:else}
<FoundryActivityTileContent {activity} />
{/if}
</tile-content>
{#if activity.asyncData?.asyncStatus === ActivityAsyncStatus.Timelocked}
<TimelockActivityTileFooter {activity} />
{:else if activity.asyncData}
<AsyncActivityTileFooter {activity} />
{/if}
</activity-tile>
</ClickableTile>