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:
2546
frontend/package-lock.json
generated
2546
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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');
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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('')}
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
Reference in New Issue
Block a user