diff --git a/src/App.css b/src/App.css index 3e9a3b1..8932011 100644 --- a/src/App.css +++ b/src/App.css @@ -1,41 +1,20 @@ -.App { - text-align: center; +#allform{ + background-image: url('world.jpg'); + background-repeat: no-repeat; + background-size: 100%; + width: 100%; + height: 100%; } -.App-logo { - animation: App-logo-spin infinite 20s linear; - height: 40vmin; -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-header p, -.App-header ul { - font-size: 17px; -} +#form{ + background-color: #DCDCDC; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + padding: 50px; + border: 2px solid black; + font-style: italic; + border-radius: 16px; -.App-header ul { - text-align: left; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} +} \ No newline at end of file diff --git a/src/App.js b/src/App.js index 98d4404..671ad6d 100644 --- a/src/App.js +++ b/src/App.js @@ -1,37 +1,49 @@ -import React, { Component } from 'react'; -import logo from './logo.svg'; +import React from 'react' +import { Field, reduxForm } from 'redux-form' import './App.css'; -const tasks = [ - "Créer un faux écran de login ( pas de vérification ni d'appel, username et password en dur OK) managé par redux - form", - 'Créer une autre page ( appelons la CRUDManager) sur laquelle on arrive après le login', - 'Gérer la persistance du login via redux ( si on recharge après login OK, on arrive sur CRUDMANAGER)', - "CRUDManager doit afficher une liste d'éléments managés par redux. Ces éléments sont l'array data dans le fichier src/data.js", - "CRUDManager doit permettre l'édition de chacun des éléments. On utilisera l'array countries ( dans src/data.js ) pour proposer un choix des pays via un {allpays.map(function(item, i){ + return + })} + + + ) +} +} +export default Selopt; \ No newline at end of file diff --git a/src/Crud.css b/src/Crud.css new file mode 100644 index 0000000..707154f --- /dev/null +++ b/src/Crud.css @@ -0,0 +1,18 @@ +#allist{ + background-image: url('world2.jpg'); + background-repeat: no-repeat; + background-size: 100%; + width: 100%; + height: 100%; +} + +#list{ + margin: 0; + color: white; + list-style: none; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 50px; +} \ No newline at end of file diff --git a/src/configureStore.js b/src/configureStore.js new file mode 100644 index 0000000..b454da3 --- /dev/null +++ b/src/configureStore.js @@ -0,0 +1,12 @@ +import { createStore, applyMiddleware, compose} from 'redux' +import storage from 'redux-persist/es/storage' +import { createLogger } from 'redux-logger' +import reducers from './reducer' +import { persistStore, persistCombineReducers } from 'redux-persist' + +const reducer = persistCombineReducers({key: 'roor', storage}, reducers) +const composeEnhancers = window._REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose +let store = createStore(reducer, {}, composeEnhancers(applyMiddleware(createLogger()))) +let persistor = persistStore(store) + +export { store, persistor } \ No newline at end of file diff --git a/src/data.js b/src/data.js index 57a2508..1d6b806 100644 --- a/src/data.js +++ b/src/data.js @@ -1,59 +1,6 @@ -export const data = [ - { - firstName: 'Jean', - lastName: 'Sans peur', - address: { - streetNumber: 18, - streetName: 'rue des oliviers', - zipCode: '59800', - city: 'Lille', - country: 'France' - } - }, - { - firstName: 'Bernard', - lastName: 'Tapissier', - address: { - streetNumber: 7, - streetName: 'avenue des habitués', - zipCode: '75015', - city: 'Paris', - country: 'France' - } - }, - { - firstName: 'Harry', - lastName: 'Thmétik', - address: { - streetNumber: 42, - streetName: 'rue de la réponse', - zipCode: '42000', - city: 'Pinpon', - country: 'France' - } - }, - { - firstName: 'Hakim', - lastName: 'ButBeCareful', - address: { - streetNumber: 4, - streetName: 'rue de la paix', - zipCode: '77160', - city: 'Provins', - country: 'France' - } - }, - { - firstName: 'Omer', - lastName: 'Ta', - address: { - streetNumber: 1, - streetName: 'rue des corses', - zipCode: '01225', - city: 'Troyes', - country: 'France' - } - } -]; - -export const countries = ['France', 'Belgique']; +const { getNames } = require('country-list'); +const allpays = getNames(); + +const data = ['Bonjour.', "C'était un plaisir", 'de faire ce projet', 'A trés Bientot,', 'Lopes Ivo'] + +export { allpays, data } \ No newline at end of file diff --git a/src/index.js b/src/index.js index 0c5e75d..601efe8 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,16 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import * as serviceWorker from './serviceWorker'; - -ReactDOM.render(, document.getElementById('root')); - -// If you want your app to work offline and load faster, you can change -// unregister() to register() below. Note this comes with some pitfalls. -// Learn more about service workers: http://bit.ly/CRA-PWA -serviceWorker.unregister(); +import React from 'react' +import { render } from 'react-dom' +import { createStore } from 'redux' +import RootReducer from './reducer' +import { connect } from 'react-redux' +import Root from './router' + +const store = createStore(RootReducer) + +render(, document.getElementById('root')) + +const mapStateToProps = (state) => { + return { ...state } +} + +export default connect(mapStateToProps) diff --git a/src/reducer.js b/src/reducer.js new file mode 100644 index 0000000..c8bc067 --- /dev/null +++ b/src/reducer.js @@ -0,0 +1,6 @@ +import { combineReducers } from 'redux'; +import { reducer as formReducer } from 'redux-form'; + +export default combineReducers({ + form: formReducer, +}) \ No newline at end of file diff --git a/src/router.js b/src/router.js new file mode 100644 index 0000000..2708801 --- /dev/null +++ b/src/router.js @@ -0,0 +1,31 @@ +import React from 'react' +import ReactDOM from 'react-dom' +import PropTypes from 'prop-types' +import { PersistGate } from 'redux-persist/lib/integration/react' +import { Route, BrowserRouter } from 'react-router-dom' +import { Provider } from 'react-redux' +import { persistor } from './configureStore' +import App from './App' +import Selopt from './CRUDManager' + + +const Root = ({ store }) => ( +ReactDOM.render(( + + + +
+ + +
+
+
+
+), document.getElementById('root')) +) + +Root.propTypes = { + store: PropTypes.object.isRequired +} + +export default Root \ No newline at end of file diff --git a/src/world.jpg b/src/world.jpg new file mode 100644 index 0000000..26c52a8 Binary files /dev/null and b/src/world.jpg differ diff --git a/src/world2.jpg b/src/world2.jpg new file mode 100644 index 0000000..f957c5f Binary files /dev/null and b/src/world2.jpg differ