style: auto-format codebase with Prettier

Applied formatting to 1487+ files using pnpm format:write
  - TypeScript/JavaScript files
  - Svelte components
  - Astro pages
  - JSON configs
  - Markdown docs

  13 files still need manual review (Astro JSX comments)
This commit is contained in:
Wuesteon 2025-11-27 18:33:16 +01:00
parent 0241f5554c
commit d36b321d9d
3952 changed files with 661498 additions and 739751 deletions

View file

@ -13,6 +13,7 @@ Alle **Quick Wins** (< 30min each) wurden erfolgreich durchgeführt!
**Problem**: `generate.tsx:334` - Verwendung von `setShowBatchProgress` ohne Deklaration
**Lösung**:
```typescript
// Hinzugefügt in generate.tsx:59
const [showBatchProgress, setShowBatchProgress] = useState(false);
@ -33,6 +34,7 @@ const [showBatchProgress, setShowBatchProgress] = useState(false);
### Neue Datei: `utils/logger.ts`
Features:
- **Development vs Production**: Logs nur in Dev-Mode
- **Verschiedene Log-Levels**: `debug`, `info`, `warn`, `error`, `success`
- **Performance-Logger**: `perfLogger.start()` / `perfLogger.end()`
@ -40,12 +42,14 @@ Features:
- **Vorbereitet für Sentry**: TODO-Marker für Integration
### Migrierte Dateien:
1. ✅ `services/imageGeneration.ts` - Vollständig migriert
2. ✅ `store/modelStore.ts` - Vollständig migriert
3. ✅ `contexts/AuthContext.tsx` - Vollständig migriert
4. ✅ `app/_layout.tsx` - Vollständig migriert
### Beispiel:
```typescript
// Vorher
console.log('Loading models');
@ -66,17 +70,20 @@ logger.error('Error:', error);
**Gelöschte Imports**:
### `app/(tabs)/generate.tsx`
- ❌ `Pressable` (nicht verwendet)
- ❌ `Ionicons` (nicht verwendet)
- ✅ Unused state `showBatchProgress` entfernt
### `app/(tabs)/profile.tsx`
- ❌ `ViewStyle` (nicht verwendet)
- ❌ `TextStyle` (nicht verwendet)
- ❌ `router` (nicht verwendet)
- ✅ Unused state `loading` entfernt
### `app/(tabs)/index.tsx`
- ❌ `TextStyle` (nicht verwendet)
- ✅ Unused styles entfernt:
- `tagFilterLabelStyle`
@ -91,6 +98,7 @@ logger.error('Error:', error);
**Befehl**: `npm run format`
**Ergebnisse**:
- ✅ Code automatisch formatiert (Prettier)
- ✅ Auto-fixable ESLint-Regeln angewendet
- ✅ Konsistente Code-Formatierung
@ -98,11 +106,13 @@ logger.error('Error:', error);
### Verbleibende Warnungen (nicht kritisch):
**React Hooks Dependencies** (6 Warnungen):
- `useEffect` dependency arrays könnten erweitert werden
- Nicht kritisch, da bestehende Logik korrekt funktioniert
- Kann bei nächstem Refactoring behoben werden
**Sonstige** (5 Warnungen):
- Duplicate props in `explore.tsx:501` - sollte geprüft werden
- `documentDirectory` Import-Problem in `image/[id].tsx` - FileSystem API
@ -111,10 +121,12 @@ logger.error('Error:', error);
## 📊 Statistik
### Dateien erstellt
- ✅ `utils/logger.ts` (85 Zeilen)
- ✅ `QUICK_WINS.md` (diese Datei)
### Dateien geändert
- ✅ `services/imageGeneration.ts` - Logger integriert
- ✅ `store/modelStore.ts` - Logger integriert
- ✅ `contexts/AuthContext.tsx` - Logger integriert
@ -124,12 +136,14 @@ logger.error('Error:', error);
- ✅ `app/(tabs)/index.tsx` - Imports + unused styles gefixt
### Gelöste Probleme
- ✅ 1 TypeScript-Fehler (fehlende Variable)
- ✅ ~40 console.log Statements ersetzt
- ✅ 12 ESLint-Warnungen behoben
- ✅ 8 unused Imports entfernt
### Zeit benötigt
- ⏱️ **~25 Minuten** (unter dem 30min-Ziel!)
---
@ -137,12 +151,14 @@ logger.error('Error:', error);
## 🎯 Verbesserungen
### Code Quality
- **Type Safety**: ✅ Keine TypeScript-Fehler mehr
- **Logging**: ✅ Production-ready Logger-System
- **Clean Code**: ✅ Keine ungenutzten Imports
- **Formatting**: ✅ Konsistente Formatierung
### Production Readiness
- ✅ Logs werden nur in Development angezeigt
- ✅ Error-Tracking bereit für Sentry-Integration
- ✅ Performance-Logging vorbereitet
@ -153,13 +169,15 @@ logger.error('Error:', error);
## 🚀 Nächste Schritte
### Sofort möglich (bereits vorbereitet)
1. **Sentry Integration**
```typescript
// In utils/logger.ts - Einfach auskommentieren
error: (...args: any[]) => {
console.error('[ERROR]', ...args);
// Sentry.captureException(args[0]); // ✅ Aktivieren
}
console.error('[ERROR]', ...args);
// Sentry.captureException(args[0]); // ✅ Aktivieren
};
```
2. **Verbleibende console.logs migrieren**
@ -169,6 +187,7 @@ logger.error('Error:', error);
- Geschätzte Zeit: 10 min
### Empfohlen (nächster Schritt)
3. **React Hooks Dependencies fixen**
- 6 useEffect-Warnungen
- Meistens: `// eslint-disable-next-line react-hooks/exhaustive-deps` hinzufügen
@ -218,6 +237,7 @@ networkLogger.error('/api/generate', error);
## ✨ Fazit
Alle **Quick Wins** erfolgreich abgeschlossen:
- ✅ TypeScript-Fehler behoben
- ✅ Logger-System implementiert
- ✅ Console.logs in kritischen Dateien migriert

