From 7fcfc369cfb039d6d0a1cfbe6d8751a00b33725e Mon Sep 17 00:00:00 2001 From: Jack Reed <phillipjreed@gmail.com> Date: Fri, 20 Dec 2019 14:12:35 -0700 Subject: [PATCH] Better RTL support in gallery mode --- __tests__/src/components/GalleryView.test.js | 12 ++++++++++++ src/components/GalleryView.js | 6 +++++- src/containers/GalleryView.js | 3 ++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/__tests__/src/components/GalleryView.test.js b/__tests__/src/components/GalleryView.test.js index dfee35e03..84a2c03b9 100644 --- a/__tests__/src/components/GalleryView.test.js +++ b/__tests__/src/components/GalleryView.test.js @@ -32,4 +32,16 @@ describe('GalleryView', () => { it('renders gallery items for all canvases', () => { expect(wrapper.find(GalleryViewThumbnail).length).toBe(3); }); + + describe('when viewingDirection="right-to-left"', () => { + beforeEach(() => { + wrapper = createWrapper({ + viewingDirection: 'right-to-left', + }); + }); + + it('sets up Paper to be rtl', () => { + expect(wrapper.find('WithStyles(ForwardRef(Paper))').props().dir).toEqual('rtl'); + }); + }); }); diff --git a/src/components/GalleryView.js b/src/components/GalleryView.js index 25d940b97..3cd865608 100644 --- a/src/components/GalleryView.js +++ b/src/components/GalleryView.js @@ -12,11 +12,13 @@ export class GalleryView extends Component { */ render() { const { - canvases, classes, windowId, + canvases, classes, viewingDirection, windowId, } = this.props; + const htmlDir = viewingDirection === 'right-to-left' ? 'rtl' : 'ltr'; return ( <Paper component="section" + dir={htmlDir} square elevation={0} className={classes.galleryContainer} @@ -39,9 +41,11 @@ export class GalleryView extends Component { GalleryView.propTypes = { canvases: PropTypes.array.isRequired, // eslint-disable-line react/forbid-prop-types classes: PropTypes.objectOf(PropTypes.string), + viewingDirection: PropTypes.string, windowId: PropTypes.string.isRequired, }; GalleryView.defaultProps = { classes: {}, + viewingDirection: '', }; diff --git a/src/containers/GalleryView.js b/src/containers/GalleryView.js index 68d0a83aa..4f7995c68 100644 --- a/src/containers/GalleryView.js +++ b/src/containers/GalleryView.js @@ -3,7 +3,7 @@ import { connect } from 'react-redux'; import { withStyles } from '@material-ui/core/styles'; import { withPlugins } from '../extend/withPlugins'; import { GalleryView } from '../components/GalleryView'; -import { getManifestCanvases } from '../state/selectors'; +import { getManifestCanvases, getManifestViewingDirection } from '../state/selectors'; /** * mapStateToProps - to hook up connect @@ -13,6 +13,7 @@ import { getManifestCanvases } from '../state/selectors'; const mapStateToProps = (state, { windowId }) => ( { canvases: getManifestCanvases(state, { windowId }), + viewingDirection: getManifestViewingDirection(state, { windowId }), } ); -- GitLab