Advertisement
Qpel

dropdown

Mar 2nd, 2020
416
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, {Fragment, Component} from "react"
  2. import Theatre from '../containers/Theatre'
  3.  
  4. class DropdownComponent extends Component {
  5.    
  6.     constructor(props) {
  7.         super(props)
  8.     }
  9.  
  10.     componentDidMount() {
  11.         this.props.onHandleAllUsers()
  12.     }
  13.  
  14.     render() {
  15.         const props = this.props
  16.         return (
  17.             <div className="dropdown">
  18.                 <div>Pasirinkite miesta</div>
  19.                 <select
  20.                 value ={props.activeUserId}
  21.                 onChange={props.onHandleDropdown}
  22.                 >
  23.                     {
  24.                         props.users.map((item, index) =>
  25.                         <option
  26.                         value={item.id}
  27.                         key={index}
  28.                         >{item.name} {item.surname}</option>
  29.                         )
  30.                     }
  31.                 </select>
  32.                 {props.checkedCityId && <Theatre />}
  33.                 {props.checkedCityId && console.log(props.checkedCityId + " Miestas")}
  34.             </div>
  35.        )
  36.   }
  37. }
  38.  
  39. export default DropdownComponent
  40.  
  41.  
  42. container:
  43.  
  44. import { connect } from "react-redux"
  45. import Dropdown from "../components/DropdownComponent"
  46. import { fetchUsers } from "../actions/userActions"
  47. import { findUser } from "../actions/userActions"
  48.  
  49. const mapStateToProps = ({usersR}) => {
  50.   return {
  51.     isLoaded: usersR.isLoaded,
  52.     users: usersR.users,
  53.     activeUsersId: usersR.activeUsersId,
  54.     checkedCityId: usersR.checkedCityId
  55.   }
  56. }
  57.  
  58. const mapDispatchToProps = dispatch => {
  59.   return {
  60.     onHandleDropdown: (e) => {
  61.         dispatch(findUser(e.target.value))
  62.     },
  63.     onHandleAllUsers: () => {
  64.         dispatch(fetchUsers())
  65.     }
  66.   }
  67. }
  68.  
  69. const UsersDropdown = connect(mapStateToProps, mapDispatchToProps)(Dropdown)
  70. export default UsersDropdown
  71.  
  72.  
  73.  
  74.  
  75.  
  76. actions:
  77.  
  78. import {
  79.     SUCCESS_USERS_RESULT,
  80.     REQUEST_USERS,
  81.     FAILURE_RESULT
  82. } from "../constants"
  83. import fetch from "isomorphic-fetch"
  84.  
  85. export function fetchUsers() {
  86.     return dispatch => {
  87.         dispatch(responseUsers());
  88.     };
  89. }
  90.  
  91. export function findUser(id) {
  92.     return dispatch => {
  93.       dispatch(responseUser(id));
  94.     };
  95.   }
  96.  
  97.  
  98. function requestUsers(checkedCityId) {
  99.     return {
  100.         type: REQUEST_USERS,
  101.         checkedCityId
  102.     }
  103. }
  104.  
  105. function successUsersResult(users) {
  106.     return {
  107.         type: SUCCESS_USERS_RESULT,
  108.         users
  109.     }
  110. }
  111.  
  112. function failureResult(error) {
  113.     return {
  114.         type: FAILURE_RESULT,
  115.         error
  116.     }
  117. }
  118.  
  119. function responseUser(id) {
  120.     return dispatch => {
  121.       dispatch(requestUsers(id))
  122.       return fetch(`http://localhost:3000/api/users?id=${id}`, {
  123.         headers: {
  124.           "X-Requested-With": "XMLHttpRequest"
  125.         },
  126.         method: "get"
  127.       })
  128.       .then(res => {
  129.         return res.json()
  130.       })
  131.       .then(users => {
  132.         dispatch(successUsersResult(users));
  133.       })
  134.       .catch(error => {
  135.         dispatch(failureResult(error));
  136.       })
  137.     }
  138.   }
  139.  
  140. function responseUsers() {
  141.     return dispatch => {
  142.         dispatch(requestUsers())
  143.         return fetch("http://localhost:3000/api/users", {
  144.             headers: {
  145.                 "X-Requested-With": "XMLHttpRequest"
  146.             },
  147.             method: "get"
  148.         })
  149.         .then(res => {
  150.             return res.json()
  151.         })
  152.         .then(users => {
  153.             dispatch(successUsersResult(users));
  154.         })
  155.         .catch(error => {
  156.             dispatch(failureResult(error));
  157.         })
  158.     }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement