diff --git a/app/(dashboard)/reports/page.tsx b/app/(dashboard)/reports/page.tsx index ad6ca167..507780b2 100644 --- a/app/(dashboard)/reports/page.tsx +++ b/app/(dashboard)/reports/page.tsx @@ -103,54 +103,89 @@ export default function ReportsPage() { {selectedPeriod ? ( - - - - Saldobalans - - - - Resultaträkning - - - - Balansräkning - - - - Momsdeklaration - - {isEnskildFirma && ( - - - NE-bilaga - - )} - - - SRU-export - - - - Huvudbok - - - - Grundbok - - - - Kundreskontra - - - - Lev.reskontra - - - - Bankavstämning - - +
+ {/* Bokslut (Financial Statements) */} +
+

+ Bokslut +

+ + + + Saldobalans + + + + Resultaträkning + + + + Balansräkning + + +
+ + {/* Skatt & moms (Tax & VAT) */} +
+

+ Skatt & moms +

+ + + + Momsdeklaration + + {isEnskildFirma && ( + + + NE-bilaga + + )} + + + SRU-export + + +
+ + {/* Huvudböcker (Ledgers) */} +
+

+ Huvudböcker +

+ + + + Huvudbok + + + + Grundbok + + + + Kundreskontra + + + + Leverantörsreskontra + + +
+ + {/* Avstämning (Reconciliation) */} +
+

+ Avstämning +

+ + + + Bankavstämning + + +
+
diff --git a/app/(dashboard)/settings/page.tsx b/app/(dashboard)/settings/page.tsx index ae4e950a..bce18481 100644 --- a/app/(dashboard)/settings/page.tsx +++ b/app/(dashboard)/settings/page.tsx @@ -2,6 +2,7 @@ import { useState, useEffect } from 'react' import { useRouter, useSearchParams } from 'next/navigation' +import Link from 'next/link' import { createClient } from '@/lib/supabase/client' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Button } from '@/components/ui/button' @@ -22,6 +23,7 @@ import { Moon, Monitor, Palette, + ExternalLink, } from 'lucide-react' import { useTheme } from 'next-themes' import type { CompanySettings } from '@/types' @@ -41,6 +43,7 @@ export default function SettingsPage() { const [isSaving, setIsSaving] = useState(false) const [settings, setSettings] = useState(null) const [hasBankingExtension, setHasBankingExtension] = useState(false) + const [hasNotificationExtension, setHasNotificationExtension] = useState(false) const { theme, setTheme } = useTheme() const [mounted, setMounted] = useState(false) @@ -93,25 +96,31 @@ export default function SettingsPage() { setSettings(settingsData) - // Check if Enable Banking extension is enabled - try { - const toggleRes = await fetch('/api/extensions/toggles/general/enable-banking') - if (toggleRes.ok) { - const { data } = await toggleRes.json() - setHasBankingExtension(data?.enabled || false) - } - } catch { - // If toggle check fails, also check for existing connections + // Check extension toggles in parallel + const [bankingToggleRes, notificationToggleRes] = await Promise.all([ + fetch('/api/extensions/toggles/general/enable-banking').catch(() => null), + fetch('/api/extensions/toggles/general/push-notifications').catch(() => null), + ]) + + if (bankingToggleRes?.ok) { + const { data } = await bankingToggleRes.json() + setHasBankingExtension(data?.enabled || false) + } else { + // Fallback: check for existing bank connections const { data: connections } = await supabase .from('bank_connections') .select('id') .eq('user_id', user.id) .eq('status', 'active') .limit(1) - setHasBankingExtension((connections && connections.length > 0) || false) } + if (notificationToggleRes?.ok) { + const { data } = await notificationToggleRes.json() + setHasNotificationExtension(data?.enabled || false) + } + setIsLoading(false) } @@ -197,18 +206,14 @@ export default function SettingsPage() { Företag - {hasBankingExtension && BankingPanel && ( - - - Bank (PSD2) - - )} - {NotificationPanel && ( - - - Aviseringar - - )} + + + Bank (PSD2) + + + + Aviseringar + Kalender @@ -436,18 +441,50 @@ export default function SettingsPage() { {/* Banking settings — loaded dynamically from extension */} - {hasBankingExtension && BankingPanel && ( - + + {hasBankingExtension && BankingPanel ? ( - - )} + ) : ( + + + +

Bankintegration (PSD2) är inte aktiverad

+

+ Aktivera tillägget Enable Banking för att koppla ditt bankkonto och automatiskt hämta transaktioner. +

+