From 24d857e1174fa8831adf05fe10d96424ac6474dd Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Sat, 1 Dec 2018 19:42:26 +0200
Subject: [PATCH] Load images with file-loader, create a component for footer

---
 src/client/components/Footer.js | 60 +++++++++++++++++++++++++++++++++
 src/client/components/Main.js   | 13 +++----
 src/client/containers/MapApp.js | 43 ++---------------------
 webpack.client.common.js        |  6 +---
 4 files changed, 71 insertions(+), 51 deletions(-)
 create mode 100644 src/client/components/Footer.js

diff --git a/src/client/components/Footer.js b/src/client/components/Footer.js
new file mode 100644
index 00000000..26c3adec
--- /dev/null
+++ b/src/client/components/Footer.js
@@ -0,0 +1,60 @@
+import React from 'react';
+import Paper from '@material-ui/core/Paper';
+import PropTypes from 'prop-types';
+import { withStyles } from '@material-ui/core/styles';
+import oxfordLogo from '../img/logos/oxford-logo-white.png';
+import pennLogo from '../img/logos/penn-logo-white.png';
+import cnrsLogo from '../img/logos/cnrs-logo-white-small.png';
+import aaltoLogo from '../img/logos/aalto-logo-white-no-background-small.png';
+
+const logoPadding = 50;
+const logoHeight = 52;
+
+const styles = theme => ({
+  root: {
+    position: 'absolute',
+    borderTop: '4px solid' + theme.palette.primary.main,
+    display: 'flex',
+    alignItems: 'center',
+    justifyContent: 'center',
+    bottom: 0,
+    width: '100%',
+    height: 64,
+    background: theme.palette.primary.main,
+    borderRadius: 0,
+  },
+  oxfordLogo: {
+    //paddingLeft: 24,
+    height: logoHeight
+  },
+  pennLogo: {
+    paddingLeft: logoPadding,
+    height: logoHeight - 8
+  },
+  cnrsLogo: {
+    paddingLeft: logoPadding,
+    height: logoHeight
+  },
+  aaltoLogo: {
+    paddingLeft: logoPadding,
+    height: logoHeight - 10
+  },
+});
+
+const Footer = props => {
+  const { classes } = props;
+  return (
+    <Paper className={classes.root}>
+      <img className={classes.oxfordLogo} src={oxfordLogo} alt='logo' />
+      <img className={classes.pennLogo} src={pennLogo} alt='logo' />
+      <img className={classes.cnrsLogo} src={cnrsLogo} alt='logo' />
+      <img className={classes.aaltoLogo} src={aaltoLogo} alt='logo' />
+    </Paper>
+  );
+};
+
+Footer.propTypes = {
+  classes: PropTypes.object.isRequired
+};
+
+export default withStyles(styles)(Footer);
diff --git a/src/client/components/Main.js b/src/client/components/Main.js
index f2cc9324..14af595a 100644
--- a/src/client/components/Main.js
+++ b/src/client/components/Main.js
@@ -9,6 +9,7 @@ import Grid from '@material-ui/core/Grid';
 import Typography from '@material-ui/core/Typography';
 import { withStyles } from '@material-ui/core/styles';
 import { NavLink } from 'react-router-dom';
