{"version":3,"file":"index-748a3c64.js","sources":["../../../../src/scripts/react-components/city-directory-listing/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes, { InferProps } from 'prop-types';\nimport { useFetch } from '../../hooks/useFetch';\nimport Pagination from '../pagination';\nimport Loader from '../listing-states/loader';\nimport Error from '../listing-states/error';\nimport {\n updateEndpointWithQueryString,\n getUrlParamValue,\n setUrlParamValue\n} from '../../helpers/queryString';\n\ninterface CityDirectoryListingResponse {\n items: {\n url: string;\n label: string;\n }[];\n totalPages: number;\n}\n\nfunction CityDirectoryListing({\n url,\n loadingLabel,\n noResultsMessage,\n noResultsKeywordMessage,\n noResultsAdditionalMessage,\n errorMessage,\n nextPageLabel,\n previousPageLabel,\n pageLabel\n}: InferProps) {\n const pageParam = getUrlParamValue('page');\n\n const [page, setPage] = useState(Number(pageParam) || 1);\n const [endpoint, setEndpoint] = useState(updateEndpointWithQueryString(url));\n const { data, error } = useFetch(endpoint);\n\n if (error) {\n return (\n \n );\n }\n\n if (!data) {\n return ;\n }\n\n const handlePageChange = (page: number) => {\n setPage(page);\n setUrlParamValue('page', page.toString());\n setEndpoint(updateEndpointWithQueryString(url));\n };\n\n return (\n <>\n {data.items.length < 1 ? (\n \n ) : (\n <>\n \n {data.totalPages > 1 && (\n \n )}\n \n )}\n \n );\n}\n\nCityDirectoryListing.propTypes = {\n url: PropTypes.string.isRequired,\n loadingLabel: PropTypes.string.isRequired,\n noResultsMessage: PropTypes.string.isRequired,\n noResultsKeywordMessage: PropTypes.string.isRequired,\n noResultsAdditionalMessage: PropTypes.string,\n errorMessage: PropTypes.string.isRequired,\n nextPageLabel: PropTypes.string.isRequired,\n previousPageLabel: PropTypes.string.isRequired,\n pageLabel: PropTypes.string.isRequired\n};\n\nexport default CityDirectoryListing;\n"],"names":["CityDirectoryListing","url","loadingLabel","noResultsMessage","noResultsKeywordMessage","noResultsAdditionalMessage","errorMessage","nextPageLabel","previousPageLabel","pageLabel","pageParam","getUrlParamValue","page","setPage","useState","endpoint","setEndpoint","updateEndpointWithQueryString","data","error","useFetch","React","Error","Loader","handlePageChange","setUrlParamValue","item","index","Pagination","PropTypes"],"mappings":"ubAoBA,SAASA,EAAqB,CAC5B,IAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,wBAAAC,EACA,2BAAAC,EACA,aAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,UAAAC,CACF,EAAsD,CAC9C,MAAAC,EAAYC,EAAiB,MAAM,EAEnC,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAS,OAAOJ,CAAS,GAAK,CAAC,EACjD,CAACK,EAAUC,CAAW,EAAIF,EAAS,SAAAG,EAA8BhB,CAAG,CAAC,EACrE,CAAE,KAAAiB,EAAM,MAAAC,CAAM,EAAIC,EAAuCL,CAAQ,EAEvE,GAAII,EAEA,OAAAE,EAAA,cAACC,EAAA,CACC,aAAAhB,EACA,iBAAAH,EACA,wBAAAC,EACA,UAAW,EAAA,CAAA,EAKjB,GAAI,CAACc,EACI,OAAAG,EAAA,cAACE,EAAO,CAAA,WAAYrB,CAAc,CAAA,EAGrC,MAAAsB,EAAoBZ,GAAiB,CACzCC,EAAQD,CAAI,EACKa,EAAA,OAAQb,EAAK,SAAU,CAAA,EAC5BI,EAAAC,EAA8BhB,CAAG,CAAC,CAAA,EAGhD,OAEKoB,EAAA,cAAAA,EAAA,SAAA,KAAAH,EAAK,MAAM,OAAS,EACnBG,EAAA,cAACC,EAAA,CACC,aAAAhB,EACA,iBAAAH,EACA,wBAAAC,EACA,2BAAAC,CAAA,GAIAgB,EAAA,cAAAA,EAAA,SAAA,KAAAA,EAAA,cAAC,KAAG,CAAA,UAAU,gCACXH,EAAK,MAAM,IAAI,CAACQ,EAAMC,IACrBN,EAAA,cAAC,KAAG,CAAA,IAAKM,EAAO,UAAU,8BAAA,EACvBN,EAAA,cAAA,IAAA,CAAE,KAAMK,EAAK,IAAK,UAAU,kBAAA,kBAC1B,OAAM,KAAAA,EAAK,KAAM,CACpB,CACF,CACD,CACH,EACCR,EAAK,WAAa,GACjBG,EAAA,cAACO,EAAA,CACC,YAAahB,EACb,WAAYM,EAAK,WACjB,aAAcM,EACd,cAAAjB,EACA,kBAAAC,EACA,UAAAC,CAAA,CAGN,CAAA,CAEJ,CAEJ,CAEAT,EAAqB,UAAY,CAC/B,IAAK6B,EAAU,OAAO,WACtB,aAAcA,EAAU,OAAO,WAC/B,iBAAkBA,EAAU,OAAO,WACnC,wBAAyBA,EAAU,OAAO,WAC1C,2BAA4BA,EAAU,OACtC,aAAcA,EAAU,OAAO,WAC/B,cAAeA,EAAU,OAAO,WAChC,kBAAmBA,EAAU,OAAO,WACpC,UAAWA,EAAU,OAAO,UAC9B"}