From c50169de81763ce178bd52443340b8b175e2a5d0 Mon Sep 17 00:00:00 2001 From: Chris Beer <cabeer@stanford.edu> Date: Wed, 13 May 2020 07:57:15 -0700 Subject: [PATCH] Add continuous view to the selector --- __tests__/src/components/WindowViewSettings.test.js | 12 +++++++++--- src/components/WindowViewSettings.js | 9 +++++++++ src/lib/CanvasGroupings.js | 2 +- src/locales/en/translation.json | 1 + src/state/selectors/windows.js | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/__tests__/src/components/WindowViewSettings.test.js b/__tests__/src/components/WindowViewSettings.test.js index 4a7c06a07..b33a2e81d 100644 --- a/__tests__/src/components/WindowViewSettings.test.js +++ b/__tests__/src/components/WindowViewSettings.test.js @@ -23,10 +23,11 @@ describe('WindowViewSettings', () => { const wrapper = createWrapper(); expect(wrapper.find(ListSubheader).length).toBe(1); const labels = wrapper.find(FormControlLabel); - expect(labels.length).toBe(3); + expect(labels.length).toBe(4); expect(labels.at(0).props().value).toBe('single'); expect(labels.at(1).props().value).toBe('book'); - expect(labels.at(2).props().value).toBe('gallery'); + expect(labels.at(2).props().value).toBe('scroll'); + expect(labels.at(3).props().value).toBe('gallery'); }); it('should set the correct label active (by setting the secondary color)', () => { @@ -37,8 +38,11 @@ describe('WindowViewSettings', () => { wrapper = createWrapper({ windowViewType: 'book' }); expect(wrapper.find(FormControlLabel).at(1).props().control.props.color).toEqual('secondary'); - wrapper = createWrapper({ windowViewType: 'gallery' }); + wrapper = createWrapper({ windowViewType: 'scroll' }); expect(wrapper.find(FormControlLabel).at(2).props().control.props.color).toEqual('secondary'); + + wrapper = createWrapper({ windowViewType: 'gallery' }); + expect(wrapper.find(FormControlLabel).at(3).props().control.props.color).toEqual('secondary'); }); it('updates state when the view config selection changes', () => { @@ -49,6 +53,8 @@ describe('WindowViewSettings', () => { wrapper.find(MenuItem).at(1).simulate('click'); expect(setWindowViewType).toHaveBeenCalledWith('xyz', 'book'); wrapper.find(MenuItem).at(2).simulate('click'); + expect(setWindowViewType).toHaveBeenCalledWith('xyz', 'scroll'); + wrapper.find(MenuItem).at(3).simulate('click'); expect(setWindowViewType).toHaveBeenCalledWith('xyz', 'gallery'); }); diff --git a/src/components/WindowViewSettings.js b/src/components/WindowViewSettings.js index 1666c7a8a..92d7116a9 100644 --- a/src/components/WindowViewSettings.js +++ b/src/components/WindowViewSettings.js @@ -84,6 +84,15 @@ export class WindowViewSettings extends Component { labelPlacement="bottom" /> </MenuItem> + <MenuItem className={classes.MenuItem} onClick={() => { this.handleChange('scroll'); handleClose(); }}> + <FormControlLabel + value="scroll" + classes={{ label: windowViewType === 'scroll' ? classes.selectedLabel : classes.label }} + control={<BookViewIcon color={windowViewType === 'scroll' ? 'secondary' : undefined} />} + label={t('scroll')} + labelPlacement="bottom" + /> + </MenuItem> <MenuItem className={classes.MenuItem} onClick={() => { this.handleChange('gallery'); handleClose(); }}> <FormControlLabel value="gallery" diff --git a/src/lib/CanvasGroupings.js b/src/lib/CanvasGroupings.js index 690d72a1e..9939e8622 100644 --- a/src/lib/CanvasGroupings.js +++ b/src/lib/CanvasGroupings.js @@ -29,7 +29,7 @@ export default class CanvasGroupings { if (this._groupings) { // eslint-disable-line no-underscore-dangle return this._groupings; // eslint-disable-line no-underscore-dangle } - if (this.viewType === 'continuous') { + if (this.viewType === 'scroll') { return [this.canvases]; } if (this.viewType !== 'book') { diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 08d855641..b655cb2d5 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -104,6 +104,7 @@ "retry": "Retry", "right": "Right", "rights": "License", + "scroll": "Scroll", "searchInputLabel": "search terms", "searchNextResult": "Next result", "searchNoResults": "No results found", diff --git a/src/state/selectors/windows.js b/src/state/selectors/windows.js index 245fb617c..67c490f87 100644 --- a/src/state/selectors/windows.js +++ b/src/state/selectors/windows.js @@ -88,7 +88,7 @@ export const getWindowViewType = createSelector( ], (window, manifestViewingHint, manifestBehaviors, defaultView) => { const lookup = { - continuous: 'continuous', + continuous: 'scroll', individuals: 'single', paged: 'book', }; -- GitLab