mirror of
https://github.com/ajurna/cbwebreader.git
synced 2026-11-02 10:36:55 +00:00
**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.
This commit is contained in:
1 parent
494b64621e
commit
80566e657e
6 files changed
+647
-92
No files matched your search
@@ -40,6 +40,30 @@ describe('session state', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('reader mode', () => {
|
||||
it('starts in paged mode when nothing is stored', async () => {
|
||||
vi.resetModules()
|
||||
const fresh = (await import('@/store')).default
|
||||
|
||||
expect(fresh.state.reader_mode).toBe('paged')
|
||||
})
|
||||
|
||||
it('keeps the chosen mode in localStorage', () => {
|
||||
store.commit('setReaderMode', 'scroll')
|
||||
|
||||
expect(store.state.reader_mode).toBe('scroll')
|
||||
expect(localStorage.getItem('reader_mode')).toBe('scroll')
|
||||
})
|
||||
|
||||
it('ignores a mode it does not recognise', () => {
|
||||
store.commit('setReaderMode', 'scroll')
|
||||
store.commit('setReaderMode', 'banana')
|
||||
|
||||
expect(store.state.reader_mode).toBe('scroll')
|
||||
expect(localStorage.getItem('reader_mode')).toBe('scroll')
|
||||
})
|
||||
})
|
||||
|
||||
describe('restoreSession', () => {
|
||||
it('refreshes the stored profile from the cookie session', async () => {
|
||||
store.commit('updateUser', { id: 1, is_superuser: false })
|
||||
|
||||
Reference in new issue
Block a user