const dom = React.createElement;
const LABEL = 0,
TAG = 1;
const Tag = (label, key, className) => (
{label}
);
const Product = (product, withPrice) => (
{ product.name }
{ product.shortDesc || product.fullDesc}
{
product.ph && Tag(`PH ${product.ph}`, null, 'is-ph')
}
{
product.actives.map(a => Tag(a))
}
$
{product.variants[0].sellPrice}
00
Cont. {product.variants[0].content}
);
const ProductList = (products, categories) => (
{
categories.map(category => (
{category[LABEL]}
|
{
products[category[LABEL]].map(product => (
|
{ Product(product) }
|
))
}
))
}
);
class VademecumDomiciliario extends React.Component {
constructor(props) {
super(props);
this.state = {
categories: [
[ "Higiene", "higiene" ],
[ "Ácido Hialurónico", "acido-hialuronico" ],
[ "Corporales", "corporales" ],
[ "Hombres", "hombres" ],
[ "Protección Intensiva", "proteccion-intensiva" ],
[ "Monodosis", "monodosis" ],
[ "Protección Solar", "proteccion-solar" ]
],
products: null,
}
}
componentDidMount() {
fetch('data/products-by-category.json')
.then(response => response.json())
.then(data => {
const categories = Object.keys(data);
return categories.reduce((products, categoryName) => {
const filtered = data[categoryName].filter(product => {
const valid = product.variants.filter(v => v.code < 2000);
return valid.length || product.category.includes('Protección Solar'); // Sunscreens are also required for this Vademecum
});
return {
...products,
[categoryName]: filtered
}
}, {})
})
.then(data => {
this.setState({
products: data,
})
})
}
render() {
const { categories, products } = this.state;
if (products) {
return (
{ ProductList(products, categories) }
)
} else {
return ();
}
}
}
const domContainer = document.querySelector('#vademecum-domiciliario');
ReactDOM.render(React.createElement(VademecumDomiciliario), domContainer);