Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. import React from "react";
  2. import "./App.css";
  3.  
  4. /* Import Components */
  5. import Input from "./components/Input";
  6. import Select from "./components/Select";
  7. import AlcoholTable from "./components/AlcoholTable";
  8. import Button from "./components/Button"
  9.  
  10.  
  11.  
  12. function ListRendering(props){
  13. const list = props.list;
  14. const ListItems = list.map((id) =>
  15. <div key={id}>
  16. <AlcoholTable
  17. title={id.title}
  18. name={id.title}
  19. placeholder={"Select amount"}
  20. options={state.amountOptions}
  21. />
  22. </div>
  23. );
  24. return(
  25. <div>{ListItems}</div>
  26. )
  27. }
  28.  
  29. class Form extends React.Component {
  30. constructor(props){
  31. super(props);
  32.  
  33. this.state = {
  34. User:{
  35. weight:"",
  36. gender:"",
  37. time:"",
  38. },
  39.  
  40. products: [
  41. {id: '1',title: 'Big Beer', amount: 0, milliliters: 500},
  42. {id: '2',title: 'Small Beer', amount: 0, milliliters: 350},
  43. {id: '3',title: 'Wine', amount: 0, milliliters: 175},
  44. {id: '4',title: 'Champagne', amount: 0, milliliters: 120},
  45. {id: '5',title: 'vodka', amount: 0, milliliters: 50},
  46. ],
  47.  
  48. genderOptions:["Male","Female"],
  49. amountOptions:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
  50. };
  51. this.handleWeight=this.handleWeight.bind(this);
  52. this.handleClearForm = this.handleClearForm.bind(this);
  53. this.handleInput = this.handleInput.bind(this);
  54. this.handleTime = this.handleTime.bind(this);
  55. }
  56.  
  57.  
  58. handleInput(e) {
  59. let value = e.target.value;
  60. let name = e.target.name;
  61. this.setState(
  62. prevState => ({
  63. User: {
  64. ...prevState.User,
  65. [name]: value
  66. }
  67. }),
  68. () => console.log(this.state.User)
  69. );
  70. }
  71.  
  72. handleWeight(e) {
  73. let value = e.target.value;
  74. this.setState(
  75. prevState => ({
  76. User: {
  77. ...prevState.User,
  78. weight: value
  79. }
  80. }),
  81. () => console.log(this.state.User)
  82. );
  83. }
  84.  
  85. handleTime(e) {
  86. let value = e.target.value;
  87. this.setState(
  88. prevState => ({
  89. User: {
  90. ...prevState.User,
  91. time: value
  92. }
  93. }),
  94. () => console.log(this.state.User)
  95. );
  96. }
  97.  
  98. handleClearForm(e){
  99. e.preventDefault();
  100. this.setState({
  101. User:{
  102. weight:'',
  103. gender:'',
  104. time:'',
  105. }
  106. });
  107. }
  108.  
  109. render() {
  110. return (
  111. <div className="calculator">
  112. <form className="container-fluid">
  113. <Input
  114. inputType={"number"}
  115. name={"Weight"}
  116. title={"Weight"}
  117. placeholder={"Enter your weight"}
  118. value={this.state.User.weight}
  119. handleChange={this.handleWeight}
  120. />
  121. <Select
  122. title={"Gender"}
  123. name={"gender"}
  124. placeholder={"Select Gender"}
  125. options={this.state.genderOptions}
  126. value={this.state.User.gender}
  127. handleChange={this.handleInput}
  128. />
  129. <Input
  130. inputType={"number"}
  131. name={"time"}
  132. title={"Time"}
  133. placeholder={"drinking time in hours"}
  134. value={this.state.User.time}
  135. handleChange={this.handleTime}
  136. />
  137. <ListRendering list={this.state.products}/>
  138. <Button
  139. action={this.handleFormSubmit}
  140. type={"primary"}
  141. title={"Submit"}
  142. />{" "}
  143. {/*Submit */}
  144. <Button
  145. action={this.handleClearForm}
  146. type={"secondary"}
  147. title={"Clear"}
  148. />{" "}
  149. </form>
  150. </div>
  151. );
  152. }
  153. }
  154.  
  155. export default Form;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement