{recentTransactions.length > 0 ? (
@@ -438,9 +439,9 @@ export default function Dashboard() {
-
+
Se momsindberetning
-
+
{metrics.overdueInvoices > 0 && (
diff --git a/frontend/src/pages/Eksport.tsx b/frontend/src/pages/Eksport.tsx
index 6165ee0..3827f1b 100644
--- a/frontend/src/pages/Eksport.tsx
+++ b/frontend/src/pages/Eksport.tsx
@@ -9,7 +9,7 @@ import {
Button,
Tag,
Alert,
- Spin,
+ Skeleton,
} from 'antd';
import { showSuccess, showError } from '@/lib/errorHandling';
import { DownloadOutlined, FileTextOutlined } from '@ant-design/icons';
@@ -18,8 +18,9 @@ import { useFiscalYears } from '@/api/queries/fiscalYearQueries';
import { useExportSaft, downloadSaftFile } from '@/api/mutations/saftMutations';
import { formatDate } from '@/lib/formatters';
import { spacing } from '@/styles/designTokens';
+import { PageHeader } from '@/components/shared/PageHeader';
-const { Title, Text, Paragraph } = Typography;
+const { Text, Paragraph } = Typography;
export default function Eksport() {
const { company } = useCompany();
@@ -53,8 +54,20 @@ export default function Eksport() {
if (fiscalYearsLoading) {
return (
-
-
+
);
}
@@ -63,10 +76,11 @@ export default function Eksport() {
return (
-
Eksporter data
-
- Eksporter regnskabsdata til forskellige formater for compliance og rapportering.
-
+
{/* SAF-T Export Card */}
diff --git a/frontend/src/pages/Fakturaer.tsx b/frontend/src/pages/Fakturaer.tsx
index 76ebef1..0c0e06d 100644
--- a/frontend/src/pages/Fakturaer.tsx
+++ b/frontend/src/pages/Fakturaer.tsx
@@ -11,7 +11,7 @@ import {
Input,
Select,
InputNumber,
- Spin,
+ Skeleton,
Alert,
Drawer,
Descriptions,
@@ -42,6 +42,7 @@ import { useCurrentFiscalYear } from '@/stores/periodStore';
import { useInvoices, type Invoice, type InvoiceLine, type InvoiceStatus } from '@/api/queries/invoiceQueries';
import { useActiveCustomers, type Customer } from '@/api/queries/customerQueries';
import { useActiveProducts, type Product } from '@/api/queries/productQueries';
+import { useActiveAccounts } from '@/api/queries/accountQueries';
import {
useCreateInvoice,
useAddInvoiceLine,
@@ -124,6 +125,13 @@ export default function Fakturaer() {
// Fetch products for line form
const { data: products = [] } = useActiveProducts(company?.id);
+ // Fetch accounts for payment modal (filter for bank-type accounts: asset accounts starting with 1)
+ const { data: allAccounts = [] } = useActiveAccounts(company?.id);
+ const bankAccounts = useMemo(
+ () => allAccounts.filter((acc) => acc.type === 'asset' && parseInt(acc.accountNumber, 10) >= 1000 && parseInt(acc.accountNumber, 10) < 2000),
+ [allAccounts]
+ );
+
// Mutations
const createInvoiceMutation = useCreateInvoice();
const addInvoiceLineMutation = useAddInvoiceLine();
@@ -560,9 +568,7 @@ export default function Fakturaer() {
{/* Invoice Table */}
{loading ? (
-
-
-
+
) : filteredInvoices.length > 0 ? (