Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

fix(#323): clear 7 ESLint source errors#325

Closed
rubenvdlinde wants to merge 1 commit into
developmentfrom
fix/323-eslint-source-errors
Closed

fix(#323): clear 7 ESLint source errors#325
rubenvdlinde wants to merge 1 commit into
developmentfrom
fix/323-eslint-source-errors

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Closes #323. The baseline-fix PR (#324) un-blocked ESLint on procest, which surfaced 7 real source-level errors (parsing errors, v-slot scoping, unused vars, duplicate v-else-if). This PR fixes all of them with the smallest possible change per rule.

Lint result: 7 errors -> 0 errors. Warnings are deliberately left untouched (separate cleanup).

Error -> fix mapping

File:line Rule Fix
src/store/modules/bezwaar.js:499 no-unused-vars Remove unused settingsStore + its useSettingsStore import (no other references).
src/views/MyWork.vue:61 vue/no-dupe-v-else-if Change v-else-if="!loading" to v-if="!loading" so the grouped-sections template renders alongside ParafeerInbox. The v-else-if was a copy-paste leftover from commit 5847d05 (when <ParafeerInbox v-if="!loading" /> was inserted into the chain) and the branch could never execute.
src/views/cases/components/CaseTransferDialog.vue:38 vue/valid-v-slot Move <template #actions> out of the inner wrapper <div class=\"case-transfer-dialog\"> so it is a direct child of NcDialog (which is what owns the actions slot).
src/views/cases/components/CreateShareDialog.vue:92 vue/valid-v-slot Same as above - move <template #actions> out of the inner wrapper <div> so it is a direct child of NcDialog.
src/views/cases/components/EmailComposer.vue:49 vue/no-parsing-error The literal '{{' + v + '}}' inside {{ }} confused Vue's template parser. Replaced with a formatVariable(v) method that returns the same string.
src/views/cases/components/EmailComposer.vue:59 vue/no-parsing-error Same as above - second occurrence in the available-variables list.
src/views/settings/components/DurationPicker.vue:31 no-unused-vars Remove unused formatDuration from the named import (kept parseDuration, isValidDuration).

Files touched

  • src/store/modules/bezwaar.js
  • src/views/MyWork.vue
  • src/views/cases/components/CaseTransferDialog.vue
  • src/views/cases/components/CreateShareDialog.vue
  • src/views/cases/components/EmailComposer.vue
  • src/views/settings/components/DurationPicker.vue

Test plan

  • npm ci - clean install OK
  • npm run lint - 7 errors -> 0 errors (13 warnings unchanged, out of scope)
  • npm run build - succeeds (webpack compiled with 9 warnings, same as before)
  • Manual smoke test of MyWork view to confirm grouped sections render now (see note below)

Note on MyWork.vue (small behaviour fix)

The vue/no-dupe-v-else-if fix on MyWork.vue is technically a behaviour change - but it fixes a bug, not introduces one. The v-else-if="!loading" was a dead branch (impossible to satisfy), meaning the grouped sections (Overdue / Today / Upcoming, lines 62-onwards) never rendered under any conditions. With v-if="!loading" they now render whenever the loading state is false, which is clearly the intent based on git history (commit 5847d05 introduced the bug when adding <ParafeerInbox>).

Worth a quick smoke-test before merge to confirm the My Work view now shows its grouped sections. If reviewers prefer to revert just this one hunk and file a follow-up issue, the other 6 fixes are pure no-ops.

- src/store/modules/bezwaar.js:499 (no-unused-vars):
  remove unused settingsStore + its import.
- src/views/MyWork.vue:61 (vue/no-dupe-v-else-if):
  change v-else-if="!loading" to v-if="!loading" so grouped
  sections render alongside ParafeerInbox (the v-else-if was a
  copy-paste leftover from before ParafeerInbox was inserted into
  the chain; the branch could never execute).
- src/views/cases/components/CaseTransferDialog.vue:38 (vue/valid-v-slot):
  move <template #actions> out of the wrapper <div> so it is a
  direct child of NcDialog.
- src/views/cases/components/CreateShareDialog.vue:92 (vue/valid-v-slot):
  same as above — move <template #actions> out of the wrapper
  <div> to be a direct child of NcDialog.
- src/views/cases/components/EmailComposer.vue:49,59 (vue/no-parsing-error):
  the literal '{{' inside {{ }} interpolation confused the
  template parser. Replaced with a formatVariable(v) method that
  returns the same string.
- src/views/settings/components/DurationPicker.vue:31 (no-unused-vars):
  remove unused formatDuration from named import.

Lint goes 7 errors -> 0 errors. Build still succeeds.

Closes #323
@rubenvdlinde

Copy link
Copy Markdown
Contributor Author

Splitting into two PRs per review request: a mechanical-only ESLint fix PR (the 6 no-op changes) and a separate behaviour-restoration PR for MyWork.vue (which needs explicit framing because it un-blocks the dead grouped-sections branch).

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 6a392d4

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 100/100
npm ✅ 407/407
PHPUnit ⏭️
Newman ⏭️
Playwright

Spec coverage: 3% (21 tests / 613 specs)


Quality workflow — 2026-05-10 21:28 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant