fix: revert agent damage — fix svelte-ignore comments, catch var refs, prop mismatches
Lint & Vuln Scan / Go vulnerabilities (push) Successful in 23s
Lint & Vuln Scan / Frontend lint & types (push) Failing after 30s

- Convert HTML comments in script sections to eslint-disable-next-line
- Fix err->_err references in catch blocks across 8 files
- Fix required→_required and onclose→_onclose prop mismatches
- Revert BookingCreateModal.svelte from no-unused-vars agent damage
- Fix broken regex in account page
- Fix .writable (not in Svelte 5 stable) back to +
- Fix NavBar dynamic href links with proper eslint-disable
This commit is contained in:
2026-06-25 16:50:23 +01:00
parent 82e6f75354
commit e0f22e5c5c
25 changed files with 67 additions and 59 deletions
@@ -217,7 +217,11 @@
// state. The backend will split the charge into deposit + non-deposit records
// when appropriate, so this choice mainly controls the button label and amount.
const defaultType = $derived(defaultPaymentType ?? (depositOutstanding ? 'deposit' : 'full'));
let paymentType = $derived.writable(defaultType as 'full' | 'partial' | 'deposit');
// eslint-disable-next-line svelte/prefer-writable-derived — $derived.writable not in Svelte 5 stable
let paymentType = $state<'full' | 'partial' | 'deposit'>('full');
$effect(() => {
paymentType = defaultType as 'full' | 'partial' | 'deposit';
});
let pollingInterval: ReturnType<typeof setInterval> | null = null;
@@ -358,7 +362,7 @@
lockTimer = 300;
}
} catch (_err) {
console.error('Failed to acquire payment lock:', err);
console.error('Failed to acquire payment lock:', _err);
}
}
@@ -373,7 +377,7 @@
}
});
} catch (_err) {
console.error('Failed to release payment lock:', err);
console.error('Failed to release payment lock:', _err);
}
}
@@ -397,7 +401,7 @@
lockAcquired = true;
}
} catch (_err) {
console.error('Failed to renew payment lock:', err);
console.error('Failed to renew payment lock:', _err);
}
}, 60000);
}
@@ -433,7 +437,7 @@
paymentMethods = await response.json();
}
} catch (_err) {
console.error('Failed to fetch payment methods:', err);
console.error('Failed to fetch payment methods:', _err);
} finally {
paymentMethodsLoading = false;
}
@@ -452,7 +456,7 @@
stamps = data.stamps ?? 0;
}
} catch (_err) {
console.error('Failed to fetch loyalty data:', err);
console.error('Failed to fetch loyalty data:', _err);
}
}
@@ -507,7 +511,7 @@
}
} catch (_err) {
status = 'error';
const msg = err instanceof Error ? err.message : 'Failed to apply loyalty discount';
const msg = _err instanceof Error ? _err.message : 'Failed to apply loyalty discount';
error = msg;
toast.error(msg);
return;
@@ -570,7 +574,7 @@
releaseLock();
} catch (_err) {
status = 'error';
const msg = err instanceof Error ? err.message : 'Payment declined';
const msg = _err instanceof Error ? _err.message : 'Payment declined';
error = msg;
toast.error(`${msg}. Please try again or use another card.`);
releaseLock();
@@ -643,7 +647,7 @@
discountPreview = await resp.json();
}
} catch (_err) {
console.error('Failed to fetch discount preview:', err);
console.error('Failed to fetch discount preview:', _err);
}
});