Login-/Session-/Passkey-Logik vollständig entfernen
Die App läuft künftig nur noch lokal, daher ist Anmeldung nicht mehr nötig: Proxy-Middleware, Login-Seite, Session-Handling, Passkey/WebAuthn (inkl. DB-Tabelle ausgaben_passkeys), Logout-Button und der Passwort-Hash- Generator (scripts/generate-password.js) entfallen. Der Einstellungen-Tab enthielt ausschließlich Passkey-Verwaltung und wurde daher ebenfalls entfernt. Nicht mehr benötigte Abhängigkeiten (@simplewebauthn/*, bcryptjs, jose) sowie die zugehörigen Env-Variablen (AUTH_USERS, AUTH_SECRET, AUSGABEN_RP_*) wurden aus package.json, Docker-Compose- Dateien und Dokumentation gestrichen. AUTH_README.md komplett entfernt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+18
-28
@@ -1,7 +1,6 @@
|
||||
'use client';
|
||||
|
||||
import { ReactNode } from 'react';
|
||||
import LogoutButton from '@/components/LogoutButton';
|
||||
import packageJson from '@/package.json';
|
||||
|
||||
interface Tab {
|
||||
@@ -9,9 +8,6 @@ interface Tab {
|
||||
index: number;
|
||||
}
|
||||
|
||||
/** Tab-Index der Einstellungen (0/1 sind die Ausgaben-Typen Haushalt/Privat). */
|
||||
export const SETTINGS_TAB = 2;
|
||||
|
||||
interface TabLayoutProps {
|
||||
children: ReactNode;
|
||||
activeTab: number;
|
||||
@@ -21,7 +17,6 @@ interface TabLayoutProps {
|
||||
const TABS: Tab[] = [
|
||||
{ label: 'Haushalt', index: 0 },
|
||||
{ label: 'Privat', index: 1 },
|
||||
{ label: 'Einstellungen', index: SETTINGS_TAB },
|
||||
];
|
||||
|
||||
export default function TabLayout({ children, activeTab, onTabChange }: TabLayoutProps) {
|
||||
@@ -42,29 +37,24 @@ export default function TabLayout({ children, activeTab, onTabChange }: TabLayou
|
||||
<div className="max-w-6xl mx-auto">
|
||||
|
||||
{/* Tab bar */}
|
||||
<div className="flex justify-between items-end">
|
||||
<div className="flex">
|
||||
{TABS.map(tab => {
|
||||
const isActive = activeTab === tab.index;
|
||||
return (
|
||||
<button
|
||||
key={tab.index}
|
||||
onClick={() => onTabChange(tab.index)}
|
||||
className="px-6 py-2 text-sm font-semibold border-t-2 border-l-2 border-r-2 rounded-tl-lg rounded-tr-lg mr-1 transition-colors"
|
||||
style={
|
||||
isActive
|
||||
? { backgroundColor: '#FFFFDD', color: '#000000', borderColor: '#000000', borderBottom: '2px solid #FFFFDD', marginBottom: '-2px', position: 'relative', zIndex: 10 }
|
||||
: { backgroundColor: '#85B7D7', color: '#374151', borderColor: '#000000' }
|
||||
}
|
||||
>
|
||||
{tab.label}
|
||||
</button>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
<div className="pb-1">
|
||||
<LogoutButton className="px-4 py-2 bg-red-600 hover:bg-red-700 text-white text-sm rounded-lg shadow-md" />
|
||||
</div>
|
||||
<div className="flex items-end">
|
||||
{TABS.map(tab => {
|
||||
const isActive = activeTab === tab.index;
|
||||
return (
|
||||
<button
|
||||
key={tab.index}
|
||||
onClick={() => onTabChange(tab.index)}
|
||||
className="px-6 py-2 text-sm font-semibold border-t-2 border-l-2 border-r-2 rounded-tl-lg rounded-tr-lg mr-1 transition-colors"
|
||||
style={
|
||||
isActive
|
||||
? { backgroundColor: '#FFFFDD', color: '#000000', borderColor: '#000000', borderBottom: '2px solid #FFFFDD', marginBottom: '-2px', position: 'relative', zIndex: 10 }
|
||||
: { backgroundColor: '#85B7D7', color: '#374151', borderColor: '#000000' }
|
||||
}
|
||||
>
|
||||
{tab.label}
|
||||
</button>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
|
||||
{/* Content panel */}
|
||||
|
||||
Reference in New Issue
Block a user