From 5811fe8d002ac79728cdfaf62897b3d2c4cb8de2 Mon Sep 17 00:00:00 2001 From: Mattsson <111893710+mattssonn@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:30:50 +0100 Subject: [PATCH] Disabled import functionality for sandbox users (#67) --- app/(dashboard)/import/page.tsx | 216 +++++++++++++++++++------------- 1 file changed, 131 insertions(+), 85 deletions(-) diff --git a/app/(dashboard)/import/page.tsx b/app/(dashboard)/import/page.tsx index c78595cc..430e22a8 100644 --- a/app/(dashboard)/import/page.tsx +++ b/app/(dashboard)/import/page.tsx @@ -5,7 +5,7 @@ import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/com import { Progress } from '@/components/ui/progress' import { Button } from '@/components/ui/button' import { useToast } from '@/components/ui/use-toast' -import { ArrowLeftRight, ArrowRightLeft, FileText, ArrowLeft, Landmark, Loader2 } from 'lucide-react' +import { ArrowLeftRight, ArrowRightLeft, FileText, ArrowLeft, Landmark, Loader2, Info } from 'lucide-react' import { cn } from '@/lib/utils' import { createClient } from '@/lib/supabase/client' import { BankSelector, type Bank } from '@/extensions/general/enable-banking/components/BankSelector' @@ -752,17 +752,28 @@ type ImportMode = null | 'psd2' | 'bank' | 'sie' | 'migration' export default function ImportPage() { const [mode, setMode] = useState(null) const [userId, setUserId] = useState('') + const [isSandbox, setIsSandbox] = useState(false) - // Fetch authenticated user ID for migration wizard + // Fetch authenticated user ID and sandbox status useEffect(() => { const supabase = createClient() supabase.auth.getUser().then(({ data: { user } }) => { - if (user) setUserId(user.id) + if (!user) return + setUserId(user.id) + supabase + .from('company_settings') + .select('is_sandbox') + .eq('user_id', user.id) + .single() + .then(({ data }) => { + if (data?.is_sandbox) setIsSandbox(true) + }) }) }, []) - // Auto-detect OAuth callback or deep-link mode from query params + // Auto-detect OAuth callback or deep-link mode from query params (disabled in sandbox) useEffect(() => { + if (isSandbox) return const params = new URLSearchParams(window.location.search) if (params.get('migration')) { setMode('migration') @@ -772,7 +783,7 @@ export default function ImportPage() { setMode(modeParam as ImportMode) } } - }, []) + }, [isSandbox]) // Extensions are active if compiled in — no runtime toggle check needed const hasBankingExtension = ENABLED_EXTENSION_IDS.has('enable-banking') const hasMigrationExtension = ENABLED_EXTENSION_IDS.has('arcim-migration') @@ -788,103 +799,138 @@ export default function ImportPage() { {mode === null && ( -
- {hasBankingExtension && ( - setMode('psd2')} - onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setMode('psd2') } }} - > - -
- -
-
-

Koppla bank

-

- Anslut ditt bankkonto direkt och synka transaktioner automatiskt via PSD2. -

-
-

- Rekommenderat -

-
-
+ <> + {isSandbox && ( +
+ +

+ Import är inte tillgängligt i sandlådemiljön. Skapa ett konto för att importera data. +

+
)} - setMode('bank')} - onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setMode('bank') } }} - > - -
- -
-
-

Banktransaktioner

-

- Importera kontoutdrag från din bank. Stöder CSV, OFX och de flesta svenska banker. -

-
-

- CSV, OFX, SEB, Swedbank, Handelsbanken, Nordea m.fl. -

-
-
+
+ {hasBankingExtension && ( + { if (!isSandbox) setMode('psd2') }} + onKeyDown={(e) => { if (!isSandbox && (e.key === 'Enter' || e.key === ' ')) { e.preventDefault(); setMode('psd2') } }} + > + +
+ +
+
+

Koppla bank

+

+ Anslut ditt bankkonto direkt och synka transaktioner automatiskt via PSD2. +

+
+

+ Rekommenderat +

+
+
+ )} - setMode('sie')} - onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setMode('sie') } }} - > - -
- -
-
-

Bokföringsdata (SIE)

-

- Importera verifikationer och kontoplan från ett annat bokföringsprogram via SIE-filer. -

-
-

- SIE4-format (.se, .si) -

-
-
- - {hasMigrationExtension === true && ( setMode('migration')} - onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setMode('migration') } }} + tabIndex={isSandbox ? -1 : 0} + aria-disabled={isSandbox} + className={cn( + 'transition-all', + isSandbox + ? 'opacity-50 cursor-not-allowed' + : 'cursor-pointer hover:border-primary/50 active:scale-[0.98]' + )} + onClick={() => { if (!isSandbox) setMode('bank') }} + onKeyDown={(e) => { if (!isSandbox && (e.key === 'Enter' || e.key === ' ')) { e.preventDefault(); setMode('bank') } }} >
- +
-

Migrera från annat system

+

Banktransaktioner

- Flytta bokföring, kunder, leverantörer och fakturor från Fortnox, Visma, Bokio, Björn Lundén eller Briox. + Importera kontoutdrag från din bank. Stöder CSV, OFX och de flesta svenska banker.

- SIE-data, kunder, leverantörer, fakturor + CSV, OFX, SEB, Swedbank, Handelsbanken, Nordea m.fl.

- )} -
+ + { if (!isSandbox) setMode('sie') }} + onKeyDown={(e) => { if (!isSandbox && (e.key === 'Enter' || e.key === ' ')) { e.preventDefault(); setMode('sie') } }} + > + +
+ +
+
+

Bokföringsdata (SIE)

+

+ Importera verifikationer och kontoplan från ett annat bokföringsprogram via SIE-filer. +

+
+

+ SIE4-format (.se, .si) +

+
+
+ + {hasMigrationExtension === true && ( + { if (!isSandbox) setMode('migration') }} + onKeyDown={(e) => { if (!isSandbox && (e.key === 'Enter' || e.key === ' ')) { e.preventDefault(); setMode('migration') } }} + > + +
+ +
+
+

Migrera från annat system

+

+ Flytta bokföring, kunder, leverantörer och fakturor från Fortnox, Visma, Bokio, Björn Lundén eller Briox. +

+
+

+ SIE-data, kunder, leverantörer, fakturor +

+
+
+ )} +
+ )} {mode !== null && (