diff --git a/.phase3-state.json b/.phase3-state.json index c5c2fda..91983a1 100644 --- a/.phase3-state.json +++ b/.phase3-state.json @@ -1,7 +1,8 @@ { "completed_features": [ - "toast-notifications" + "toast-notifications", + "logout-everywhere" ], - "current_feature": "logout-everywhere", + "current_feature": "empty-loading-states", "started_at": "2026-05-23T04:57:10.921624" } \ No newline at end of file diff --git a/GENERATION_LOG.md b/GENERATION_LOG.md index a05d636..288054d 100644 --- a/GENERATION_LOG.md +++ b/GENERATION_LOG.md @@ -372,3 +372,15 @@ src/routes/customers.ts(22,36): error TS7006: Parameter - `04:57:46` **INFO** wrote 1961 chars in 16.1s (attempt 1) - `04:57:46` **INFO** Running tsc --noEmit on api… - `04:57:47` **INFO** tsc clean ✓ +- `04:57:47` **INFO** Committed feature logout-everywhere +- `04:57:47` **INFO** Pushed: rc=0 + +## Phase-3 Feature: empty-loading-states (2026-05-23 04:57:47) + +- `04:57:47` **INFO** Description: Bessere Loading- und Empty-States in allen List-Pages +- `04:57:47` **INFO** Generating apps/web/src/components/EmptyState.tsx (Reusable EmptyState-Komponente. Props: title (string), description (st…) +- `04:57:56` **INFO** wrote 910 chars in 8.4s (attempt 1) +- `04:57:56` **INFO** Generating apps/web/src/components/LoadingSpinner.tsx (Reusable LoadingSpinner. Props: label? (string, default 'Lädt…'). Tail…) +- `04:58:00` **INFO** wrote 453 chars in 4.2s (attempt 1) +- `04:58:00` **INFO** Running tsc --noEmit on api… +- `04:58:01` **INFO** tsc clean ✓ diff --git a/apps/web/src/components/EmptyState.tsx b/apps/web/src/components/EmptyState.tsx new file mode 100644 index 0000000..4833b30 --- /dev/null +++ b/apps/web/src/components/EmptyState.tsx @@ -0,0 +1,34 @@ +import React from 'react'; + +interface EmptyStateProps { + title: string; + description: string; + action?: { + label: string; + onClick: () => void; + }; +} + +export default function EmptyState({ title, description, action }: EmptyStateProps) { + return ( +
+
+ 📋 +
+

+ {title} +

+

+ {description} +

+ {action && ( + + )} +
+ ); +} \ No newline at end of file diff --git a/apps/web/src/components/LoadingSpinner.tsx b/apps/web/src/components/LoadingSpinner.tsx new file mode 100644 index 0000000..261a2e6 --- /dev/null +++ b/apps/web/src/components/LoadingSpinner.tsx @@ -0,0 +1,14 @@ +import React from 'react'; + +interface LoadingSpinnerProps { + label?: string; +} + +export default function LoadingSpinner({ label = 'Lädt…' }: LoadingSpinnerProps) { + return ( +
+
+ {label && {label}} +
+ ); +} \ No newline at end of file