diff --git a/src/index.jsx b/src/index.jsx
index 72731f3fd..0164346a1 100644
--- a/src/index.jsx
+++ b/src/index.jsx
@@ -56,6 +56,7 @@ const socialLinks = [
},
];
+
const App = () => (
(
googlePlayUrl="https://play.google.com"
handleAllTrackEvents={() => {}}
socialLinks={socialLinks}
+ supportedLanguages={[
+ {
+ label: 'English',
+ value: 'en',
+ }, {
+ label: 'español',
+ value: 'es-419',
+ },
+ ]}
+ languageForm={{
+ activeLanguage: 'en',
+ screenReaderLabel: 'Choose Language',
+ submitLabel: 'Apply',
+ onLanguageSelected: () => {},
+ }}
/>
);
diff --git a/src/lib/components/SiteFooter/SiteFooter.test.jsx b/src/lib/components/SiteFooter/SiteFooter.test.jsx
index 583671db8..0634085ae 100644
--- a/src/lib/components/SiteFooter/SiteFooter.test.jsx
+++ b/src/lib/components/SiteFooter/SiteFooter.test.jsx
@@ -56,6 +56,23 @@ const socialLinks = [
},
];
+const supportedLanguages = [
+ {
+ label: 'English',
+ value: 'en',
+ }, {
+ label: 'español',
+ value: 'es-419',
+ },
+];
+
+const languageForm = {
+ activeLanguage: 'en',
+ screenReaderLabel: 'Choose Language',
+ submitLabel: 'Apply',
+ onLanguageSelected: () => {},
+};
+
const completeSiteFooterComponent = mockHandleAllTrackEvents =>
(
@@ -72,6 +89,8 @@ const completeSiteFooterComponent = mockHandleAllTrackEvents =>
appleAppStoreUrl="https://store.apple.com"
googlePlayUrl="https://play.google.com"
handleAllTrackEvents={mockHandleAllTrackEvents}
+ supportedLanguages={supportedLanguages}
+ languageForm={languageForm}
/>
);
@@ -101,6 +120,8 @@ describe('', () => {
privacyPolicyUrl="https://www.example.com/privacy-policy"
appleAppStoreUrl="https://store.apple.com"
googlePlayUrl="https://play.google.com"
+ supportedLanguages={supportedLanguages}
+ languageForm={languageForm}
handleAllTrackEvents={jest.fn()}
/>
@@ -124,6 +145,8 @@ describe('', () => {
socialLinks={socialLinks}
appleAppStoreUrl="https://store.apple.com"
googlePlayUrl="https://play.google.com"
+ supportedLanguages={supportedLanguages}
+ languageForm={languageForm}
handleAllTrackEvents={jest.fn()}
showMobileLinks={false}
/>
@@ -131,6 +154,28 @@ describe('', () => {
)).toJSON();
expect(tree).toMatchSnapshot();
});
+
+ it('does not render language selector', () => {
+ const tree = renderer
+ .create((
+
+
+
+ )).toJSON();
+ expect(tree).toMatchSnapshot();
+ });
});
describe('handles analytics', () => {
diff --git a/src/lib/components/SiteFooter/__snapshots__/SiteFooter.test.jsx.snap b/src/lib/components/SiteFooter/__snapshots__/SiteFooter.test.jsx.snap
index c3061505e..9d9031506 100644
--- a/src/lib/components/SiteFooter/__snapshots__/SiteFooter.test.jsx.snap
+++ b/src/lib/components/SiteFooter/__snapshots__/SiteFooter.test.jsx.snap
@@ -1,5 +1,259 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+exports[` renders correctly does not render language selector 1`] = `
+
+`;
+
exports[` renders correctly does not render mobile links 1`] = `
renders correctly does not render mobile links 1`] = `
src="test-file-stub"
/>
+
renders correctly does not render social links 1`] = `
src="test-file-stub"
/>
+
renders correctly renders with social and mobile links 1
src="test-file-stub"
/>
+
0 &&
+ languageForm;
return (
+ {showLanguageSelector &&
+
+ }
{siteName}
@@ -333,6 +374,16 @@ SiteFooter.propTypes = {
showMobileLinks: PropTypes.bool,
appleAppStoreUrl: PropTypes.string,
googlePlayUrl: PropTypes.string,
+ supportedLanguages: PropTypes.arrayOf(PropTypes.shape({
+ label: PropTypes.string.isRequired,
+ value: PropTypes.string.isRequired,
+ })),
+ languageForm: PropTypes.shape({
+ screenReaderLabel: PropTypes.string.isRequired,
+ submitLabel: PropTypes.string.isRequired,
+ onLanguageSelected: PropTypes.func.isRequired,
+ activeLanguage: PropTypes.string,
+ }),
handleAllTrackEvents: PropTypes.func.isRequired,
intl: intlShape.isRequired,
};
@@ -350,6 +401,8 @@ SiteFooter.defaultProps = {
showMobileLinks: true,
appleAppStoreUrl: null,
googlePlayUrl: null,
+ supportedLanguages: [],
+ languageForm: null,
};
export default injectIntl(SiteFooter);