2025-10-21 15:11:46 +07:00
|
|
|
<script setup lang="ts">
|
2025-11-05 04:14:37 +07:00
|
|
|
import { onMounted, ref } from 'vue'
|
|
|
|
|
import { Tabs } from 'ant-design-vue'
|
2025-10-23 15:30:00 +07:00
|
|
|
import { WalletTab, NetworkTab, UTXOTab } from './components'
|
2025-11-05 04:14:37 +07:00
|
|
|
import { useNeptuneWallet } from '@/composables/useNeptuneWallet'
|
|
|
|
|
|
|
|
|
|
const neptuneWallet = useNeptuneWallet()
|
2025-10-21 15:11:46 +07:00
|
|
|
|
2025-10-23 15:30:00 +07:00
|
|
|
const activeTab = ref('UTXOs')
|
2025-10-29 19:55:44 +07:00
|
|
|
const network = ref('neptune-mainnet')
|
2025-11-05 04:14:37 +07:00
|
|
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
await neptuneWallet.getNetworkInfo()
|
|
|
|
|
})
|
2025-10-21 15:11:46 +07:00
|
|
|
</script>
|
2025-10-21 01:14:13 +07:00
|
|
|
|
|
|
|
|
<template>
|
2025-10-21 15:11:46 +07:00
|
|
|
<div class="home-container">
|
2025-11-05 04:14:37 +07:00
|
|
|
<Tabs v-model:activeKey="activeTab" size="large" class="main-tabs">
|
|
|
|
|
<!-- DEBUG TAB -->
|
|
|
|
|
<Tabs.TabPane key="UTXOs" tab="UTXOs">
|
|
|
|
|
<UTXOTab />
|
|
|
|
|
</Tabs.TabPane>
|
|
|
|
|
|
|
|
|
|
<!-- WALLET TAB -->
|
|
|
|
|
<Tabs.TabPane key="WALLET" tab="WALLET">
|
|
|
|
|
<WalletTab :network="network" />
|
|
|
|
|
</Tabs.TabPane>
|
|
|
|
|
|
|
|
|
|
<!-- NETWORK TAB -->
|
|
|
|
|
<Tabs.TabPane key="NETWORK" tab="NETWORK">
|
|
|
|
|
<NetworkTab />
|
|
|
|
|
</Tabs.TabPane>
|
|
|
|
|
</Tabs>
|
2025-10-21 15:11:46 +07:00
|
|
|
</div>
|
2025-10-21 01:14:13 +07:00
|
|
|
</template>
|
|
|
|
|
|
2025-10-21 15:11:46 +07:00
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.home-container {
|
2025-11-05 04:14:37 +07:00
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
2025-10-21 15:11:46 +07:00
|
|
|
padding: var(--spacing-lg);
|
|
|
|
|
|
2025-10-24 22:49:46 +07:00
|
|
|
@include screen(tablet) {
|
2025-11-05 04:14:37 +07:00
|
|
|
padding: var(--spacing-xl);
|
2025-10-24 22:49:46 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@include screen(desktop) {
|
2025-11-05 04:14:37 +07:00
|
|
|
padding: var(--spacing-xl);
|
2025-10-21 15:11:46 +07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
:deep(.main-tabs) {
|
2025-11-05 04:14:37 +07:00
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
2025-10-21 15:11:46 +07:00
|
|
|
.ant-tabs-nav {
|
2025-11-05 04:14:37 +07:00
|
|
|
margin-bottom: var(--spacing-md);
|
|
|
|
|
flex-shrink: 0;
|
2025-10-21 15:11:46 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-tabs-tab {
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
font-weight: var(--font-semibold);
|
|
|
|
|
letter-spacing: var(--tracking-wide);
|
|
|
|
|
padding: 10px 16px;
|
|
|
|
|
|
2025-10-24 22:49:46 +07:00
|
|
|
@include screen(mobile) {
|
2025-10-21 15:11:46 +07:00
|
|
|
font-size: 12px;
|
|
|
|
|
padding: 8px 12px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-tabs-ink-bar {
|
|
|
|
|
background: var(--primary-color);
|
|
|
|
|
height: var(--tabs-height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-tabs-tab-active .ant-tabs-tab-btn {
|
|
|
|
|
color: var(--primary-color);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-tabs-content {
|
2025-11-05 04:14:37 +07:00
|
|
|
flex: 1;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
|
|
.ant-tabs-tabpane {
|
|
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
}
|
2025-10-21 15:11:46 +07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|