Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2.  
  3. import {
  4.   EuiButton,
  5.   EuiFieldText,
  6.   EuiForm,
  7.   EuiFormRow,
  8.   EuiComboBox,
  9.   EuiTextArea,
  10. } from '@elastic/eui';
  11. import products from '../services/Product'
  12. import {addProduct} from '../reducers/Actions'
  13. import Store from '../Store'
  14. import {connect} from 'react-redux'
  15. import makeId from '@elastic/eui';
  16. import { CENTER_ALIGNMENT } from '@elastic/eui';
  17.  
  18. const ProductService = new products()
  19.  
  20. class ProductNew extends Component {
  21.     constructor(props) {
  22.         super(props);
  23.  
  24.         this.options=[
  25.             {
  26.                 label: 'active',
  27.                 // 'data-test-sub': 'titanOptions',
  28.             },
  29.             {
  30.                 label: 'non active',
  31.             }
  32.         ]
  33.    
  34.         this.state = {
  35.           productName: '',
  36.           slug:'',
  37.           value: '',
  38.           selectedOptions: [this.options[0]],
  39.           datas:[]
  40.         }
  41.     }
  42.  
  43.       handleChange(date) {
  44.         this.setState({
  45.           startDate: date,
  46.         });
  47.       }
  48.  
  49.       onChange = (selectedOptions) =>{
  50.             this.setState({
  51.                 selectedOptions: selectedOptions
  52.             })
  53.       }
  54.  
  55.       onEdit = (e) =>{
  56.           this.setState({
  57.               value : e.target.value
  58.           })
  59.       }
  60.  
  61.       onSave = () =>{
  62.         let status = 0
  63.           if (this.state.selectedOptions[0].label == "active") {
  64.               status = 1
  65.           }
  66.         let product = {
  67.             id: this.props.product.length + 1,
  68.             productname : this.state.productName,
  69.             slug: this.state.slug,
  70.             description: this.state.value,
  71.             status: status
  72.         }
  73.         ProductService.postProduct(product)
  74.         Store.dispatch(addProduct(product))
  75.       }
  76.  
  77.   onSwitchChange = () => {
  78.     this.setState({
  79.       isSwitchChecked: !this.state.isSwitchChecked,
  80.     });
  81.   };
  82.  
  83.   onCheckboxChange = optionId => {
  84.     const newCheckboxIdToSelectedMap = {
  85.       ...this.state.checkboxIdToSelectedMap,
  86.       ...{
  87.         [optionId]: !this.state.checkboxIdToSelectedMap[optionId],
  88.       },
  89.     };
  90.  
  91.     this.setState({
  92.       checkboxIdToSelectedMap: newCheckboxIdToSelectedMap,
  93.     });
  94.   };
  95.  
  96.   onRadioChange = optionId => {
  97.     this.setState({
  98.       radioIdSelected: optionId,
  99.     });
  100.   };
  101.  
  102.   render() {
  103.     return (
  104.       <div style={{ width: 850 }}>
  105.         <EuiForm style={{ textAlign: "left" }}>
  106.         <div style={{ marginLeft: 250 }}>
  107.           <EuiFormRow
  108.             label="Nama Produk"
  109.             compressed>
  110.             <EuiFieldText
  111.                 placeholder="masukan nama prodak"
  112.                 value= {this.state.productName}
  113.                 onChange={(e) => this.setState({
  114.                     productName : e.target.value
  115.                 })}
  116.             />
  117.           </EuiFormRow>
  118.  
  119.           <EuiFormRow
  120.             label="Slug"
  121.             compressed>
  122.             <EuiFieldText
  123.                 placeholder="Masukan Slug"
  124.                 value= {this.state.slug}
  125.                 onChange={(e) => this.setState({
  126.                     slug : e.target.value
  127.                 })}
  128.  
  129.             />
  130.           </EuiFormRow>
  131.           <EuiFormRow label="Deskripsi" compressed>            
  132.          <EuiTextArea
  133.             placeholder="Masukan Deskripsi"
  134.             aria-label="Masukan Deskripsi"
  135.             value={this.state.value}
  136.             onChange={this.onEdit}
  137.           />
  138.           </EuiFormRow>
  139.           <EuiFormRow label="Status" compressed>
  140.             <EuiComboBox
  141.                
  142.                 placeholder="select status"
  143.                 singleSelection={{statusProduct: true}}
  144.                 options = {this.options}
  145.                 selectedOptions={this.state.selectedOptions}
  146.                 onChange={this.onChange}
  147.                 isClearable={false}
  148.             />
  149.           </EuiFormRow>
  150.  
  151.             <EuiButton type="submit" size="l" fill onClick={this.onSave}>
  152.                 Simpan
  153.             </EuiButton>
  154.           </div>
  155.        
  156.         </EuiForm>
  157.       </div>
  158.     );
  159.   }
  160. }
  161.  
  162. const MapToProps = state =>{
  163.   return{
  164.     product : state.rootReducer.product
  165.   }
  166. }
  167.  
  168. export default connect(MapToProps)(ProductNew)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement