Quote and Footer

This commit is contained in:
gbrochar 2020-11-29 18:58:41 +01:00
parent 704d516735
commit 338db250e1
5 changed files with 92 additions and 9 deletions

View File

@ -23,7 +23,7 @@
"dev:client:js": "webpack --config config/webpack.client.dev.js", "dev:client:js": "webpack --config config/webpack.client.dev.js",
"dev:client": "concurrently \"npm:dev:client:types\" \"npm:dev:client:js\"", "dev:client": "concurrently \"npm:dev:client:types\" \"npm:dev:client:js\"",
"dev:start": "mkdir -p dist/server && touch dist/server/bundle.js && nodemon dist/server/bundle.js", "dev:start": "mkdir -p dist/server && touch dist/server/bundle.js && nodemon dist/server/bundle.js",
"dev": "rm -rf dist && concurrently \"npm:dev:server\" \"npm:dev:client\" \"npm:dev:start\"", "dev": "concurrently \"npm:dev:server\" \"npm:dev:client\" \"npm:dev:start\"",
"start": "node dist/server/bundle.js" "start": "node dist/server/bundle.js"
}, },
"author": "gbrochar", "author": "gbrochar",

48
src/client/Footer.tsx Normal file
View File

@ -0,0 +1,48 @@
import React from 'react';
interface Link {
to: string;
text: string;
}
interface Card {
title: string;
description: string;
links: Array<Link>;
}
interface FooterProps {
elements: Array<Card>;
}
/**
* @return {jsx} The root component
*/
export default function Footer(
{elements}: FooterProps) {
return (
<React.Fragment>
<div className='container w-50 py-5 d-flex justify-content-between'>
{elements.map((elem, index) =>
<div
key={index}
id='imagewithdescription'
className='align-top'>
<h3 className='font-weight-bold'>
{elem.title}
</h3>
<p
dangerouslySetInnerHTML=
{{__html: elem.description}}></p>
{elem.links.map((link, i) =>
<div key={i}>
<a href={link.to}>
{link.text}
</a>
<br/>
</div>)}
</div>)}
</div>
</React.Fragment>
);
}

View File

@ -17,7 +17,7 @@ export default function ImagesWithDescription(
{images}: imagesWithDescriptionProps) { {images}: imagesWithDescriptionProps) {
return ( return (
<React.Fragment> <React.Fragment>
<div className='container w-50 d-flex justify-content-between'> <div className='container w-50 py-5 d-flex justify-content-between'>
{images.map((elem, index) => {images.map((elem, index) =>
<div <div
key={index} key={index}

35
src/client/Quote.tsx Normal file
View File

@ -0,0 +1,35 @@
import React from 'react';
interface QuoteProps {
quote: string;
author: string;
description: string;
}
/**
* @return {jsx} The root component
*/
export default function Quote(
{quote, author, description}: QuoteProps) {
const containerStyle = {
backgroundColor: '#f7f7f7',
};
return (
<React.Fragment>
<div
className='container-fluid p-5'
style={containerStyle}>
<div
className='container
w-75 d-flex justify-content-center align-items-center'>
<blockquote className="blockquote mx-5">
<p className="mb-0">{quote}</p>
<footer className="blockquote-footer">{author}</footer>
</blockquote>
<div className='lead w-25 mx-5'>{description}</div>
</div>
</div>
</React.Fragment>
);
}

View File

@ -1,6 +1,8 @@
import React from 'react'; import React from 'react';
import Navbar from './Navbar'; import Navbar from './Navbar';
import Banner from './Banner'; import Banner from './Banner';
import Quote from './Quote';
import Footer from './Footer';
import ImagesWithDescription from './ImagesWithDescription'; import ImagesWithDescription from './ImagesWithDescription';
/** /**
@ -64,8 +66,7 @@ export default function Root() {
ce voyage aurait peu de sens.`, ce voyage aurait peu de sens.`,
}, },
]}/> ]}/>
{/* eslint-disable */} <Quote
{/* <Quote
quote={'Not all those who wander are lost.'} quote={'Not all those who wander are lost.'}
author={'J. R. R. Tolkien'} author={'J. R. R. Tolkien'}
description={` description={`
@ -94,7 +95,7 @@ export default function Root() {
</ul>`, </ul>`,
links: [ links: [
{ {
to: '/contant', to: '/contact',
text: `Autres façons de nous contacter`, text: `Autres façons de nous contacter`,
}, },
], ],
@ -105,16 +106,15 @@ export default function Root() {
:)`, :)`,
links: [ links: [
{ {
to: 'paypal.me/ygarrot', to: 'https://paypal.me/ygarrot',
text: 'Paypal', text: 'Paypal',
}, { }, {
to: 'tipeee.com/curious-roamers', to: 'https://tipeee.com/curious-roamers',
text: 'Tipeee', text: 'Tipeee',
}, },
], ],
}, },
]}/> */} ]}/>
{/* eslint-enable */}
</React.Fragment> </React.Fragment>
); );
} }