From a7863c519f572d03002a6769d7ffbefbc62ad800 Mon Sep 17 00:00:00 2001 From: rxf Date: Fri, 6 Mar 2026 13:36:21 +0100 Subject: [PATCH] V 2.0.2 Nun mit Tabs Anzahl in der Liste als const --- app/page.tsx | 83 +++++++++---------------------------- components/AusgabenList.tsx | 4 +- components/TabLayout.tsx | 82 ++++++++++++++++++++++++++++++++++++ package.json | 2 +- 4 files changed, 104 insertions(+), 67 deletions(-) create mode 100644 components/TabLayout.tsx diff --git a/app/page.tsx b/app/page.tsx index db074ec..be831bd 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -4,9 +4,10 @@ import { useState, useEffect } from 'react'; import AusgabenForm from '@/components/AusgabenForm'; import AusgabenList from '@/components/AusgabenList'; import MonatsStatistik from '@/components/MonatsStatistik'; -import LogoutButton from '@/components/LogoutButton'; +import TabLayout from '@/components/TabLayout'; import { AusgabenEntry } from '@/types/ausgaben'; -import packageJson from '@/package.json'; + +const MAX_ENTRIES = 15; export default function Home() { const [activeTab, setActiveTab] = useState(0); // 0 = Haushalt, 1 = Privat @@ -15,9 +16,6 @@ export default function Home() { const [selectedEntry, setSelectedEntry] = useState(null); const [statsRefreshKey, setStatsRefreshKey] = useState(0); - const version = packageJson.version; - const buildDate = process.env.NEXT_PUBLIC_BUILD_DATE || new Date().toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' }); - useEffect(() => { fetchRecentEntries(); setSelectedEntry(null); // Clear selected entry when switching tabs @@ -26,7 +24,7 @@ export default function Home() { const fetchRecentEntries = async () => { setIsLoading(true); try { - const response = await fetch(`/api/ausgaben?limit=20&typ=${activeTab}`, { + const response = await fetch(`/api/ausgaben?limit=${MAX_ENTRIES}&typ=${activeTab}`, { cache: 'no-store', headers: { 'Cache-Control': 'no-cache', @@ -62,65 +60,22 @@ export default function Home() { }; return ( -
-
-
-

Ausgaben - Log

- -
- - {/* Tab Navigation */} -
- - -
+ +
+

Eingabe

+ -
-

Eingabe

- - - - -
-

Letzte 20 Einträge

- {isLoading ? ( -
Lade Daten...
- ) : ( - - )} -
-
+ - {/* Footer */} - -
-
+
+

Letzte {MAX_ENTRIES} Einträge

+ {isLoading ? ( +
Lade Daten...
+ ) : ( + + )} +
+ + ); } diff --git a/components/AusgabenList.tsx b/components/AusgabenList.tsx index 7532ff1..aff61fe 100644 --- a/components/AusgabenList.tsx +++ b/components/AusgabenList.tsx @@ -50,7 +50,7 @@ export default function AusgabenList({ entries, onDelete, onEdit }: AusgabenList Kat. Betrag Wie - Aktion + Aktion @@ -79,7 +79,7 @@ export default function AusgabenList({ entries, onDelete, onEdit }: AusgabenList onClick={() => onEdit(entry)} className="text-blue-600 hover:text-blue-800 px-3 py-1 rounded text-sm mr-2" > - Bearbeiten + Editieren + ); + })} + +
+ +
+ + + {/* Content panel */} +
+ {children} +
+ + + + + + + ); +} diff --git a/package.json b/package.json index 290db41..0f02fbb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ausgaben_next", - "version": "1.2.2", + "version": "2.0.2", "private": true, "scripts": { "dev": "next dev -p 3005",