style(app): apply eslint --fix to Tier 1 (Vue templates)

WS-3 session 1b-i Tier 1.

Scope: src/components/**, src/pages/**, src/layouts/**, src/views/**
restricted to *.vue files. Mechanical formatting only — predominantly
vue/html-indent (506 fixes in CrowdListDetailPanel.vue alone),
padding-line-between-statements, antfu/if-newline.

Excludes (per session prompt):
- apps/app/vite.config.ts (Tier 3)
- apps/app/themeConfig.ts (Tier 3)
- apps/app/vitest.config.ts (Tier 3)
- All TypeScript-only files in src/composables, src/lib, src/stores,
  src/plugins, src/types (Tier 2 — separate commit)

Includes session 1a layouts (PortalLayout.vue, PublicLayout.vue) where
2 'lines-around-comment' errors were flagged in the previous 1b-i
pre-flight inspection.

Tests + typecheck verified green post-fix:
- apps/app vitest: 49 passed (unchanged)
- apps/app vue-tsc: clean (unchanged)
- apps/portal vitest: 113 passed (unchanged — not touched)
- backend pest: 1486 passed (unchanged — not touched)

Lint baseline progression:
- Pre-Tier-1: 1451 problems
- Post-Tier-1: 422 problems

Visual smoke status:
- NOT YET SMOKED — Bert to verify before merge. This Claude Code
  session has no UI access; cannot run pnpm dev and click through
  affected routes. The high-traffic candidates are
  CrowdListDetailPanel (506 fixes), AssignPersonDialog (44),
  ShiftDetailPanel (36), and the events / form-failures pages.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-29 11:04:46 +02:00
parent dd8430f600
commit 47bd533179
77 changed files with 1277 additions and 993 deletions

View File

@@ -45,10 +45,9 @@ function resetForm() {
emailCodeSent.value = false
}
watch(isOpen, (open) => {
if (!open) {
watch(isOpen, open => {
if (!open)
resetForm()
}
})
async function sendEmailCode() {
@@ -61,6 +60,7 @@ async function sendEmailCode() {
}
catch (err: unknown) {
const error = err as { response?: { data?: { message?: string } } }
errorMessage.value = error.response?.data?.message ?? 'Kon e-mailcode niet versturen.'
}
finally {
@@ -69,7 +69,8 @@ async function sendEmailCode() {
}
async function submit() {
if (!props.user || !isFormValid.value) return
if (!props.user || !isFormValid.value)
return
isSubmitting.value = true
errorMessage.value = ''
@@ -80,10 +81,12 @@ async function submit() {
mfa_code: mfaCode.value,
mfa_method: mfaMethod.value,
})
// start() triggers page reload — no further action needed
}
catch (err: unknown) {
const error = err as { response?: { data?: { message?: string } } }
errorMessage.value = error.response?.data?.message ?? 'Impersonation mislukt.'
isSubmitting.value = false
}

View File

@@ -22,11 +22,11 @@ function updateCountdown() {
}
const diff = Math.max(0, Math.floor((impersonationStore.expiresAt.getTime() - Date.now()) / 1000))
remainingSeconds.value = diff
if (diff <= 0) {
if (diff <= 0)
handleExpired()
}
}
function handleExpired() {
@@ -43,7 +43,7 @@ async function handleStop() {
await impersonationStore.stop()
}
watch(() => impersonationStore.isImpersonating, (active) => {
watch(() => impersonationStore.isImpersonating, active => {
if (active) {
updateCountdown()
timerInterval = setInterval(updateCountdown, 1000)
@@ -55,9 +55,8 @@ watch(() => impersonationStore.isImpersonating, (active) => {
}, { immediate: true })
onUnmounted(() => {
if (timerInterval) {
if (timerInterval)
clearInterval(timerInterval)
}
})
</script>