diff --git a/src/Vegetable.js b/src/Vegetable.js
index b1ca544..d216ebc 100644
--- a/src/Vegetable.js
+++ b/src/Vegetable.js
@@ -3,40 +3,27 @@ import React, {
} from 'react';
import {
Container,
- Row,
- Col,
Form,
- FormGroup,
Button,
- Label,
- Input,
TabContent,
TabPane,
Nav,
NavItem,
NavLink,
- Carousel,
- CarouselItem,
- CarouselControl,
- CarouselIndicators,
} from 'reactstrap';
import classnames from 'classnames';
import {
FaEdit,
- FaMapMarkerAlt,
- FaFileImage,
} from 'react-icons/fa';
import Navigation from './Navigation';
import Header from './Header';
import API from './Api';
+import VegetableMain from './Vegetable/Main'
+import VegetableCarousel from './Vegetable/Carousel'
+import VegetableMap from './Vegetable/Map'
import './Vegetable.css';
-const Map = {
- width: 734,
- height: 530,
-};
-
class Vegetable extends Component {
constructor(props) {
super(props);
@@ -51,27 +38,17 @@ class Vegetable extends Component {
},
imagePreviewUrl: '',
imagesPreviewUrls: [],
- Map: {
- width: '20px',
- height: '20px',
- },
activeTab: '1',
- activeIndex: 0,
+ availableProperties: []
};
this.getVegetable = this.getVegetable.bind(this);
this.updateVegetable = this.updateVegetable.bind(this);
- this.handleChange = this.handleChange.bind(this);
- this.setMap = this.setMap.bind(this);
- this.onImageChange = this.onImageChange.bind(this);
- this.onPictureChange = this.onPictureChange.bind(this);
+ this.changeMainPicture = this.changeMainPicture.bind(this);
+ this.addPicture = this.addPicture.bind(this);
this.toggle = this.toggle.bind(this);
- this.next = this.next.bind(this);
- this.previous = this.previous.bind(this);
- this.goToIndex = this.goToIndex.bind(this);
- this.onExiting = this.onExiting.bind(this);
- this.onExited = this.onExited.bind(this);
this.postPicture = this.postPicture.bind(this);
+ this.updateValueFromChild = this.updateValueFromChild.bind(this);
this.getVegetable(props.match.params.categoryId, props.match.params.vegetableId);
}
@@ -80,26 +57,11 @@ class Vegetable extends Component {
if (this.state.activeTab !== tab) {
this.setState({
activeTab: tab,
- }, () => {
- this.setMap();
});
}
}
- componentDidMount() {
- window.addEventListener('resize', this.setMap);
- this.setMap();
- }
-
- componentWillUnmount() {
- window.removeEventListener('resize', this.setMap);
- }
-
- handleChange(event) {
- const target = event.target;
- const value = target.type === 'checkbox' ? target.checked : target.value;
- const name = target.name;
-
+ updateValueFromChild(name, value) {
this.setState(prevState => ({
Vegetable: {
...prevState.Vegetable,
@@ -108,51 +70,33 @@ class Vegetable extends Component {
}));
}
- onImageChange(e) {
- e.preventDefault();
-
- const reader = new FileReader();
- const file = e.target.files[0];
-
- reader.onloadend = () => {
- this.setState(prevState => ({
- Vegetable: {
- ...prevState.Vegetable,
- mainPictureImported: file,
- },
- imagePreviewUrl: reader.result,
- }));
- };
-
- reader.readAsDataURL(file);
+ changeMainPicture(file, reader) {
+ this.setState(prevState => ({
+ Vegetable: {
+ ...prevState.Vegetable,
+ mainPictureImported: file,
+ },
+ imagePreviewUrl: reader.result,
+ }));
}
- onPictureChange(e) {
- e.preventDefault();
-
- const reader = new FileReader();
- const file = e.target.files[0];
-
- reader.onloadend = () => {
- this.setState(prevState => ({
- Vegetable: {
- ...prevState.Vegetable,
- Pictures: [
- ...prevState.Vegetable.Pictures,
- file
- ]
- },
- imagesPreviewUrls: [
- ...prevState.imagesPreviewUrls,
- reader.result
- ],
- activeIndex: prevState.imagesPreviewUrls.length
- }));
- };
+ addPicture(file, reader) {
+ this.setState(prevState => ({
+ Vegetable: {
+ ...prevState.Vegetable,
+ Pictures: [
+ ...prevState.Vegetable.Pictures,
+ file
+ ]
+ },
+ imagesPreviewUrls: [
+ ...prevState.imagesPreviewUrls,
+ reader.result
+ ],
+ activeIndex: prevState.imagesPreviewUrls.length
+ }));
this.postPicture(file);
-
- reader.readAsDataURL(file);
}
updateVegetable(event) {
@@ -194,6 +138,19 @@ class Vegetable extends Component {
}
getVegetable(categoryId, vegetableId) {
+ API.get('properties')
+ .then(res => {
+ //availableProperties
+ if (res.status === 200) {
+ this.setState({
+ availableProperties: res.data.rows
+ });
+ }
+ })
+ .catch(e => {
+ alert('Erreur lors de la récupération des types de propriétés');
+ });
+
API.get(`types/${categoryId}/vegetables/${vegetableId}`)
.then((res) => {
if (res.status === 200) {
@@ -222,71 +179,7 @@ class Vegetable extends Component {
});
}
- setMap() {
- const width = document.getElementById('MapContainer').clientWidth;
- let MapWidth = Map.width;
- let MapHeight = Map.height;
-
- if (width < Map.width) {
- MapWidth = width;
- MapHeight = Math.round(Map.height * MapWidth / Map.width);
- }
-
- this.setState({
- Map: {
- width: MapWidth,
- height: MapHeight,
- },
- });
- }
-
- onExiting() {
- this.animating = true;
- }
-
- onExited() {
- this.animating = false;
- }
-
- next() {
- if (this.animating) return;
- const nextIndex = this.state.activeIndex === this.state.imagesPreviewUrls.length - 1 ? 0 : this.state.activeIndex + 1;
- this.setState({
- activeIndex: nextIndex,
- });
- }
-
- previous() {
- if (this.animating) return;
- const nextIndex = this.state.activeIndex === 0 ? this.state.imagesPreviewUrls.length - 1 : this.state.activeIndex - 1;
- this.setState({
- activeIndex: nextIndex,
- });
- }
-
- goToIndex(newIndex) {
- if (this.animating) return;
- this.setState({
- activeIndex: newIndex,
- });
- }
-
render() {
- const {
- activeIndex,
- } = this.state;
- const {
- imagePreviewUrl,
- } = this.state;
- let $imagePreview = null;
- if (imagePreviewUrl) {
- $imagePreview = ();
- } else if (this.state.Vegetable.mainPicture) {
- $imagePreview = (
);
- } else {
- $imagePreview = (