{"version":3,"file":"component---src-templates-page-conveyancers-js-c6aa0e070120471767fd.js","mappings":"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","sources":["webpack://landbay/./src/components/widgets/AdditionalDownloads.js","webpack://landbay/./src/templates/page-conveyancers.js","webpack://landbay/./src/utils/formatPhoneNumber.js","webpack://landbay/./src/assets/svg/inline/ic_big_chevron_right.svg"],"sourcesContent":["import React from \"react\";\nimport { useStaticQuery, graphql } from \"gatsby\"\n\n/**\n * Sidebar additional downloads\n */\nexport default function AdditionalDownloads({title, downloads}) {\n\n //grab the downloads from the options page\n const data = useStaticQuery(graphql`\n query {\n\t wp {\n\t\tacfOptionsOptions {\n\t options {\n\t widgetDownloads {\n\t title\n\t url\n\t\t\t extension\n\t }\n\t }\n\t }\n\t }\n }\n `)\n\n if (!downloads || downloads.length===0) {\n\treturn null;\n }\n\n return(\n\t
\n\t\t

{title}

\n\t\t\n\t
\n )\n}\n\n","import React, {useCallback, useState, useEffect} from \"react\"\nimport { graphql, Link } from \"gatsby\"\nimport Layout from '../components/Layout' \nimport Hero from '../components/widgets/Hero' \nimport Widgets from '../components/widgets/Widgets' \nimport ChevronIcon from \"../assets/svg/inline/ic_big_chevron_right.svg\"\nimport formatPhoneNumber from '../utils/formatPhoneNumber' \nimport Seo from 'gatsby-plugin-wpgraphql-seo';\nimport InternalShapes from \"../components/widgets/InternalShapes\";\nimport AdditionalDownloads from \"../components/widgets/AdditionalDownloads\";\n\nexport default function Conveyancers({ data, location }) {\n const page = data.allWpPage.nodes[0];\n const additionalContent = page.conveyancers?.conveyancersAdditionalContent;\n const additionalDownloads = page.additionalDownloads;\n const conveyancers = data.allWpConveyancer?.nodes.sort((a, b) => a.title.localeCompare(b.title));//sort the conveyancers by title\n const [filteredConveyancers, setFilteredConveyancers] = useState(conveyancers);\n\n const [pageNumber, setPageNumber] = useState(1);\n const itemsPerPage = 10;\n\n //for controlling form elements\n const defaultFormValues = {search:'', representation:''}\n const [formValues, setFormValues] = useState(defaultFormValues);\n\n /**\n * Called when a form field changes\n */\n const handleChange = function(event) {\n\n var newValues = { ...formValues };\n\n\tnewValues[event.target.name] = event.target.value;\n\t\n\tsetFormValues(newValues);\n }\n\n /*\n * When the form is submitted via the enter key\n */\n const handleSubmit = function(event) {\n event.preventDefault();\n\t//submitForm()\n }\n\n /*\n * When we select an area from the list on desktop\n \n const selectRepresentation = function(area) {\n \n var newValues = { ...formValues };\n\n\tif (formValues.area===area) {\n\t\tnewValues['representation'] = '';\n\t} else {\n\t\tnewValues['representation'] = area;\n\t}\n\t\n\tsetFormValues(newValues);\n }*/\n\n /*if we've just navigated from a child page we might want to select a section*/\n useEffect(() => {\n if (typeof location?.state?.page != 'undefined') {\n\t\t//console.log('setting page number to ', location.state.page);\n setPageNumber(location.state.page);\n }\n }, [location]);\n\n /*\n * Update the list when the form changes\n */\n useEffect(() => {\n\tif (!conveyancers || conveyancers.length===0) {\n\t\treturn null;\n\t}\n let filteredConveyancers = [];\n\t\n\tconveyancers.forEach(function(conveyancer) {\n\t let includeThisItem = true;\n\t //check if we have a postcode search set\n if (formValues.search!=='') {\n\t\t//extract the leading letters from the user postcode using regular expression\n\t\tlet match = formValues.search.toUpperCase().match(/^[A-Z]+/),\n\t\t\tpostcodeMatch = false,\n\t\t\tnameMatch = false;\n\t\tif (match && conveyancer.conveyancers.conveyancerPostcode?.toUpperCase().indexOf(match[0])===0) {\n\t\t postcodeMatch = true;\t\n\t\t}\t\n\t if (conveyancer.title?.toUpperCase().indexOf(formValues.search.toUpperCase())>-1) {\n\t\t\tnameMatch = true;\n\t }\n\t\tif (!postcodeMatch && !nameMatch) {\n\t\t\tincludeThisItem = false;\n\t\t}\n }\n\n\t //if (includeThisItem && formValues.representation!=='' && conveyancer.conveyancerRepresentation!==formValues.representation) {\n\t //\tincludeThisItem = false;\n\t //}\n\n\t if (includeThisItem) {\n\t filteredConveyancers.push(conveyancer);\n\t }\n\n\t //setFilteredConveyancers(filteredConveyancers);\n\n\t //take a slice for the pagination\n\t let offset = (itemsPerPage*(pageNumber-1));\n\t setFilteredConveyancers(filteredConveyancers.slice(offset, offset+itemsPerPage));\n\t});\n }, [conveyancers, formValues, itemsPerPage, pageNumber]);\n\n const getPagination = useCallback((items) => {\n\tlet numPages = Math.floor(items.length / itemsPerPage),\n\t\tpages = [];\n\tif (numPages!==1) {\n\t\tif (pageNumber!==1) {\n\t\t pages.push(
  • )\n\t\t}\n\n\t\tif (numPages>10 && pageNumber>1) {\n\t\t pages.push(
  • 1
  • )\n\t\t if (pageNumber>2) {\n\t\t\tpages.push(
  • ...
  • )\n\t\t }\n\t\t}\n\t\t\n\t\tfor (let i=1; i<=numPages; i++) {\n\t\t if (numPages<=10 || i===pageNumber/*Math.abs(i - pageNumber)<2*/) {\n\t\t\tpages.push(
  • {i}
  • )\n\t\t }\n\t\t}\n\t\t\n\t\tif (numPages>10 && pageNumber...)\n\t\t }\n\t\t pages.push(
  • {numPages}
  • )\n\t\t}\n\t\t\n\t\tif (pageNumber)\n\t\t}\n\t}\n\t\n\treturn pages;\n }, [page.uri, pageNumber]);\n\n return (\n \t\n \n\t
    \n\t
    \n\t \n\t
    \n\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t {\n\t\t\t\tfilteredConveyancers.length\n\t\t\t\t? <>\n\t\t\t\t {filteredConveyancers.map((item, i) => (\n\t\t\t\t
    \t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ti===(conveyancers.length-1) && conveyancers.length>4\n\t\t\t\t\t\t\t? \n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t}\t\n\t\t\t\t\t\t

    {item.title}

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t item.representations?.nodes?.length\n\t\t\t\t\t\t ?

    {item.representations.nodes[0].name}

    \t\n\t\t\t\t\t\t\t : null\n\t\t\t\t\t\t\t}\t\t\t\t\n\t\t\t\t\t\t\t

    SRA No: {item.conveyancers.conveyancerSra}

    \t\n\t\t\t\t\t\t
    \t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{item.conveyancers.conveyancerPhone && (\n\t\t\t\t\t\t\t

    Call
    {item.conveyancers.conveyancerPhone}

    \n\t\t\t\t\t\t )}\n\t\t\t\t\t\t\t{item.conveyancers.conveyancerEmail && (\n\t\t\t\t\t\t\t

    Email
    {item.conveyancers.conveyancerEmail}

    \n\t\t\t\t\t\t )}\n\t\t\t\t\t\t\t{item.conveyancers.conveyancerAddress && (\n\t\t\t\t\t\t\t

    Address
    \n\t\t\t\t\t\t\t\t {item.conveyancers.conveyancerAddress}\n\t\t\t\t\t\t\t\t {item.conveyancers.conveyancerPostcode && (<>, {item.conveyancers.conveyancerPostcode})}\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\t
    \n\t\t\t\t
    \n\t\t\t ))}\n\t\t\t\t\t\n\t\t\t\t \n\t\t\t\t:

    No conveyancers found

    \n\t\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\t\t\t\n\t\t\n\t\t\n\t
    \n
    \n )\n}\nexport const query = graphql`\n query($id: String!) {\n allWpPage(filter: { id: { eq: $id } }) {\n nodes {\n title\n\t content\n \turi\n ...PageSEOFragment\n\t conveyancers {\n\t conveyancersAdditionalContent\n\t }\n\t\t...WidgetFragment\n\t additionalDownloads {\n\t\t downloadsTitle\n\t downloads {\n\t download\n\t }\n\t }\n }\n }\n\tallWpConveyancer {\n nodes {\n title\n conveyancers {\n conveyancerSra\n conveyancerPostcode\n conveyancerPhone\n conveyancerEmail\n conveyancerAddress\n }\n representations {\n nodes {\n name\n }\n }\n }\n }\n }\n`","\nexport default function formatPhoneNumber(phoneNumber) {\n\t//return 'tel:'+phoneNumber.replace(/\\s+/g, '').replace(/(.)(\\d{4})(\\d)/, '+44 ($1)$2 $3');\n return 'tel:'+phoneNumber.replace(/\\s+/g, '').replace(/(.)(\\d{4})(\\d)/, '+44$2$3');\n}\n","var React = require('react');\n\nfunction IcBigChevronRight (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"m8.334 20 8-8-8-8L7 5.333 13.668 12 7 18.667 8.334 20z\",\"fill\":\"currentColor\"}));\n}\n\nIcBigChevronRight.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\"};\n\nmodule.exports = IcBigChevronRight;\n\nIcBigChevronRight.default = IcBigChevronRight;\n"],"names":["AdditionalDownloads","title","downloads","data","useStaticQuery","length","className","map","document","i","wp","acfOptionsOptions","options","widgetDownloads","optionDownload","download","key","href","url","rel","extension","Conveyancers","location","page","allWpPage","nodes","additionalContent","conveyancers","conveyancersAdditionalContent","additionalDownloads","allWpConveyancer","sort","a","b","localeCompare","useState","filteredConveyancers","setFilteredConveyancers","pageNumber","setPageNumber","search","representation","formValues","setFormValues","useEffect","state","forEach","conveyancer","includeThisItem","match","toUpperCase","postcodeMatch","nameMatch","conveyancerPostcode","indexOf","push","offset","slice","getPagination","useCallback","items","numPages","Math","floor","pages","Link","to","uri","post","widget","layout","content","onSubmit","event","preventDefault","type","name","autoComplete","placeholder","value","onChange","newValues","target","dangerouslySetInnerHTML","__html","item","representations","conveyancerSra","conveyancerPhone","formatPhoneNumber","conveyancerEmail","conveyancerAddress","downloadsTitle","widgets","pageWidgets","phoneNumber","replace","React","IcBigChevronRight","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""}