From 9ef8de739336c523f27f34e90fe9d825e20d18e0 Mon Sep 17 00:00:00 2001 From: Collind09 Date: Tue, 2 May 2017 18:56:33 -0500 Subject: [PATCH] State Practice --- src/components/Reviews.js | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/components/Reviews.js diff --git a/src/components/Reviews.js b/src/components/Reviews.js new file mode 100644 index 0000000..28348c6 --- /dev/null +++ b/src/components/Reviews.js @@ -0,0 +1,61 @@ +import React from "react"; + +class Reviews extends React.Component { + constructor(props) { + super(); + this.state = { + visible: false, + }; + + } + render() { + function fillStars(value) { + var arr = []; + for (var i = 0; i < value; i++) { + arr.push( < span className = "glyphicon glyphicon-star" > < /span>) + } + return arr; + }; + let reviewState = this.props.products; + let reviewDiv = ""; + let reviewTag; + if (reviewState.length > 1) { + reviewTag = "Reviews"; + } else { + reviewTag = "Review" + } + + + if (this.state.visible) { + reviewDiv = reviewState.map(function(type, index) { + return ( +
+ +
+

{type.description}

+

{fillStars(type.rating)}

+ +
+ ); + }) + } else { + reviewDiv = ""; + } + + return ( +
+ { + this.setState({ + visible: !this.state.visible + }); + } + } > {reviewTag} < /a> + {reviewDiv} +
+ ); + + } + } + + + export default Reviews; \ No newline at end of file