/
index.js
117 lines (104 loc) · 2.53 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import React, { Component } from 'react';
class Inventory extends Component {
constructor() {
super();
this.state = {
localCurrency: 'usd',
inventory: [
{
product: 'Flashlight',
img: '/flashlight.jpg',
desc: 'A really great flashlight',
price: 100,
currency: 'usd',
},
{
product: 'Tin can',
img: '/tin_can.jpg',
desc: 'Pretty much what you would expect from a tin can',
price: 32,
currency: 'usd',
},
{
product: 'Cardboard Box',
img: '/cardboard_box.png',
desc: 'It holds things',
price: 5,
currency: 'usd',
},
],
};
}
convertCurrency(amount, fromCurrency, toCurrency) {
let currencyConversions = {
usd: {
rupee: 66.78,
yuan: 6.87,
usd: 1,
},
};
let currencySymbols = {
usd: '$',
rupee: '₹',
yuan: '元',
};
return currencySymbols[toCurrency] + amount * currencyConversions[fromCurrency][toCurrency];
}
onSelectCurrency(e) {
this.setState({
localCurrency: e.target.value,
});
}
render() {
return (
<div>
<label htmlFor="currencySelector">Currency:</label>
<select
className="u-full-width"
id="currencySelector"
onChange={this.onSelectCurrency.bind(this)}
value={this.state.localCurrency}
>
<option value="usd">USD</option>
<option value="rupee">Rupee</option>
<option value="yuan">Yuan</option>
</select>
<table style={{ width: '100%' }}>
<tbody>
<tr>
<th>
Product
</th>
<th>
Image
</th>
<th>
Description
</th>
<th>
Price
</th>
</tr>
{this.state.inventory.map((item, idx) => (
<tr key={idx}>
<td>
{item.product}
</td>
<td>
<img src={item.img} alt="" />
</td>
<td>
{item.desc}
</td>
<td>
{this.convertCurrency(item.price, item.currency, this.state.localCurrency)}
</td>
</tr>
))}
</tbody>
</table>
</div>
);
}
}
export default Inventory;