diff --git a/__tests__/src/selectors/config.test.js b/__tests__/src/selectors/config.test.js index 6719ea48caba44cd50fee91aeef71551789f8852..7d20241c9a3627a50a26c1a00aadfa7a1d52bf88 100644 --- a/__tests__/src/selectors/config.test.js +++ b/__tests__/src/selectors/config.test.js @@ -4,6 +4,7 @@ import { getTheme, getThemeIds, getContainerId, + getThemeDirection, } from '../../../src/state/selectors'; describe('getLanguagesFromConfigWithCurrent', () => { @@ -95,3 +96,14 @@ describe('getContainerId', () => { expect(getContainerId(state)).toEqual('mirador'); }); }); + +describe('getThemeDirection', () => { + it('returns the configured theme direction', () => { + const state = { config: { theme: { direction: 'rtl' } } }; + expect(getThemeDirection(state)).toBe('rtl'); + }); + it('returns ltr as default', () => { + const state = { config: { theme: { } } }; + expect(getThemeDirection(state)).toBe('ltr'); + }); +}); diff --git a/src/state/selectors/config.js b/src/state/selectors/config.js index 6e4079a5801e406b66ac2224037785af0c36e782..6612fceabb4b8442ed2b8f7e5d462040c6c5ef78 100644 --- a/src/state/selectors/config.js +++ b/src/state/selectors/config.js @@ -51,3 +51,8 @@ export const getDefaultView = createSelector( [getConfig], ({ window }) => window && window.defaultView, ); + +export const getThemeDirection = createSelector( + [getConfig], + ({ theme }) => theme.direction || 'ltr', +);