Commit Graph
3 Commits
Author SHA1 Message Date
ajurna 80566e657e **Add continuous reading mode and enhance accessibility in TheComicReader**
- Introduced a continuous reading mode ("scroll"), allowing users to read without pagination.
- Implemented a toggle in the UI to switch between "paged" and "continuous" modes, with preferences saved in `localStorage`.
- Enhanced keyboard navigation by throttling repeated actions and ignoring irrelevant keypresses during form interactions.
- Integrated `IntersectionObserver` to handle lazy-loading of images and dynamically extending rendered content in continuous mode.
- Updated tests to validate both reading modes, ensuring proper state management and observer handling.
- Adjusted animations and transitions for smoother visual feedback in both modes, respecting users' motion-reduction preferences.
2026-10-16 09:30:46 +01:00
ajurna cc557543c5 **Add Vitest support and migrate frontend tests**
- Added Vitest configuration (`vitest.config.mjs`) for frontend unit testing with a `jsdom` environment.
- Migrated and rewrote key frontend tests (`api.test.js`, `comiclist.test.js`, `comicreader.test.js`, `historytable.test.js`, `router.test.js`, `store.test.js`) to Vitest, improving maintainability.
- Removed `tsconfig.json` and related TypeScript loaders from `webpack` configurations (`webpack.dev.js`, `webpack.prod.js`).
- Adjusted `eslint.config.mjs` to support Vitest tests.
- Updated `package-lock.json` to include Vitest, test utilities (`jsdom`, `@vue/test-utils`), and other associated packages.
- Updated Nginx configuration for better compression on assets (`gzip` adjustments).
- Enhanced `entrypoint.sh` to include first-run library indexing (`--if-empty` argument).
- Simplified the `scan_comics` command with a dedicated test for empty database scans.

This transition improves testing workflows and backend/frontend synergy while removing unused TypeScript dependencies.
2026-10-14 10:07:14 +01:00
ajurna 4d0ba750ad Upgrade frontend dependencies and switch ESLint to a flat config
- Runtime majors: vue-router 5, reveal.js 6, fontawesome 7. Checked against the
  code that uses them: no change needed for reveal.js (the default export is
  still a callable factory and every method/option used is still present) or
  fontawesome (all seven registered icons still resolve).
- frontend/src/router/index.js: guards return the redirect instead of calling the
  deprecated next() callback, which works on vue-router 4 and 5.
- Add frontend/eslint.config.mjs because eslint 10 requires a flat config; the
  lint script now runs eslint directly instead of vue-cli-service.
- Drop tooling nothing in the webpack configs uses (@vue/cli-*, jshint,
  html-webpack-plugin, webpack-bundle-analyzer, @babel/core) and delete the dead
  vue.config.js. npm audit 35 -> 5 (all dev-only), --omit=dev is 0.
- frontend/src/views/UserView.vue: the $route watcher no longer declares unused
  params.
2026-10-13 15:57:40 +01:00