Hae välittäjää nimen, alueen tai koulutuksen mukaan
\n\t\t\t
\n\t\t\t\tTiedätkö tarkalleen ketä tai minkälaista välittäjää haet? Valitse haluamasi hakuehdot ja me etsimme\n\t\t\t\tsinulle sopivan välittäjän.\n\t\t\t
\n\t\t\t\tValitse alta millaista asuntoa olet ostamassa tai myymässä. Etsimme sinulle välittäjän, jolla on\n\t\t\t\tkokemusta vastaavista kohteista.\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\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\t\n\t\t\t\t\tHuoneita\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\tHae välittäjiä\n\t\t\t\n\t\t\n\t);\n};\n\nexport default AgentSearchByHouseType;\n","import React, { Fragment, useState, useEffect, useRef } from \"react\";\nimport { connect } from \"react-redux\";\nimport { IDocument } from \"@redux/document\";\nimport { IApplicationState } from \"@redux\";\nimport { AgentSearchHero, AgentSearchBoxes, SearchResults, SearchSelect, SearchSelectButton } from \"./styles\";\nimport Text from \"wake-react-components/text\";\nimport Editor from \"wake-react-components/editor\";\n\nimport WhyKm from \"@components/WhyKm\";\n\nimport AgentSearchByNameAreaOrDegrees from \"@components/AgentSearch/AgentSearchByNameAreaOrDegrees\";\nimport AgentSearchByHouseType from \"@components/AgentSearch/AgentSearchByHouseType\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport { Container } from \"@components/Grid\";\nimport AgentList from \"@components/AgentList\";\nimport TextButton from \"@components/Buttons/TextButton\";\nimport RancidBanner from \"@components/RancidBanner\";\nimport { SmoothScroll } from \"@utils/anchor-scroll\";\nimport { animateScroll as scroll } from \"react-scroll\";\n\ninterface IProps {\n\tdoc: IDocument;\n}\n\nconst AgentSearchPage = ({ doc }: IProps) => {\n\tlet isRendering: boolean = true;\n\tconst [agents, setAgents] = useState([]);\n\tconst [fetched, setFetched] = useState(false);\n\tconst [visibleAgents, setVisibleAgents] = useState(30);\n\tconst [activeSearch, setActiveSearch] = useState(1);\n\n\tconst hasAgents = !isEmpty(agents);\n\n\tconst agentsTitle = hasAgents\n\t\t? `Hakuehtoihisi sopivat välittäjät (${agents.length})`\n\t\t: \"Hakuehdoillasi ei löytynyt yhtään välittäjää.\";\n\tconst manyAgents = hasAgents && agents.length > 30;\n\n\tconst showMore = () => {\n\t\tif (visibleAgents < agents.length) {\n\t\t\tsetVisibleAgents(visible => visible + 15);\n\t\t}\n\t};\n\n\tconst searchBoxesRef = useRef(null);\n\n\tconst onAgentsFetched = (fetchedAgents: IAgent[]) => {\n\t\tsetFetched(true);\n\t\tsetAgents(fetchedAgents);\n\n\t\ttry {\n\t\t\tconst scrollDistance = searchBoxesRef.current.offsetTop + searchBoxesRef.current.offsetHeight;\n\t\t\tscroll.scrollTo(scrollDistance);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (isRendering) {\n\t\t\tsetVisibleAgents(30);\n\t\t}\n\t}, [agents]);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tisRendering = false;\n\t\t};\n\t}, []);\n\n\tconst agentsToShow = hasAgents ? (manyAgents ? agents.slice(0, visibleAgents) : agents) : [];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t