View file

@ -9,13 +9,14 @@ Dieses Dokument fasst die durchgeführten Refactorings zusammen (Datum: 2025-10-
**Problem**: Die Funktion `createBatch` wurde in `app/(tabs)/generate.tsx` verwendet, war aber nicht aus dem Store importiert.
**Lösung**: Import aus `useBatchStore()` hinzugefügt:
```typescript
const {
isBatchModalOpen,
openBatchModal,
closeBatchModal,
activeBatches,
createBatch // ✅ Hinzugefügt
isBatchModalOpen,
openBatchModal,
closeBatchModal,
activeBatches,
createBatch, // ✅ Hinzugefügt
} = useBatchStore();
```
@ -38,6 +39,7 @@ const {
**Problem**: Keine React Error Boundaries im Projekt vorhanden. Bei Fehlern würde die gesamte App abstürzen ohne Feedback an den User.
**Lösung**:
- Neue `ErrorBoundary` Komponente erstellt mit:
- Schönem Fehler-UI
- "Erneut versuchen" Button
@ -52,6 +54,7 @@ const {
**Geänderte Datei**: `app/_layout.tsx`
**Features**:
- ✅ Catch React-Fehler auf höchster Ebene
- ✅ Zeigt benutzerfreundliche Fehleranzeige
- ✅ Reset-Funktion zum erneuten Versuchen
@ -63,6 +66,7 @@ const {
### 4. Constants zentralisieren
**Problem**: Magic Numbers und Konstanten waren über verschiedene Dateien verstreut:
- `PAGE_SIZE = 20` in `index.tsx`
- `PAGE_SIZE = 30` in `explore.tsx`
- `TAB_BAR_HEIGHT = 49` in `explore.tsx`
@ -71,38 +75,45 @@ const {
**Lösung**: Drei neue Konstanten-Dateien erstellt:
#### `constants/pagination.ts`
```typescript
export const PAGINATION = {
GALLERY_PAGE_SIZE: 20,
EXPLORE_PAGE_SIZE: 30,
INITIAL_LOAD: 20,
LOAD_MORE_THRESHOLD: 0.5,
GALLERY_PAGE_SIZE: 20,
EXPLORE_PAGE_SIZE: 30,
INITIAL_LOAD: 20,
LOAD_MORE_THRESHOLD: 0.5,
} as const;
```
#### `constants/layout.ts`
```typescript
export const LAYOUT = {
TAB_BAR_HEIGHT: 49,
QUICK_GENERATE_BAR_HEIGHT: 60,
FILTER_BAR_HEIGHT: 50,
PADDING: {
xs: 4, sm: 8, md: 16, lg: 24, xl: 32,
},
GRID: {
COLUMN_SPACING: 48,
COLUMNS: 2,
},
TAB_BAR_HEIGHT: 49,
QUICK_GENERATE_BAR_HEIGHT: 60,
FILTER_BAR_HEIGHT: 50,
PADDING: {
xs: 4,
sm: 8,
md: 16,
lg: 24,
xl: 32,
},
GRID: {
COLUMN_SPACING: 48,
COLUMNS: 2,
},
} as const;
export const ANIMATION = {
SHORT: 150,
MEDIUM: 250,
LONG: 350,
SHORT: 150,
MEDIUM: 250,
LONG: 350,
} as const;
```
#### `constants/index.ts`
```typescript
export * from './colors';
export * from './layout';
@ -110,10 +121,12 @@ export * from './pagination';
```
**Geänderte Dateien**:
- `app/(tabs)/index.tsx` - Verwendet jetzt `PAGINATION` und `LAYOUT`
- `app/(tabs)/explore.tsx` - Verwendet jetzt `PAGINATION`, `LAYOUT` und `ANIMATION`
**Vorteile**:
- ✅ Single source of truth für alle Konstanten
- ✅ Einfachere Wartung
- ✅ Type-safe mit `as const`
@ -127,6 +140,7 @@ export * from './pagination';
### ESLint Warnings behoben
**Behobene Warnings**:
1. ✅ Doppelte Imports von `react-native-safe-area-context` in `explore.tsx`
2. ✅ Ungenutzte Variable `Ionicons` in `index.tsx`
3. ✅ Ungenutzte Variablen in `generate.tsx`: