{"version":3,"sources":["components/base/Header.js","images/DealMarker.svg","components/map/BrokerInfoWindow.js","images/MapHomeMarker.svg","components/map/UserLocation.js","components/BrokerMap.js","hooks/useDebounce.js","components/base/BrokerImage.js","components/base/header.module.css","components/map/brokerInfoWindow.module.css","components/map/userLocation.module.css","components/search/Search.js","components/search/search.module.css","components/search/BrokerSearch.js"],"names":["Header","props","selectedTab","setSelectedTab","collapsed","showTabs","mapTab","brokersTab","minified","hideNav","lottie","defaultBg","bgImg","className","useState","isMenuExpanded","setIsMenuExpanded","history","useLocation","useHistory","useSessionStorage","userLocation","lat","lng","center","style","backgroundImage","clsx","styles","header","headerInner","menuIconContainer","menuIconContainerOpen","onClick","href","stacked","logo","tabNav","selected","menuOuter","menu","menuConatiner","closeContainer","btnMapContainer","type","CustomCardStyle","cardHeaderLeftIcon","cardHeaderTitle","address","cardHeaderRightIcon","zoom","containerSize","fullWidth","dark","centered","title","push","BrokerInfoWindow","housingDeal","rest","showSummary","icon","url","DealMarker","position","location","coordinates","options","disableAutoPan","mapInfoWindow","summary","livingArea","price","truncatePrice","UserLocation","onDidSelectHomeLocation","MapHomeMarker","mapOptions","BrokerMap","housingDeals","onHousingDealSelected","onBoundsChanged","fitToBounds","map","setMap","bounds","setBounds","detectedZoom","setDetectedZoom","debouncedBounds","useDebounce","useEffect","getBounds","filtered","setFiltered","filter","hd","contains","mapContainerStyle","height","onLoad","window","google","maps","LatLngBounds","extend","LatLng","fitBounds","onIdle","index","fullscreenControl","streetViewControl","gestureHandling","zoomControl","mapTypeControl","value","delay","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout","BrokerImage","broker","error","setError","brokerHasImage","imageUrl","useAvatar","onError","src","alt","firstName","lastName","module","exports","hasStreetNumber","place","i","address_components","length","component","j","types","Search","onLocationChanged","iconVisible","customInputClass","autofocus","term","setTerm","places","setPlaces","placeWithDetail","setPlaceWithDetail","debouncedTerm","choosePlace","a","fetchPlaceDetails","pwd","geometry","formatted_address","structured_formatting","main_text","fetchPlaces","then","search","addHouseContainer","id","onKeyUp","e","keyCode","which","autoFocus","autoComplete","placeholder","onChange","evt","target","suggestions","suggestion","suggestionChevron","suggestionMain","suggestionSecondary","secondary_text","place_id","BrokerSearch","brokers","setBrokers","searchBrokers","console","log","brokerSearch","searchContainer","onSelectBroker","company"],"mappings":"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","file":"static/js/7.35cd7857.chunk.js","sourcesContent":["import { useState } from 'react';\nimport { LogoStack, Logo, Hamburger, HomeIcon, ArrowLink } from '../Svg';\n\nimport styles from './header.module.css';\nimport clsx from 'clsx';\nimport useSessionStorage from '../../hooks/useSessionStorage';\nimport Card from '../Card';\nimport { Button } from './Buttons';\nimport BrokerMap from '../BrokerMap';\nimport { useHistory, useLocation } from 'react-router-dom';\n\n\n\nconst Header = (props) => {\n const {\n selectedTab,\n setSelectedTab,\n collapsed,\n showTabs,\n mapTab,\n brokersTab,\n minified,\n hideNav,\n lottie,\n defaultBg,\n bgImg,\n className\n } = props;\n const [isMenuExpanded, setIsMenuExpanded] = useState(false);\n const location = useLocation();\n const history = useHistory()\n const [userLocation, setUserLocation] = useSessionStorage('userLocation', null);\n const [center, setCenter] = useSessionStorage('center', {\n lat: 59.978476,\n lng: 14.81514,\n });\n\n return (\n <>\n \n
\n
\n {!hideNav && (\n setIsMenuExpanded(true)}\n />\n )}\n
\n {!collapsed && (\n \n \n \n )}\n {collapsed && (\n \n \n \n \n\n {showTabs && (\n
    \n setSelectedTab('map')}\n className={clsx({\n [styles.selected]:\n selectedTab === 'map',\n })}\n >\n Karta\n \n \n setSelectedTab('brokers')\n }\n className={clsx({\n [styles.selected]:\n selectedTab === 'brokers',\n })}\n >\n Mäklare\n \n
\n )}\n
\n )}\n \n {selectedTab === 'map' && mapTab}\n {lottie && lottie}\n \n {selectedTab === 'brokers' && brokersTab}\n {isMenuExpanded && (\n setIsMenuExpanded(false)}\n >\n
\n
\n
\n setIsMenuExpanded(false)}>X\n
\n \n
\n
\n {\n userLocation ?\n }\n cardHeaderTitle={userLocation.address}\n cardHeaderRightIcon={}\n >\n \n :\n { setIsMenuExpanded(false); history.push('/') }}\n />\n }\n
\n
\n \n )}\n \n );\n};\n\nexport default Header;\n","export default __webpack_public_path__ + \"static/media/DealMarker.d0302320.svg\";","import styles from './brokerInfoWindow.module.css';\nimport { InfoWindow, Marker } from '@react-google-maps/api';\nimport BrokerImage from '../base/BrokerImage';\nimport { truncatePrice } from '../../util';\nimport DealMarker from '../../images/DealMarker.svg'\n\nconst BrokerInfoWindow = (props) => {\n const { housingDeal, onClick, showSummary, ...rest } = props;\n return (\n // \n //
\n // \n // {showSummary && (\n //
\n // \n // {truncatePrice(housingDeal.summary.price)}\n // \n // \n // {housingDeal.summary.livingArea} m²\n // \n //
\n // )}\n //
\n // \n \n \n
\n {/* */}\n {/* {showSummary && ( */}\n
\n \n {housingDeal.summary.livingArea} m²\n \n \n {truncatePrice(housingDeal.summary.price / 100)}\n \n
\n {/* )} */}\n
\n \n \n );\n};\n\nexport default BrokerInfoWindow;\n","export default __webpack_public_path__ + \"static/media/MapHomeMarker.df2d8ba0.svg\";","import { InfoWindow, Marker } from '@react-google-maps/api';\nimport MapHomeMarker from '../../images/MapHomeMarker.svg'\n\nimport styles from './userLocation.module.css';\n\nconst UserLocation = (props) => {\n const { onDidSelectHomeLocation, userLocation, ...rest } = props;\n return (\n // \n // \n // \n // \n // \n
\n \n
\n );\n};\n\nexport default UserLocation;\n","import { useEffect, useState } from 'react';\nimport { GoogleMap, Marker, useGoogleMap } from '@react-google-maps/api';\nimport useDebounce from '../hooks/useDebounce';\nimport BrokerInfoWindow from './map/BrokerInfoWindow';\nimport UserLocation from './map/UserLocation';\n\nconst homeMakerBase64 = `Cjxzdmcgd2lkdGg9IjI5IiBoZWlnaHQ9IjI5IiB2aWV3Qm94PSIwIDAgMjkgMjkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjE0LjUiIGN5PSIxNC41IiByPSIxMi41IiBmaWxsPSIjRkZDRTI2IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjQiLz4KPC9zdmc+`;\nconst homeMarker = `data:image/svg+xml;charset=UTF-8;base64,${homeMakerBase64}`;\n\nconst BrokerMarker = (props) => {\n const { housingDeal, zoom, ...rest } = props;\n const size = zoom > 12 ? 20 : 10;\n const google = useGoogleMap()\n return (\n \n );\n};\n\nconst BrokerMap = (props) => {\n const {\n zoom,\n center,\n housingDeals,\n userLocation,\n onDidSelectHomeLocation,\n onHousingDealSelected,\n containerSize,\n onBoundsChanged,\n fitToBounds,\n } = props;\n\n const [map, setMap] = useState(null);\n const [bounds, setBounds] = useState(null);\n const [detectedZoom, setDetectedZoom] = useState(zoom);\n const debouncedBounds = useDebounce(bounds);\n useEffect(() => {\n if (onBoundsChanged && debouncedBounds) {\n onBoundsChanged(map.getBounds());\n }\n }, [debouncedBounds]);\n const onIdle = () => {\n setBounds(map.getBounds());\n setDetectedZoom(map.zoom);\n };\n\n const onLoad = (map) => {\n setMap(map);\n setBounds(map.getBounds());\n if (fitToBounds) {\n var bounds = new window.google.maps.LatLngBounds();\n for (const hd of housingDeals) {\n bounds.extend(\n new window.google.maps.LatLng(\n hd.location.coordinates[0],\n hd.location.coordinates[1]\n )\n );\n }\n map.fitBounds(bounds);\n }\n };\n\n // let filtered = null;\n const [filtered, setFiltered] = useState(null);\n useEffect(() => {\n if (bounds && housingDeals) {\n setFiltered(housingDeals.filter((hd) =>\n bounds.contains({\n lat: hd.location.coordinates[0],\n lng: hd.location.coordinates[1],\n })\n ));\n }\n }, [bounds, housingDeals]);\n\n\n return (\n \n <>\n {filtered &&\n filtered.map((housingDeal, index) => (\n \n {/* {detectedZoom > 16 && ( */}\n 18}\n onClick={() =>\n onHousingDealSelected(housingDeal)\n }\n housingDeal={housingDeal}\n />\n {/* )} */}\n {/* {detectedZoom <= 16 && (\n \n onHousingDealSelected(housingDeal)\n }\n housingDeal={housingDeal}\n />\n )} */}\n \n ))}\n\n {userLocation && (\n \n )}\n \n \n );\n};\n\nexport default BrokerMap;\n\n// const MapStyles = [\n// {\n// elementType: 'labels.text',\n// stylers: [\n// {\n// saturation: -100,\n// visibility: 'off',\n// },\n// ],\n// },\n// {\n// featureType: 'landscape.man_made',\n// stylers: [\n// {\n// visibility: 'on',\n// },\n// ],\n// },\n// {\n// featureType: 'landscape.man_made',\n// elementType: 'geometry.fill',\n// stylers: [\n// {\n// visibility: 'off',\n// },\n// ],\n// },\n// {\n// featureType: 'landscape.man_made',\n// elementType: 'geometry.stroke',\n// stylers: [\n// {\n// lightness: -15,\n// },\n// {\n// visibility: 'on',\n// },\n// ],\n// },\n// {\n// featureType: 'landscape.natural',\n// stylers: [\n// {\n// color: '#E8E8E8',\n// },\n// {\n// visibility: 'on',\n// },\n// ],\n// },\n// {\n// featureType: 'poi',\n// stylers: [\n// {\n// // visibility: 'off',\n// },\n// ],\n// },\n// {\n// featureType: 'road',\n// stylers: [\n// {\n// color: '#f3f6f7',\n// },\n// ],\n// },\n// {\n// featureType: 'road',\n// elementType: 'labels.text.fill',\n// stylers: [\n// {\n// visibility: 'off'\n// },\n// ],\n// },\n// {\n// featureType: 'transit',\n// stylers: [\n// {\n// visibility: 'off',\n// },\n// ],\n// },\n// {\n// featureType: 'transit',\n// elementType: 'labels.icon',\n// stylers: [\n// {\n// saturation: -65,\n// },\n// ],\n// },\n// {\n// featureType: 'transit',\n// elementType: 'labels.text',\n// stylers: [\n// {\n// saturation: -100,\n// },\n// ],\n// },\n// {\n// featureType: 'water',\n// elementType: 'geometry.fill',\n// stylers: [\n// {\n// color: '#d8dde3',\n// },\n// {\n// visibility: 'on',\n// },\n// ],\n// },\n// ];\n\nconst MapStyles = [\n {\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#e8e8e8\"\n }\n ]\n },\n {\n \"elementType\": \"labels\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"administrative\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.land_parcel\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.neighborhood\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"poi.medical\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#e6e6e6\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#c2e4b6\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"poi.place_of_worship\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"poi.school\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#d6d6d6\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"poi.sports_complex\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#c2e4b6\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#ffffff\"\n }\n ]\n },\n {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#ffffff\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"stylers\": [\n {\n \"color\": \"#FFFFFF\"\n }\n ]\n },\n {\n \"featureType\": \"road.local\",\n \"stylers\": [\n {\n \"color\": \"#FFFFFF\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"road.local\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#E7E4E4\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"road.local\",\n \"elementType\": \"labels.text\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"transit.line\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"transit.station.airport\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#c4c4c4\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#e8f5f7\"\n },\n {\n \"visibility\": \"on\"\n }\n ]\n }\n]\n\nconst mapOptions = {\n fullscreenControl: false,\n streetViewControl: false,\n gestureHandling: 'greedy',\n zoomControl: true,\n mapTypeControl: false,\n styles: MapStyles,\n};\n","import { useEffect, useState } from 'react';\n// Our hook\nexport default function useDebounce(value, delay) {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n","import { useState } from 'react';\nimport { AvatarCard } from '../Svg';\n\nconst BrokerImage = (props) => {\n const { broker } = props;\n const [error, setError] = useState(null);\n const brokerHasImage = broker.imageUrl !== null && broker.imageUrl !== '';\n const useAvatar = error !== null ? true : !brokerHasImage;\n return (\n <>\n {!useAvatar && (\n \n )}\n {useAvatar && }\n \n );\n};\n\nexport default BrokerImage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"header_header__3NCwG\",\"headerInner\":\"header_headerInner__3BQFd\",\"defaultBg\":\"header_defaultBg__1kB9p\",\"menuIconContainer\":\"header_menuIconContainer__zrzcE\",\"menuIconContainerOpen\":\"header_menuIconContainerOpen__3omge\",\"stacked\":\"header_stacked__10nuP\",\"collapsed\":\"header_collapsed__3Hzol\",\"minified\":\"header_minified__3MfXF\",\"tabNav\":\"header_tabNav__2Ug9x\",\"selected\":\"header_selected__162UH\",\"menuOuter\":\"header_menuOuter__2qFM1\",\"closeContainer\":\"header_closeContainer__2oO-f\",\"menu\":\"header_menu__3y-V3\",\"CustomCardStyle\":\"header_CustomCardStyle__1bvC7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"brokerInfoWindow\":\"brokerInfoWindow_brokerInfoWindow__ZIrjb\",\"summary\":\"brokerInfoWindow_summary__270l2\",\"price\":\"brokerInfoWindow_price__1mZBy\",\"livingArea\":\"brokerInfoWindow_livingArea__czuQy\",\"mapInfoWindow\":\"brokerInfoWindow_mapInfoWindow__3odcf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userLocation\":\"userLocation_userLocation__1VRdA\"};","import { useEffect, useState } from 'react';\nimport useDebounce from '../../hooks/useDebounce';\nimport { TextInput } from '../base/Forms';\nimport { InputLocationMarker } from '../Svg';\nimport { fetchPlaces, fetchPlaceDetails } from '../../util';\nimport styles from './search.module.css';\nimport useSessionStorage from '../../hooks/useSessionStorage';\n\nconst hasStreetNumber = (place) => {\n\tfor (var i = 0; i < place.address_components.length; i++) {\n\t\tvar component = place.address_components[i];\n\t\tfor (var j = 0; j < component.types.length; j++) {\n\t\t\tif (component.types[j] === 'street_number') return true;\n\t\t}\n\t}\n\treturn false;\n};\n\nconst Search = (props) => {\n\tconst {\n\t\tonLocationChanged,\n\t\tonClick,\n\t\ticonVisible = true,\n\t\ticon,\n\t\tcustomInputClass,\n\t\tautofocus,\n\t} = props;\n\tconst [term, setTerm] = useSessionStorage('search_term', '');\n\tconst [places, setPlaces] = useState([]);\n\tconst [placeWithDetail, setPlaceWithDetail] = useSessionStorage(\n\t\t'selected_place_with_details',\n\t\tnull\n\t);\n\tconst debouncedTerm = useDebounce(term, 500);\n\tconst choosePlace = async (place) => {\n\t\tconst pwd = await fetchPlaceDetails(place);\n\t\tonLocationChanged({\n\t\t\thasStreetNumber: hasStreetNumber(pwd),\n\t\t\tlat: pwd.geometry.location.lat,\n\t\t\tlng: pwd.geometry.location.lng,\n\t\t\taddress: pwd.formatted_address,\n\t\t});\n\t\tsetPlaceWithDetail(pwd);\n\t\tsetTerm(place.structured_formatting.main_text);\n\t\tsetPlaces([]);\n\t};\n\tconst submitOnEnter = (e) => {\n\t\tconst code = e.keyCode ? e.keyCode : e.which;\n\t\tif (code === 13) {\n\t\t\tchoosePlace(places[0]);\n\t\t}\n\t};\n\tuseEffect(() => {\n\t\tif (debouncedTerm && placeWithDetail === null) {\n\t\t\tfetchPlaces(debouncedTerm).then((places) => setPlaces(places));\n\t\t}\n\t}, [debouncedTerm, placeWithDetail]);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t{iconVisible && (\n\t\t\t\t\t
\n\t\t\t\t\t\t{icon ? icon : }\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t {\n\t\t\t\t\t\tif (evt.target.value === term) return;\n\t\t\t\t\t\tsetTerm(evt.target.value);\n\t\t\t\t\t\tsetPlaceWithDetail(null);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
\n\t\t\t{places.length > 0 && (\n\t\t\t\t
\n\t\t\t\t\t{places.map((suggestion) => (\n\t\t\t\t\t\t choosePlace(suggestion)}\n\t\t\t\t\t\t\tkey={suggestion.place_id}\n\t\t\t\t\t\t\tclassName={styles.suggestion}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t›\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{suggestion.structured_formatting.main_text}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsuggestion.structured_formatting\n\t\t\t\t\t\t\t\t\t\t.secondary_text\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Search;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search\":\"search_search__1JxJG\",\"brokerSearch\":\"search_brokerSearch__3MIVN\",\"addHouseContainer\":\"search_addHouseContainer__K1VQP\",\"searchContainer\":\"search_searchContainer__3hGn1\",\"slidersContainer\":\"search_slidersContainer__37T9T\",\"suggestions\":\"search_suggestions__1R6Dx\",\"suggestion\":\"search_suggestion__2A0LX\",\"suggestionMain\":\"search_suggestionMain__24G4J\",\"suggestionSecondary\":\"search_suggestionSecondary__gPrab\",\"suggestionChevron\":\"search_suggestionChevron__gLyQP\"};","import { useEffect, useState } from 'react';\nimport useDebounce from '../../hooks/useDebounce';\nimport clsx from 'clsx';\nimport { TextInput } from '../base/Forms';\nimport { AddHouse, Search } from '../Svg';\nimport { searchBrokers, fetchPlaceDetails } from '../../util';\nimport styles from './search.module.css';\nimport useSessionStorage from '../../hooks/useSessionStorage';\n\nconst BrokerSearch = (props) => {\n const { onLocationChanged, onClick } = props;\n const [term, setTerm] = useState('');\n const [brokers, setBrokers] = useState([]);\n \n const debouncedTerm = useDebounce(term, 500);\n // const choosePlace = async (place) => {\n // const pwd = await fetchPlaceDetails(place);\n // onLocationChanged({\n // hasStreetNumber: hasStreetNumber(pwd),\n // lat: pwd.geometry.location.lat,\n // lng: pwd.geometry.location.lng,\n // address: pwd.formatted_address,\n // });\n // setPlaceWithDetail(pwd);\n // setTerm(place.structured_formatting.main_text);\n // setPlaces([]);\n // };\n // const submitOnEnter = (e) => {\n // const code = e.keyCode ? e.keyCode : e.which;\n // if (code === 13) {\n // choosePlace(places[0]);\n // }\n // };\n\n const chooseBroker = (broker) => { \n setBrokers([]);\n setTerm('');\n props.onSelectBroker(broker);\n }\n \n useEffect(() => {\n if (debouncedTerm) {\n searchBrokers(debouncedTerm).then((brokers) => {\n console.log(brokers);\n setBrokers(brokers)\n });\n }\n }, [debouncedTerm]);\n\n return (\n <>\n
\n
\n \n
\n {\n if (evt.target.value === term) return;\n setTerm(evt.target.value);\n //setPlaceWithDetail(null);\n }}\n />\n
\n {(brokers && brokers.length > 0) && (\n
\n {brokers.map((suggestion) => (\n chooseBroker(suggestion)}\n key={suggestion.id}\n className={styles.suggestion}\n >\n
\n ›\n
\n
\n {suggestion.firstName} {suggestion.lastName}\n
\n
\n {suggestion.company}\n
\n
\n ))}\n \n )}\n \n );\n};\n\nexport default BrokerSearch;\n"],"sourceRoot":""}