v0.3.2 — Build system: NSIS installer, Wails stubs, TS fixes

- NSIS installer script (Desktop shortcut option, German UI)
- Wails JS binding stubs for standalone frontend build
- TypeScript fixes (DownloadUpdate args, type mismatches)
- PostCSS config fix for Tailwind v3
- App icon (meal plan)
This commit is contained in:
clawd
2026-02-20 10:26:21 +00:00
parent 66e2bb0a74
commit ada620aa64
5 changed files with 2001 additions and 561 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -42,7 +42,7 @@ export function InfoPage() {
setError(null); setError(null);
try { try {
await DownloadUpdate(updateInfo.download_url); await DownloadUpdate();
setDownloadComplete(true); setDownloadComplete(true);
} catch (err) { } catch (err) {
setError(err instanceof Error ? err.message : 'Fehler beim Herunterladen des Updates'); setError(err instanceof Error ? err.message : 'Fehler beim Herunterladen des Updates');

View File

@@ -7,9 +7,9 @@ interface ProductListProps {
products: Product[]; products: Product[];
allergens: Allergen[]; allergens: Allergen[];
additives: Additive[]; additives: Additive[];
onCreateProduct: (data: any) => Promise<void>; onCreateProduct: (data: any) => Promise<any>;
onUpdateProduct: (id: number, data: any) => Promise<void>; onUpdateProduct: (id: number, data: any) => Promise<any>;
onDeleteProduct: (id: number) => Promise<void>; onDeleteProduct: (id: number) => Promise<boolean | void>;
loading?: boolean; loading?: boolean;
} }

View File

@@ -219,7 +219,7 @@ export function WeekPlanner({ year, week, className = '' }: WeekPlannerProps) {
<div class="meal-title">Frühstück</div> <div class="meal-title">Frühstück</div>
${fruehstueckEntries.map(entry => ` ${fruehstueckEntries.map(entry => `
<div class="meal-entry"> <div class="meal-entry">
${entry.product_name || entry.custom_text || 'Eintrag'} ${entry.product?.name || entry.custom_text || 'Eintrag'}
${entry.group_label ? ` (${entry.group_label})` : ''} ${entry.group_label ? ` (${entry.group_label})` : ''}
</div> </div>
`).join('')} `).join('')}
@@ -230,7 +230,7 @@ export function WeekPlanner({ year, week, className = '' }: WeekPlannerProps) {
<div class="meal-title">Vesper</div> <div class="meal-title">Vesper</div>
${vesperEntries.map(entry => ` ${vesperEntries.map(entry => `
<div class="meal-entry"> <div class="meal-entry">
${entry.product_name || entry.custom_text || 'Eintrag'} ${entry.product?.name || entry.custom_text || 'Eintrag'}
${entry.group_label ? ` (${entry.group_label})` : ''} ${entry.group_label ? ` (${entry.group_label})` : ''}
</div> </div>
`).join('')} `).join('')}

View File

@@ -114,7 +114,7 @@ export function useWeekPlan(year: number, week: number) {
groupLabel?: GroupLabel groupLabel?: GroupLabel
): Promise<PlanEntry | null> => { ): Promise<PlanEntry | null> => {
try { try {
const updatedEntry = await UpdatePlanEntry(entryId, productId, customText, groupLabel); const updatedEntry = await UpdatePlanEntry(entryId, 0, '', 0, productId ?? null, customText ?? null, groupLabel ?? null);
// State aktualisieren // State aktualisieren
setWeekPlan(prev => prev ? { setWeekPlan(prev => prev ? {
@@ -134,7 +134,7 @@ export function useWeekPlan(year: number, week: number) {
if (!weekPlan) return false; if (!weekPlan) return false;
try { try {
await SetSpecialDay(weekPlan.id, day, type, label); await SetSpecialDay(weekPlan.id, day, type, label ?? '');
// State aktualisieren // State aktualisieren
const newSpecialDay: SpecialDay = { const newSpecialDay: SpecialDay = {