+import thumbImage from '../img/thumb.png';
 
 const styles = theme => ({
   root: {
@@ -75,7 +76,7 @@ let Main = props => {
               <CardActionArea component={ManuscriptLink}>
                 <CardMedia
                   className={classes.media}
-                  image="img/thumb.png"
+                  image={thumbImage}
                   title="Manuscripts"
                 />
                 <CardContent className={classes.cardContent}>
@@ -95,7 +96,7 @@ let Main = props => {
               <CardActionArea disabled>
                 <CardMedia
                   className={classes.media}
-                  image="img/thumb.png"
+                  image={thumbImage}
                   title="Manuscripts"
                 />
                 <CardContent className={classes.cardContent}>
@@ -115,7 +116,7 @@ let Main = props => {
               <CardActionArea disabled>
                 <CardMedia
                   className={classes.media}
-                  image="img/thumb.png"
+                  image={thumbImage}
                   title="Manuscripts"
                 />
                 <CardContent className={classes.cardContent}>
@@ -135,7 +136,7 @@ let Main = props => {
               <CardActionArea disabled>
                 <CardMedia
                   className={classes.media}
-                  image="img/thumb.png"
+                  image={thumbImage}
                   title="Manuscripts"
                 />
                 <CardContent className={classes.cardContent}>
@@ -155,7 +156,7 @@ let Main = props => {
               <CardActionArea disabled>
                 <CardMedia
                   className={classes.media}
-                  image="img/thumb.png"
+                  image={thumbImage}
                   title="Manuscripts"
                 />
                 <CardContent className={classes.cardContent}>
@@ -175,7 +176,7 @@ let Main = props => {
               <CardActionArea disabled>
                 <CardMedia
                   className={classes.media}
-                  image="img/thumb.png"
+                  image={thumbImage}
                   title="Manuscripts"
                 />
                 <CardContent className={classes.cardContent}>
diff --git a/src/client/containers/MapApp.js b/src/client/containers/MapApp.js
index 59661f4b..ea95ea2a 100644
--- a/src/client/containers/MapApp.js
+++ b/src/client/containers/MapApp.js
@@ -5,8 +5,8 @@ import { withStyles } from '@material-ui/core/styles';
 import withWidth from '@material-ui/core/withWidth';
 import { withRouter } from 'react-router-dom';
 import compose from 'recompose/compose';
-import Paper from '@material-ui/core/Paper';
 import TopBar from '../components/TopBar';
+import Footer from '../components/Footer';
 import { BrowserRouter as Router, Route } from 'react-router-dom';
 import Manuscripts from '../components/Manuscripts';
 import Main from '../components/Main';
@@ -24,9 +24,6 @@ import {
   closeFacetDialog
 } from '../actions';
 
-const logoPadding = 50;
-const logoHeight = 52;
-
 const styles = theme => ({
   root: {
     flexGrow: 1,
@@ -58,35 +55,7 @@ const styles = theme => ({
     borderLeft: '4px solid' + theme.palette.primary.main,
     //backgroundColor: 'rgb(238, 238, 238)'
     backgroundColor: theme.palette.background.paper
-  },
-  footer: {
-    position: 'absolute',
-    borderTop: '4px solid' + theme.palette.primary.main,
-    display: 'flex',
-    alignItems: 'center',
-    justifyContent: 'center',
-    bottom: 0,
-    width: '100%',
-    height: 64,
-    background: theme.palette.primary.main,
-    borderRadius: 0,
-  },
-  oxfordLogo: {
-    //paddingLeft: 24,
-    height: logoHeight
-  },
-  pennLogo: {
-    paddingLeft: logoPadding,
-    height: logoHeight - 8
-  },
-  cnrsLogo: {
-    paddingLeft: logoPadding,
-    height: logoHeight
-  },
-  aaltoLogo: {
-    paddingLeft: logoPadding,
-    height: logoHeight - 10
-  },
+  }
 });
 
 let MapApp = (props) => {
@@ -105,7 +74,6 @@ let MapApp = (props) => {
                 path="/manuscripts"
                 render={routeProps =>
                   <Manuscripts
-                    map={props.map}
                     search={props.search}
                     facetFilters={props.facet.facetFilters}
                     fetchManuscripts={props.fetchManuscripts}
@@ -126,12 +94,7 @@ let MapApp = (props) => {
           updatePage={props.updatePage}
           closeFacetDialog={props.closeFacetDialog}
         />
-        <Paper className={classes.footer}>
-          <img className={classes.oxfordLogo} src='img/logos/oxford-logo-white.png' alt='Oxford University logo'/>
-          <img className={classes.pennLogo} src='img/logos/penn-logo-white.png' alt='Oxford University logo'/>
-          <img className={classes.cnrsLogo} src='img/logos/cnrs-logo-white-small.png' alt='CNRS logo'/>
-          <img className={classes.aaltoLogo} src='img/logos/aalto-logo-white-no-background-small.png' alt='Aalto University logo'/>
-        </Paper>
+        <Footer />
       </div>
     </div>
   );
diff --git a/webpack.client.common.js b/webpack.client.common.js
index 70ff3ea3..b02c2d73 100644
--- a/webpack.client.common.js
+++ b/webpack.client.common.js
@@ -1,7 +1,6 @@
 const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const CleanWebpackPlugin = require('clean-webpack-plugin');
-const CopyWebpackPlugin = require('copy-webpack-plugin');
 const webpack = require('webpack');
 
 const outputDirectory = 'dist/public';
@@ -18,10 +17,7 @@ module.exports = {
       template: 'src/client/index.html',
     }),
     new webpack.NamedModulesPlugin(),
-    new webpack.HotModuleReplacementPlugin(),
-    new CopyWebpackPlugin([
-      {from: 'src/client/img', to: 'img'}
-    ])
+    new webpack.HotModuleReplacementPlugin()
   ],
   output: {
     filename: '[name].bundle.js',
-- 
GitLab