Advertisement
stevelam

Untitled

Jul 5th, 2022
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.30 KB | None | 0 0
  1. import React, { Component, useEffect, useState } from 'react';
  2. import './style.scss';
  3. import Icon from '../../../components/Icon/Icon';
  4. import useToggle from '../../../hooks/Toggle/useToggle';
  5. import { TranslatableText } from '../../../providers/LanguageProvider';
  6.  
  7. class SearchBar extends Component {
  8. state = {
  9. filterDrawerShow: this.props.checkedBrewbarOption
  10. }
  11. componentDidMount() {
  12.  
  13. if (this.props.checkedBrewbarOption) {
  14. console.log('filter show')
  15. this.setState((prevState) => {
  16. return { filterDrawerShow: true };
  17. })
  18. }
  19. }
  20.  
  21. toggleFilterDrawer = () => {
  22. this.setState((prevState) => {
  23. return { filterDrawerShow: !prevState.filterDrawerShow };
  24. })
  25. }
  26.  
  27.  
  28.  
  29. render() {
  30. const { filterDrawerShow } = this.state;
  31. //const { filterDrawerShow } = (this.props.checkedBrewbarOption === true) ? true : this.state;
  32. const {checkedIsOpen, checkedWithDriveThru, checkedBrewbarOption} = this.props;
  33. let classIsOpen = checkedIsOpen ? 'checked' : '';
  34. let classInputIsOpen = checkedIsOpen ? 'checked' : 'outline';
  35. let classWithDriveThru = checkedWithDriveThru ? 'checked' : '';
  36. let classInputWithDriveThru = checkedWithDriveThru ? 'checked' : 'outline';
  37. let classBrewbarOption = checkedBrewbarOption ? 'checked' : '';
  38.  
  39.  
  40. return (
  41. <React.Fragment>
  42. <div className="search-block">
  43. <div className="input-wrap">
  44. <Icon className="aw" type="compass-inverted"/>
  45. {/* <i class="aw compass-inverted" title=""><span></span></i> */}
  46. {this.props.lang === 'en' && <input className="search" type="text" placeholder="City or postal code..." onChange={e => this.props.onChange(e)} />}
  47. {this.props.lang === 'fr' && <input className="search" type="text" placeholder="Une ville ou un code postal..." onChange={e => this.props.onChange(e)} />}
  48. <button type="submit" title="submit" className={`submit`}><i className="aw gt-inverted" title=""><span></span></i></button>
  49. </div>
  50. <div className="filter-btn-wrap">
  51. <button className={`btn-filter ${filterDrawerShow ? 'active' : ''}`} onClick={this.toggleFilterDrawer}>
  52. <TranslatableText dictionary={{
  53. en: "Filter",
  54. fr: "Filtres" }}>
  55. </TranslatableText> <Icon type="plus-inverted" />
  56. </button>
  57. </div>
  58. </div>
  59.  
  60.  
  61. <div className={`restaurant-options ${filterDrawerShow ? 'open' : 'close'}`}>
  62. <p>
  63. <TranslatableText dictionary={{
  64. en: "Only show restaurants",
  65. fr: "Seulement montrer les restaurants:" }}>
  66. </TranslatableText>
  67. </p>
  68.  
  69. <div className="input-wrap">
  70. <label className={classIsOpen} ><i className={`aw ${classInputIsOpen}`} title=""><span></span></i><input type="checkbox" value="on" onClick={this.props.toggleOpenNowOption} />
  71. <TranslatableText dictionary={{
  72. en: "Open Now",
  73. fr: "Ouverts maintenant" }}>
  74. </TranslatableText>
  75. </label>
  76. <label className={classWithDriveThru}><i className={`aw ${classInputWithDriveThru}`} title=""><span></span></i><input type="checkbox" value="on" onClick={this.props.toggleDriveThruOption} />
  77.  
  78. <TranslatableText dictionary={{
  79. en: "With Drive-Thru",
  80. fr: "Avec Service au volant" }}>
  81. </TranslatableText>
  82. </label>
  83. <label className={classBrewbarOption}><i className={`aw ${classBrewbarOption}`} title=""><span></span></i><input type="checkbox" value="on" onClick={this.props.toggleBrewbarOption} />
  84.  
  85. <TranslatableText dictionary={{
  86. en: "Brewbar Option",
  87. fr: "Brewbar Fr" }}>
  88. </TranslatableText>
  89. </label>
  90. </div>
  91. </div>
  92.  
  93. </React.Fragment>
  94. );
  95. }
  96. }
  97.  
  98.  
  99. //export default SearchBar;
  100.  
  101.  
  102.  
  103. const SearchBar2 = (props) => {
  104.  
  105.  
  106. // const { filterDrawerShow } = this.state;
  107. //const { filterDrawerShow } = (this.props.checkedBrewbarOption === true) ? true : this.state;
  108.  
  109. const {checkedIsOpen, checkedWithDriveThru, checkedBrewbarOption} = props;
  110. let classIsOpen = checkedIsOpen ? 'checked' : '';
  111. let classInputIsOpen = checkedIsOpen ? 'checked' : 'outline';
  112. let classWithDriveThru = checkedWithDriveThru ? 'checked' : '';
  113. let classInputWithDriveThru = checkedWithDriveThru ? 'checked' : 'outline';
  114. let classBrewbarOption = checkedBrewbarOption ? 'checked' : '';
  115.  
  116.  
  117. //const [isToggled, toggle] = useToggle(false);
  118. //const [filterDrawerShow, toggleFilterDrawerShow] = useState(false);
  119.  
  120.  
  121. const[filterDrawerShow, toggleFilterDrawerShow] = useToggle(false);
  122.  
  123.  
  124. // const toggleFilterDrawShow = () => {
  125. // console.log('test togglefilterdrawshow');
  126. // }
  127.  
  128. // const toggleFilterDrawer = () => {
  129. // toggleFilterDrawShow();
  130. // }
  131.  
  132.  
  133.  
  134.  
  135. // useEffect(() => {
  136.  
  137. // }, []);
  138.  
  139.  
  140.  
  141. useEffect( () => {
  142. if(props.keepFilterOpen === true ) {
  143. toggleFilterDrawerShow(true);
  144. }
  145. },[toggleFilterDrawerShow, props.keepFilterOpen]);
  146.  
  147. return(
  148. <>
  149. <div className="search-block">
  150. <div className="input-wrap">
  151. <Icon className="aw" type="compass-inverted"/>
  152. {/* <i class="aw compass-inverted" title=""><span></span></i> */}
  153. {props.lang === 'en' && <input className="search" type="text" placeholder="City or postal code..." onChange={e => props.onChange(e)} />}
  154. {props.lang === 'fr' && <input className="search" type="text" placeholder="Une ville ou un code postal..." onChange={e => props.onChange(e)} />}
  155. <button type="submit" title="submit" className={`submit`}><i className="aw gt-inverted" title=""><span></span></i></button>
  156. </div>
  157. <div className="filter-btn-wrap">
  158. <button className={`btn-filter ${filterDrawerShow ? 'active' : ''}`} onClick={toggleFilterDrawerShow}>
  159. <TranslatableText dictionary={{
  160. en: "Filter",
  161. fr: "Filtres" }}>
  162. </TranslatableText> <Icon type="plus-inverted" />
  163. </button>
  164. </div>
  165. </div>
  166.  
  167.  
  168. <div className={`restaurant-options ${filterDrawerShow ? 'open' : 'close'}`}>
  169. <p>
  170. <TranslatableText dictionary={{
  171. en: "Only show restaurants",
  172. fr: "Seulement montrer les restaurants:" }}>
  173. </TranslatableText>
  174. </p>
  175.  
  176. <div className="input-wrap">
  177. <label className={classIsOpen} ><i className={`aw ${classInputIsOpen}`} title=""><span></span></i><input type="checkbox" value="on" onClick={props.toggleOpenNowOption} />
  178. <TranslatableText dictionary={{
  179. en: "Open Now",
  180. fr: "Ouverts maintenant" }}>
  181. </TranslatableText>
  182. </label>
  183. <label className={classWithDriveThru}><i className={`aw ${classInputWithDriveThru}`} title=""><span></span></i><input type="checkbox" value="on" onClick={props.toggleDriveThruOption} />
  184.  
  185. <TranslatableText dictionary={{
  186. en: "With Drive-Thru",
  187. fr: "Avec Service au volant" }}>
  188. </TranslatableText>
  189. </label>
  190. <label className={classBrewbarOption}><i className={`aw ${classBrewbarOption}`} title=""><span></span></i><input type="checkbox" value="on" onClick={props.toggleBrewbarOption} />
  191.  
  192. <TranslatableText dictionary={{
  193. en: "Brewbar Option",
  194. fr: "Brewbar Fr" }}>
  195. </TranslatableText>
  196. </label>
  197. </div>
  198. </div>
  199. </>
  200. )
  201. }
  202.  
  203. export default SearchBar2;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement