diff --git a/app/page.tsx b/app/page.tsx index 5fae692..3710608 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -6,7 +6,8 @@ import WerteList from '@/components/WerteList'; import { WerteEntry } from '@/types/werte'; import TabLayout from '@/components/TabLayout'; -const MAX_ENTRIES = 5 +const MAX_ENTRIES = 15; +const MOBILE_ENTRIES = 5; export default function Home() { const [entries, setEntries] = useState([]); @@ -87,11 +88,13 @@ export default function Home() {
-

Letzte {MAX_ENTRIES} Einträge

+

+ Letzte {MOBILE_ENTRIES}{MAX_ENTRIES} Einträge +

{isLoading ? (
Lade Daten...
) : ( - + )}
diff --git a/components/WerteForm.tsx b/components/WerteForm.tsx index 371580c..995cc4e 100644 --- a/components/WerteForm.tsx +++ b/components/WerteForm.tsx @@ -144,6 +144,12 @@ export default function WerteForm({ onSuccess, selectedEntry }: WerteFormProps) const inputClass = "w-full min-w-0 px-2 py-1 text-sm rounded border-2 border-gray-400 bg-white focus:border-blue-500 focus:outline-none"; const numberInputClass = `${inputClass} [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`; + // Datum/Zeit/Zucker: schmaler, damit sie bei Tablet-Hochformat (sm:) und schmalem Smartphone nicht überlappen bzw. aus dem Rahmen ragen. + // py-1.5 statt py-1 gleicht die geringere Zeilenhöhe von text-xs aus, damit die Felder gleich hoch wie die übrigen (text-sm) Felder bleiben. + const compactInputClass = "w-full min-w-0 px-1 py-1.5 text-xs rounded border-2 border-gray-400 bg-white focus:border-blue-500 focus:outline-none"; + const compactNumberInputClass = `${compactInputClass} [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`; + // Datum/Zeit: nochmal 10px schmaler als die übrigen kompakten Felder. + const dateTimeInputClass = "w-[calc(100%-10px)] min-w-0 px-1 py-1.5 text-xs rounded border-2 border-gray-400 bg-white focus:border-blue-500 focus:outline-none"; return (
@@ -161,7 +167,7 @@ export default function WerteForm({ onSuccess, selectedEntry }: WerteFormProps) handleDateChange(e.target.value)} required @@ -174,7 +180,7 @@ export default function WerteForm({ onSuccess, selectedEntry }: WerteFormProps) setFormData(prev => ({ ...prev, Zeit: e.target.value }))} required @@ -187,7 +193,7 @@ export default function WerteForm({ onSuccess, selectedEntry }: WerteFormProps) void; onEdit?: (entry: WerteEntry) => void; + mobileLimit?: number; } function ConfirmDialog({ @@ -39,7 +40,7 @@ function ConfirmDialog({ ); } -export default function WerteList({ entries, onDelete, onEdit }: WerteListProps) { +export default function WerteList({ entries, onDelete, onEdit, mobileLimit }: WerteListProps) { const [confirmId, setConfirmId] = useState(null); const formatValue = (value: number | string | null | undefined) => { if (value === null || value === undefined || value === '' || value === '0' || value === '0.0') { @@ -170,7 +171,7 @@ export default function WerteList({ entries, onDelete, onEdit }: WerteListProps)
- {entries.map((entry, index) => ( + {(mobileLimit ? entries.slice(0, mobileLimit) : entries).map((entry, index) => (