diff --git a/shop/app/admin/einstellungen/page.tsx b/shop/app/admin/einstellungen/page.tsx
index f6e607e..3ee2874 100644
--- a/shop/app/admin/einstellungen/page.tsx
+++ b/shop/app/admin/einstellungen/page.tsx
@@ -1,4 +1,3 @@
-/* Updated Admin Settings without Partner Management */
/* Admin Settings without Partner Management */
'use client';
@@ -43,425 +42,3 @@ export default function AdminSettings() {
);
}
-
-
-import { useState, useEffect } from 'react';
-import { Switch } from '@/components/ui/switch';
-import { Button } from '@/components/ui/button';
-import { Input } from '@/components/ui/input';
-import { Label } from '@/components/ui/label';
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogFooter,
- DialogHeader,
- DialogTitle,
-} from '@/components/ui/dialog';
-
-export default function AdminSettings() {
- const [demoActive, setDemoActive] = useState(true);
-
- useEffect(() => {
- const state = localStorage.getItem('demo_banner_disabled') !== 'true';
- setDemoActive(state);
- }, []);
-
- const toggleDemo = (checked: boolean) => {
- setDemoActive(checked);
- localStorage.setItem('demo_banner_disabled', (!checked).toString());
- window.dispatchEvent(new Event('storage_demo_changed'));
- };
-
- return (
-
- {/* Page Header */}
-
-
Admin Einstellungen
-
- Verwalten Sie globale Shopeinstellungen.
-
-
-
- {/* Allgemeine Einstellungen */}
-
-
Allgemeine Einstellungen
-
-
-
Demo-Warnmeldungen
-
Schaltet gelbe Banner ein oder aus.
-
-
-
-
-
- );
-}
-
-
-import { useState, useEffect } from 'react';
-import { Switch } from '@/components/ui/switch';
-import { Button } from '@/components/ui/button';
-import { Input } from '@/components/ui/input';
-import { Label } from '@/components/ui/label';
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogFooter,
- DialogHeader,
- DialogTitle,
-} from '@/components/ui/dialog';
-import { getPartners, createUser, updateUserRole } from '@/lib/actions/users';
-import { getPartnerEndCustomers } from '@/lib/actions/end-customers';
-import { Plus, Users, Mail, Eye, CheckCircle, ShieldAlert, Loader2, Ban, Unlock } from 'lucide-react';
-
-export default function AdminSettings() {
- const [demoActive, setDemoActive] = useState(true);
- const [partners, setPartners] = useState([]);
- const [loadingPartners, setLoadingPartners] = useState(true);
-
- // Modal States
- const [isCreateOpen, setIsCreateOpen] = useState(false);
- const [isCustomersOpen, setIsCustomersOpen] = useState(false);
-
- // Selected Partner / Customers State
- const [selectedPartner, setSelectedPartner] = useState(null);
- const [partnerCustomers, setPartnerCustomers] = useState([]);
- const [loadingCustomers, setLoadingCustomers] = useState(false);
-
- // Lock/Unlock State
- const [lockingId, setLockingId] = useState(null);
-
- // Create Partner Form States
- const [email, setEmail] = useState('');
- const [password, setPassword] = useState('');
- const [createError, setCreateError] = useState(null);
- const [creating, setCreating] = useState(false);
-
- useEffect(() => {
- // 1. Demo Banner Status auslesen
- const state = localStorage.getItem('demo_banner_disabled') !== 'true';
- setDemoActive(state);
-
- // 2. Partner laden
- loadPartners();
- }, []);
-
- const loadPartners = async () => {
- setLoadingPartners(true);
- try {
- const data = await getPartners();
- setPartners(data);
- } catch (err) {
- console.error('Fehler beim Laden der Partner:', err);
- } finally {
- setLoadingPartners(false);
- }
- };
-
- const toggleDemo = (checked: boolean) => {
- setDemoActive(checked);
- localStorage.setItem('demo_banner_disabled', (!checked).toString());
- window.dispatchEvent(new Event('storage_demo_changed'));
- };
-
- const handleCreatePartner = async (e: React.FormEvent) => {
- e.preventDefault();
- setCreating(true);
- setCreateError(null);
-
- try {
- await createUser({
- email,
- password: password || undefined,
- email_confirm: true,
- });
- setIsCreateOpen(false);
- setEmail('');
- setPassword('');
- loadPartners();
- } catch (err: any) {
- console.error('Fehler beim Erstellen des Partners:', err);
- setCreateError(err.message || 'Ein Fehler ist aufgetreten.');
- } finally {
- setCreating(false);
- }
- };
-
- const handleToggleLock = async (partner: any) => {
- const newRole = partner.role === 'gesperrt' ? 'partner' : 'gesperrt';
- setLockingId(partner.id);
- try {
- await updateUserRole(partner.id, newRole);
- await loadPartners();
- } catch (err) {
- console.error('Fehler beim Sperren/Entsperren:', err);
- } finally {
- setLockingId(null);
- }
- };
-
- const handleShowCustomers = async (partner: any) => {
- setSelectedPartner(partner);
- setPartnerCustomers([]);
- setLoadingCustomers(true);
- setIsCustomersOpen(true);
-
- try {
- const customers = await getPartnerEndCustomers(partner.id);
- setPartnerCustomers(customers);
- } catch (err) {
- console.error('Fehler beim Laden der Partner-Kunden:', err);
- } finally {
- setLoadingCustomers(false);
- }
- };
-
- return (
-
- {/* Page Header */}
-
-
Admin Einstellungen
-
- Verwalten Sie globale Shopeinstellungen, Partnerkonten und Kundenzuweisungen.
-
-
-
- {/* Allgemeine Einstellungen */}
-
-
Allgemeine Einstellungen
-
-
-
Demo-Warnmeldungen
-
Schaltet gelbe Banner ein oder aus.
-
-
-
-
-
- {/* Partnerverwaltung */}
-
-
-
-
-
Partner-Management
-
-
-
-
- {/* Partner Liste */}
- {loadingPartners ? (
-
-
- Lade Partner...
-
- ) : partners.length === 0 ? (
-
- Keine Partner registriert.
-
- ) : (
-
-
-
-
- | Partner E-Mail |
- Firma |
- Status |
- Erstellt am |
- Aktionen |
-
-
-
- {partners.map((partner) => {
- const isGesperrt = partner.role === 'gesperrt';
- const isLocking = lockingId === partner.id;
- return (
-
- |
-
-
- {partner.email}
-
- |
-
- {partner.company_name || '–'}
- |
-
- {isGesperrt ? (
-
- Gesperrt
-
- ) : (
-
- Aktiv
-
- )}
- |
-
- {partner.created_at ? new Date(partner.created_at).toLocaleDateString('de-DE') : '–'}
- |
-
-
-
-
-
- |
-
- );
- })}
-
-
-
- )}
-
-
- {/* MODAL 1: Neuen Partner erstellen */}
-
-
- {/* MODAL 2: Kundenliste eines Partners anzeigen */}
-
-
- );
-}