diff --git a/.env.example b/.env.example index 63b30aa..9e80e61 100644 --- a/.env.example +++ b/.env.example @@ -87,25 +87,6 @@ VITE_HUB_FORUM_URL= VITE_HUB_MARKET_URL= VITE_HUB_TASKS_URL= -# ─────────────────────────────────────────────────────────────────────── -# VITE_HUB_ROOT_URL — standalone → hub (the inverse of the URLs above) -# -# Read by the standalone shell's (top-right "back to hub" link) -# and the "Back to Hub" item inside the profile sheet. Each standalone's -# bundle gets this value baked in at build time. -# -# In PATH-MODE deployment the standalone and hub share an origin, so the -# default ('/' if unset) is correct — the link is same-origin. -# -# In SUBDOMAIN-MODE production the standalone is on a different origin -# than the hub; set this to the full hub URL: -# VITE_HUB_ROOT_URL=https://app.example.com/ -# -# In LOCAL DEV with `npm run dev:all`, the hub is on :5173: -# VITE_HUB_ROOT_URL=http://localhost:5173/ -# ─────────────────────────────────────────────────────────────────────── -VITE_HUB_ROOT_URL= - # ─────────────────────────────────────────────────────────────────────── # VITE_BASE_PATH — build-time only, NOT per .env # diff --git a/src/accounting-app/App.vue b/src/accounting-app/App.vue index e5800f2..8fe3aa8 100644 --- a/src/accounting-app/App.vue +++ b/src/accounting-app/App.vue @@ -1,29 +1,94 @@ diff --git a/src/accounting-app/views/BalancePage.vue b/src/accounting-app/views/BalancePage.vue index 2bb7ec3..0d1ef8d 100644 --- a/src/accounting-app/views/BalancePage.vue +++ b/src/accounting-app/views/BalancePage.vue @@ -6,7 +6,8 @@ import { injectService, SERVICE_TOKENS } from '@/core/di-container' import { useToast } from '@/core/composables/useToast' import type { ExpensesAPI } from '@/modules/expenses/services/ExpensesAPI' import type { Transaction } from '@/modules/expenses/types' -import { ArrowDown, ArrowUp, Clock, Loader2, PieChart } from 'lucide-vue-next' +import { ArrowDown, ArrowUp, Clock, RefreshCw, Loader2, PieChart } from 'lucide-vue-next' +import { Button } from '@/components/ui/button' import { Badge } from '@/components/ui/badge' const { t } = useI18n() @@ -19,6 +20,7 @@ const balance = ref(null) const balanceCurrency = ref('sats') const pendingTransactions = ref([]) const isLoading = ref(true) +const isRefreshing = ref(false) const walletKey = computed(() => user.value?.wallets?.[0]?.inkey) const budgetsEnabled = computed(() => import.meta.env.VITE_LIBRA_BUDGETS_ENABLED === 'true') @@ -64,6 +66,12 @@ async function loadData() { } } +async function refresh() { + isRefreshing.value = true + await loadData() + isRefreshing.value = false +} + onMounted(async () => { isLoading.value = true await loadData() @@ -86,8 +94,18 @@ function formatFiat(amount: number, currency: string): string {