+
-
+
+
-
+
+
+
+
+ Password must be at least 8 characters with uppercase, lowercase, and numbers.
+
+
+
-
+
diff --git a/src/components/common/ButtonCommon.vue b/src/components/common/ButtonCommon.vue
index 8d81e39..07b0157 100644
--- a/src/components/common/ButtonCommon.vue
+++ b/src/components/common/ButtonCommon.vue
@@ -1,5 +1,67 @@
+
+
-
+
+
diff --git a/src/components/common/FormCommon.vue b/src/components/common/FormCommon.vue
index 6bf9595..098a969 100644
--- a/src/components/common/FormCommon.vue
+++ b/src/components/common/FormCommon.vue
@@ -98,7 +98,7 @@ const handleBlur = (e: FocusEvent) => {
}
&.error {
border-color: var(--vt-c-red-v3);
- background-color: var()
+ background-color: var();
}
&.disabled {
background-color: var(--vt-c-gray-4);
diff --git a/src/helpers/index.ts b/src/helpers/index.ts
deleted file mode 100644
index 9934b9f..0000000
--- a/src/helpers/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './constants/code'
-export * from './constants/constants'
-export * from './constants/localStorage'
diff --git a/src/interface/common.ts b/src/interface/common.ts
new file mode 100644
index 0000000..61352fd
--- /dev/null
+++ b/src/interface/common.ts
@@ -0,0 +1,20 @@
+import type { ButtonType, ButtonSize } from 'ant-design-vue/es/button'
+
+// Button Component Props
+export interface ButtonProps {
+ type?: ButtonType
+ size?: ButtonSize
+ block?: boolean
+ disabled?: boolean
+ loading?: boolean
+ htmlType?: 'button' | 'submit' | 'reset'
+}
+
+// Icon Component Props
+export interface IconProps {
+ name?: string
+ size?: number | string
+ color?: string
+ class?: string
+ icon: string
+}
diff --git a/src/interface/home.ts b/src/interface/home.ts
new file mode 100644
index 0000000..c35e132
--- /dev/null
+++ b/src/interface/home.ts
@@ -0,0 +1,19 @@
+// Network Status Interface
+export interface NetworkStatus {
+ network: string
+ daaScore: number
+ dagHeader: number
+ dagBlocks: number
+ difficulty: number
+ medianOffset: string
+ medianTimeUTC: string
+}
+
+// Wallet Tab Props
+export interface WalletTabProps {
+ network: string
+}
+
+export interface DebugTabProps {}
+
+export interface TransactionsTabProps {}
diff --git a/src/interface/index.ts b/src/interface/index.ts
index 5da786c..e2116e3 100644
--- a/src/interface/index.ts
+++ b/src/interface/index.ts
@@ -1,9 +1,2 @@
-interface Props {
- name?: string
- size?: number | string
- color?: string
- class?: string
-}
-export interface IconProps extends Props {
- icon: string
-}
+export * from './common'
+export * from './home'
diff --git a/src/router/route.ts b/src/router/route.ts
index b061a14..ea2e5c2 100644
--- a/src/router/route.ts
+++ b/src/router/route.ts
@@ -1,5 +1,5 @@
import * as Page from '@/views'
-import { getToken } from '@/helpers'
+import { getToken } from '@/utils'
const ifAuthenticated = (to: any, from: any, next: any) => {
if (getToken()) {
@@ -20,24 +20,18 @@ const ifNotAuthenticated = (to: any, from: any, next: any) => {
export const routes: any = [
{
path: '/',
- redirect: '/home',
- children: [
- {
- path: 'home',
- name: 'home',
- component: Page.Home,
- },
- {
- path: ':pathMatch(.*)*',
- component: Page.NotFound,
- name: 'page-not-found',
- },
- ],
+ name: 'index',
+ component: Page.Home,
},
{
- path: '/onboarding',
- name: 'onboarding',
+ path: '/login',
+ name: 'login',
component: Page.Login,
beforeEnter: ifNotAuthenticated,
},
+ {
+ path: '/:pathMatch(.*)*',
+ component: Page.NotFound,
+ name: 'page-not-found',
+ },
]
diff --git a/src/helpers/constants/code.ts b/src/utils/constants/code.ts
similarity index 100%
rename from src/helpers/constants/code.ts
rename to src/utils/constants/code.ts
diff --git a/src/helpers/constants/constants.ts b/src/utils/constants/constants.ts
similarity index 77%
rename from src/helpers/constants/constants.ts
rename to src/utils/constants/constants.ts
index 1bb801a..a0562e9 100644
--- a/src/helpers/constants/constants.ts
+++ b/src/utils/constants/constants.ts
@@ -10,7 +10,3 @@ export const CURRENT_YEAR = dayjs(new Date()).format('YYYY')
export const MONTHS = Array.from({ length: 12 }, (item, i) => {
return dayjs(new Date(0, i)).format('MM')
})
-
-export const FORMAT_DAY = (day: any, format = 'YYYY-MM-DD') => {
- return dayjs(new Date(day)).format(format)
-}
diff --git a/src/utils/helpers/format.ts b/src/utils/helpers/format.ts
new file mode 100644
index 0000000..b74fd2d
--- /dev/null
+++ b/src/utils/helpers/format.ts
@@ -0,0 +1,9 @@
+import dayjs from 'dayjs'
+
+export const formatNumberToLocaleString = (num: number): string => {
+ return num.toLocaleString('en-US')
+}
+
+export const formatDate = (day: any, format = 'YYYY-MM-DD') => {
+ return dayjs(new Date(day)).format(format)
+}
diff --git a/src/helpers/constants/localStorage.ts b/src/utils/helpers/localStorage.ts
similarity index 100%
rename from src/helpers/constants/localStorage.ts
rename to src/utils/helpers/localStorage.ts
diff --git a/src/utils/index.ts b/src/utils/index.ts
new file mode 100644
index 0000000..155706b
--- /dev/null
+++ b/src/utils/index.ts
@@ -0,0 +1,4 @@
+export * from './constants/code'
+export * from './constants/constants'
+export * from './helpers/format'
+export * from './helpers/localStorage'
diff --git a/src/views/Home/HomeView.vue b/src/views/Home/HomeView.vue
index 2c7418e..9d0c577 100644
--- a/src/views/Home/HomeView.vue
+++ b/src/views/Home/HomeView.vue
@@ -1,7 +1,89 @@
-
+
- Home page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/views/Home/components/DebugTab.vue b/src/views/Home/components/DebugTab.vue
new file mode 100644
index 0000000..d9e0fcf
--- /dev/null
+++ b/src/views/Home/components/DebugTab.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+ Show UTXOs
+
+
+ Force transaction times update
+
+
+ Scan More Addresses
+
+
+
+
+
+
diff --git a/src/views/Home/components/NetworkTab.vue b/src/views/Home/components/NetworkTab.vue
new file mode 100644
index 0000000..6389d35
--- /dev/null
+++ b/src/views/Home/components/NetworkTab.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
NETWORK STATUS
+
+
+
+ Network
+ {{ networkStatus.network }}
+
+
+
+ DAA Score
+ {{
+ formatNumberToLocaleString(networkStatus.daaScore)
+ }}
+
+
+
+ DAG Header
+ {{
+ formatNumberToLocaleString(networkStatus.dagHeader)
+ }}
+
+
+
+ DAG Blocks
+ {{
+ formatNumberToLocaleString(networkStatus.dagBlocks)
+ }}
+
+
+
+ Difficulty
+ {{
+ formatNumberToLocaleString(networkStatus.difficulty)
+ }}
+
+
+
+ Median Offset
+ {{ networkStatus.medianOffset }}
+
+
+
+ Median Time UTC
+ {{ networkStatus.medianTimeUTC }}
+
+
+
+
+
+
+
diff --git a/src/views/Home/components/TransactionsTab.vue b/src/views/Home/components/TransactionsTab.vue
new file mode 100644
index 0000000..6f78448
--- /dev/null
+++ b/src/views/Home/components/TransactionsTab.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
diff --git a/src/views/Home/components/WalletTab.vue b/src/views/Home/components/WalletTab.vue
new file mode 100644
index 0000000..24d5f26
--- /dev/null
+++ b/src/views/Home/components/WalletTab.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+ Compound Transactions
+
+
+ Export transactions as CSV
+
+
+ Update transaction times
+
+
+ Backup Seed
+
+
+ Recover From Seed
+
+
+ Export Wallet Seed File (KPK)
+
+
+ Import Wallet Seed File (KPK)
+
+
+
+
+
+
+
▷ DONATIONS
+
+
+
+
+
+
+ ▷ DEVELOPER INFO
+
+
+
+
+
+
diff --git a/src/views/Home/components/index.ts b/src/views/Home/components/index.ts
new file mode 100644
index 0000000..cd0e616
--- /dev/null
+++ b/src/views/Home/components/index.ts
@@ -0,0 +1,4 @@
+export { default as TransactionsTab } from './TransactionsTab.vue'
+export { default as WalletTab } from './WalletTab.vue'
+export { default as NetworkTab } from './NetworkTab.vue'
+export { default as DebugTab } from './DebugTab.vue'
diff --git a/vite.config.ts b/vite.config.ts
index fa8cf62..8f1179e 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -4,21 +4,26 @@ import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import VueDevTools from 'vite-plugin-vue-devtools'
-import tailwindcss from '@tailwindcss/vite'
// https://vitejs.dev/config/
export default defineConfig({
- server: {
- port: 3008,
-},
- plugins: [
- vue(),
- vueJsx(),
- VueDevTools(),
- ],
- resolve: {
- alias: {
- '@': fileURLToPath(new URL('./src', import.meta.url))
- }
- }
+ server: {
+ port: 3008,
+ },
+ plugins: [vue(), vueJsx(), VueDevTools()],
+ css: {
+ preprocessorOptions: {
+ scss: {
+ additionalData: `
+ @import "@/assets/scss/__variables.scss";
+ @import "@/assets/scss/__mixin.scss";
+ `,
+ },
+ },
+ },
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url)),
+ },
+ },
})