diff --git a/src/modules/expenses/components/AddExpense.vue b/src/modules/expenses/components/AddExpense.vue index 48e0950..bcabb71 100644 --- a/src/modules/expenses/components/AddExpense.vue +++ b/src/modules/expenses/components/AddExpense.vue @@ -274,7 +274,7 @@ const form = useForm({ initialValues: { description: '', amount: 0, - currency: 'EUR', + currency: '', // Will be set dynamically from LNbits default currency reference: '', isEquity: false } @@ -284,14 +284,24 @@ const { resetForm, meta } = form const isFormValid = computed(() => meta.value.valid) /** - * Fetch available currencies on component mount + * Fetch available currencies and default currency on component mount */ onMounted(async () => { try { loadingCurrencies.value = true + + // Fetch available currencies const currencies = await expensesAPI.getCurrencies() availableCurrencies.value = currencies console.log('[AddExpense] Loaded currencies:', currencies) + + // Fetch default currency + const defaultCurrency = await expensesAPI.getDefaultCurrency() + + // Set default currency: use configured default, or first available currency, or 'EUR' as final fallback + const initialCurrency = defaultCurrency || currencies[0] || 'EUR' + form.setFieldValue('currency', initialCurrency) + console.log('[AddExpense] Default currency set to:', initialCurrency) } catch (error) { console.error('[AddExpense] Failed to load currencies:', error) toast.error('Failed to load currencies', { description: 'Please check your connection and try again' }) diff --git a/src/modules/expenses/services/ExpensesAPI.ts b/src/modules/expenses/services/ExpensesAPI.ts index 4342c43..08fcd6e 100644 --- a/src/modules/expenses/services/ExpensesAPI.ts +++ b/src/modules/expenses/services/ExpensesAPI.ts @@ -228,4 +228,26 @@ export class ExpensesAPI extends BaseService { throw error } } + + /** + * Get default currency from LNbits instance + */ + async getDefaultCurrency(): Promise { + try { + const response = await fetch(`${this.baseUrl}/api/v1/default-currency`, { + method: 'GET', + signal: AbortSignal.timeout(this.config?.apiConfig?.timeout || 30000) + }) + + if (!response.ok) { + throw new Error(`Failed to fetch default currency: ${response.statusText}`) + } + + const data = await response.json() + return data.default_currency + } catch (error) { + console.error('[ExpensesAPI] Error fetching default currency:', error) + throw error + } + } }