diff --git a/package-lock.json b/package-lock.json
index 2b9494837..c8111594c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@devinit/dh-app",
- "version": "3.5.1",
+ "version": "3.5.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index eac79975f..9c541cbb1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@devinit/dh-app",
- "version": "3.5.1",
+ "version": "3.5.2",
"config": {
"API": "http://212.111.41.68:3000/graphql",
"API_DEV": "http://212.111.41.68:9090/graphql",
diff --git a/src/components/molecules/Banner/Banner.tsx b/src/components/molecules/Banner/Banner.tsx
new file mode 100644
index 000000000..7218fa477
--- /dev/null
+++ b/src/components/molecules/Banner/Banner.tsx
@@ -0,0 +1,69 @@
+import * as React from 'react';
+import { css } from 'glamor';
+import { Container, Grid, Message } from 'semantic-ui-react';
+import * as localforage from 'localforage';
+
+const messageStyles = css({
+ textAlign: 'center',
+ marginBottom: '0 !important',
+ backgroundColor: '#fee7c1 !important',
+ color: '#794b02 !important'
+});
+const textStyle = css({
+ fontWeight: 'bold',
+ paddingRight: '3rem !important'
+});
+const closeButtonStyles = css({
+ position: 'absolute',
+ top: '38px',
+ right: '16px',
+ cursor: 'pointer'
+});
+
+class Banner extends React.Component {
+ state = { showBanner: false };
+
+ render() {
+ if (this.state.showBanner) {
+ return (
+
+
+
+
+
+
+
+
+ The Development Data Hub is not currently displaying the most up-to-date data,
+ as it is soon to undergo redevelopment.
+ If you have any data-related questions please email info@devinit.org
+
+
+
+
+
+
+ );
+ }
+
+ return null;
+ }
+
+ componentDidMount() {
+ localforage.getItem('showBanner').then(showBanner => {
+ if (showBanner === null) {
+ this.setState({ showBanner: true });
+ localforage.setItem('showBanner', true);
+ } else {
+ this.setState({ showBanner });
+ }
+ });
+ }
+
+ private onClose = () => {
+ this.setState({ showBanner: false });
+ localforage.setItem('showBanner', false);
+ }
+}
+
+export default Banner;
diff --git a/src/components/molecules/Banner/index.ts b/src/components/molecules/Banner/index.ts
new file mode 100644
index 000000000..bc95f09d6
--- /dev/null
+++ b/src/components/molecules/Banner/index.ts
@@ -0,0 +1 @@
+export * from './Banner';
diff --git a/src/components/molecules/Menu/index.tsx b/src/components/molecules/Menu/index.tsx
index 1b300215c..f6b729c50 100644
--- a/src/components/molecules/Menu/index.tsx
+++ b/src/components/molecules/Menu/index.tsx
@@ -1,3 +1,4 @@
+import { css } from 'glamor';
import glamorous from 'glamorous';
import { red, white } from '../../theme/semantic';
import { Container } from 'semantic-ui-react';
@@ -22,13 +23,15 @@ const MenuContainer = glamorous.div({
height: '57px'
});
+const containerStyles = css({ overflow: 'hidden !important' });
+
export type Props = Menu & {
nextLink?: React.ComponentClass;
};
const menu = (props: Props) =>
-
+
diff --git a/src/components/templates/Generic/index.tsx b/src/components/templates/Generic/index.tsx
index a9df40a89..6c055188e 100644
--- a/src/components/templates/Generic/index.tsx
+++ b/src/components/templates/Generic/index.tsx
@@ -1,8 +1,9 @@
+import Link from 'next/link';
import * as React from 'react';
import { Container } from 'semantic-ui-react';
+import Banner from '../../molecules/Banner/Banner';
import Footer from '../../molecules/Footer';
import Menu from '../../molecules/Menu';
-import Link from 'next/link';
import { menuData } from './data';
interface Props {
@@ -11,11 +12,12 @@ interface Props {
const Generic: React.SFC = ({ children }) =>
-
-
- { children }
-
-
+
+
+
+ { children }
+
+
;
export default Generic;
diff --git a/src/components/templates/Spotlight/index.tsx b/src/components/templates/Spotlight/index.tsx
index d6713a33e..3429cad28 100644
--- a/src/components/templates/Spotlight/index.tsx
+++ b/src/components/templates/Spotlight/index.tsx
@@ -1,5 +1,7 @@
import { capitalize } from '@devinit/prelude/lib/strings';
+import { css } from 'glamor';
import { Div, H4, Img } from 'glamorous';
+import Link from 'next/link';
import router from 'next/router';
import * as React from 'react';
import { Container, Grid, Icon } from 'semantic-ui-react';
@@ -10,11 +12,9 @@ import DynamicMap from '../../organisms/Map/DynamicMap';
import SpotLightNavTabsKe, { SpotlightKeProps } from '../../organisms/NavBarTabs/spotlightKe';
import SpotLightNavTabsUg, { SpotlightUgProps } from '../../organisms/NavBarTabs/spotlightUg';
import { getSpotlightPageData } from '../../pageData';
+import { mediaQueries } from '../../theme';
import { Country } from '../../types';
import Generic from '../Generic';
-import Link from 'next/link';
-import { css } from 'glamor';
-import { mediaQueries } from '../../theme';
const responsiveCountryProfile = css({
[mediaQueries.phone]: {
@@ -41,7 +41,7 @@ export default class Spotlight extends React.Component {
const navState = { state: this.props.state } as SpotlightKeProps | SpotlightUgProps;
return (
-
+
{ this.renderCountryFlag() }