diff --git a/db.go b/db.go index a313020..1958d37 100644 --- a/db.go +++ b/db.go @@ -29,6 +29,10 @@ func InitDatabase() error { db = database + // SQLite Pragmas setzen + db.MustExec("PRAGMA journal_mode=WAL") + db.MustExec("PRAGMA foreign_keys=ON") + // Schema erstellen if err := createSchema(); err != nil { return fmt.Errorf("failed to create schema: %w", err) diff --git a/frontend/package.json b/frontend/package.json index 6c23523..086ed7b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,19 +9,18 @@ "preview": "vite preview" }, "dependencies": { - "@types/react-router-dom": "^5.3.3", - "autoprefixer": "^10.4.24", - "postcss": "^8.5.6", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^7.13.0", - "tailwindcss": "^4.2.0" + "react-router-dom": "^6.26.0" }, "devDependencies": { "@types/react": "^18.0.17", "@types/react-dom": "^18.0.6", - "@vitejs/plugin-react": "^2.0.1", - "typescript": "^4.6.4", - "vite": "^3.0.7" + "@vitejs/plugin-react": "^4.3.0", + "autoprefixer": "^10.4.24", + "postcss": "^8.5.6", + "tailwindcss": "^3.4.0", + "typescript": "^5.5.0", + "vite": "^5.4.0" } } diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js index e99ebc2..2e7af2b 100644 --- a/frontend/postcss.config.js +++ b/frontend/postcss.config.js @@ -3,4 +3,4 @@ export default { tailwindcss: {}, autoprefixer: {}, }, -} \ No newline at end of file +} diff --git a/frontend/src/components/AdditivePicker.tsx b/frontend/src/components/AdditivePicker.tsx index f5b66fa..e01d5e2 100644 --- a/frontend/src/components/AdditivePicker.tsx +++ b/frontend/src/components/AdditivePicker.tsx @@ -7,33 +7,8 @@ interface AdditivePickerProps { className?: string; } -// Deutsche Namen für häufige Zusatzstoffe (E-Nummern) -const ADDITIVE_NAMES: Record = { - '1': 'Farbstoff', - '2': 'Konservierungsstoff', - '3': 'Antioxidationsmittel', - '4': 'Geschmacksverstärker', - '5': 'Geschwefelt', - '6': 'Geschwärzt', - '7': 'Gewachst', - '8': 'Phosphat', - '9': 'Süßungsmittel', - '10': 'Phenylalaninquelle', - '11': 'Koffeinhaltig', - '12': 'Chininhaltig', - '13': 'Alkoholhaltig', - '14': 'Nitritpökelsalz', - '15': 'Milchsäure', - '16': 'Citronensäure', - '17': 'Ascorbinsäure', - '18': 'Tocopherol', - '19': 'Lecithin', - '20': 'Johannisbrotkernmehl', - '21': 'Guarkernmehl', - '22': 'Xanthan', - '23': 'Carrageen', - '24': 'Agar' -}; +// Die Zusatzstoffe kommen direkt aus der DB mit id + name, +// daher wird hier kein separates Mapping benötigt. export function AdditivePicker({ additives, selectedIds, onChange, className = '' }: AdditivePickerProps) { const handleToggle = (additiveId: string) => { @@ -68,7 +43,7 @@ export function AdditivePicker({ additives, selectedIds, onChange, className = ' > {sortedAdditives.map(additive => { const isSelected = selectedIds.includes(additive.id); - const displayName = ADDITIVE_NAMES[additive.id] || additive.name; + const displayName = additive.name; return (