{"version":3,"file":"UnauthedSupplierSearch-CykxW3vW.js","sources":["../../../app/javascript/components/search/SearchInput.jsx","../../../app/javascript/components/search/SharedSupplierSearch.jsx","../../../app/javascript/components/search/prop_shapes/api_v2_supplier_result.js","../../../app/javascript/components/search/StatesContext.js","../../../app/javascript/components/search/UnauthedSearchResults.jsx","../../../app/javascript/components/search/UnauthedSupplierSearch.jsx"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport SearchIcon from './SearchIcon'\n\nconst SearchInput = ({ currentValue, handleChange, placeholder }) => {\n return (\n
\n \n \n
\n )\n}\n\nSearchInput.propTypes = {\n currentValue: PropTypes.string.isRequired,\n handleChange: PropTypes.func.isRequired,\n placeholder: PropTypes.string\n}\n\nexport default SearchInput\n","import React, { useCallback, useState } from 'react'\nimport SearchInput from './SearchInput'\nimport { api, addCsrfHeader } from 'components/api'\nimport { supplierSearchPath } from 'components/routes/api'\nimport { debounce } from 'lodash-es'\nimport PropTypes from 'prop-types'\n\nconst supplierSearchByName = name => {\n const request = {\n url: supplierSearchPath(),\n headers: addCsrfHeader({}, document),\n params: { query: name }\n }\n return api.get(request)\n}\n\nconst SharedSupplierSearch = ({ SearchResultsComponent, placeholder }) => {\n const [currentValue, setCurrentValue] = useState('')\n // apiData will be null if a response is pending\n const [apiData, setApiData] = useState(null)\n\n const responseSetter = async name => {\n const apiResponse = await supplierSearchByName(name)\n return setApiData(apiResponse?.data || [])\n }\n\n const debouncedQuery = useCallback(debounce(responseSetter, 300), [])\n\n const handleChange = e => {\n setCurrentValue(e.target.value || '')\n setApiData(null)\n debouncedQuery(e.target.value || '')\n }\n\n const renderSearchResultsIfValue = (apiData, currentValue) =>\n currentValue.length > 0\n ? ()\n : null\n\n return (\n <>\n \n {renderSearchResultsIfValue(apiData, currentValue)}\n \n )\n}\n\nSharedSupplierSearch.propTypes = {\n SearchResultsComponent: PropTypes.func.isRequired,\n placeholder: PropTypes.string\n}\n\nexport default SharedSupplierSearch\n","// TODO: CONVERT TO TYPESCRIPT\nimport PropTypes from 'prop-types'\n\nexport default PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string,\n location: PropTypes.string,\n slug: PropTypes.string,\n states: PropTypes.arrayOf(PropTypes.string),\n national: PropTypes.bool,\n page: PropTypes.string\n})\n","import { createContext } from 'react'\n\n// Similar to StatesContext used for supplier_search,\n// but since we're only interested in mapping state abbreviations => full state names\n// we only need to pass a hash, rather than an array.\nconst StatesContext = createContext({})\n\nexport default StatesContext\n","import React, { useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport SupplierResultShape from './prop_shapes/api_v2_supplier_result'\nimport LoadingDots from '../LoadingDots'\nimport StatesContext from './StatesContext'\nimport { appendQueryToPath } from '../utils'\n\nfunction serviceAreaText (states, national) {\n const nationwide = 'Nationwide'\n if (national) {\n return nationwide\n } else if (!states || states.length === 0) {\n return ''\n } else if (states.length === 1) {\n const stateLookup = useContext(StatesContext)\n return stateLookup[states[0]]\n } else if (states.length < 50) {\n return 'Select States'\n } else if (states.length >= 50) {\n return nationwide\n }\n}\n\nconst HeaderContent = ({ resultsCount }) => {\n const resultPluralForm = resultsCount === 1 ? 'Result' : 'Results'\n const resultsCountTitle = {resultsCount} {resultPluralForm}\n const serviceAreaTitle = resultsCount === 0 ? null : Service Area\n return (\n <>\n {resultsCountTitle}\n {serviceAreaTitle}\n \n )\n}\n\nHeaderContent.propTypes = {\n resultsCount: PropTypes.number\n}\n\nconst UnauthedSearchResultsHeader = ({ searchResults }) => {\n const headerContainer = (searchResults === null)\n ? \n : \n\n return (\n
\n {headerContainer}\n
\n )\n}\n\nUnauthedSearchResultsHeader.propTypes = {\n searchResults: PropTypes.arrayOf(SupplierResultShape)\n}\n\nconst UnauthedSearchResultsFooter = () => (\n
\n \n \n Sign Up\n or\n Log In\n to search by keyword, commodity, or business designation\n \n
\n)\n\nconst SupplierServiceArea = ({ states, national }) => {\n const serviceArea = serviceAreaText(states, national)\n if (serviceArea === '') { return null }\n return (\n
\n
\n {serviceArea}\n
\n
\n )\n}\n\nSupplierServiceArea.propTypes = {\n states: PropTypes.arrayOf(PropTypes.string),\n national: PropTypes.bool\n}\n\nconst SupplierSearchResult = ({ result, trackingData }) => {\n const { page, name, states, national } = result || {}\n const trackingParams = {\n unauthed_home_page_search_term: trackingData.searchTerm,\n unauthed_home_page_result_count: trackingData.resultCount\n }\n const trackedLink = appendQueryToPath(page, trackingParams)\n return (\n \n
\n
\n {name}\n
\n \n
\n
\n )\n}\n\nSupplierSearchResult.propTypes = {\n result: SupplierResultShape,\n trackingData: PropTypes.shape({\n resultCount: PropTypes.number.isRequired,\n searchTerm: PropTypes.string.isRequired\n })\n}\n\nconst SupplierSearchResults = ({ searchResults, searchTerm }) => {\n if (searchResults === null) { return null }\n const resultCount = searchResults.length\n const trackingData = { searchTerm, resultCount }\n return (\n
\n {\n searchResults.map(result => (\n \n ))\n }\n
\n )\n}\n\nSupplierSearchResults.propTypes = {\n searchResults: PropTypes.arrayOf(SupplierResultShape),\n searchTerm: PropTypes.string\n}\n\nconst UnauthedSearchResults = ({ searchResults, supplierName }) => {\n if (supplierName.length === 0) return null\n\n return (\n
\n \n \n \n
\n )\n}\n\nUnauthedSearchResults.propTypes = {\n searchResults: PropTypes.arrayOf(SupplierResultShape),\n supplierName: PropTypes.string\n}\n\nexport default UnauthedSearchResults\n","import React from 'react'\nimport SharedSupplierSearch from './SharedSupplierSearch'\nimport UnauthedSearchResults from './UnauthedSearchResults'\nimport StatesContext from './StatesContext'\nimport PropTypes from 'prop-types'\n\nfunction stateLookup (stateList) {\n return Object.fromEntries(stateList.map(state => [state.code, state.name]))\n}\n\nconst UnauthedSupplierSearch = ({ stateList }) => {\n return (\n
\n \n \n \n
\n )\n}\n\nUnauthedSupplierSearch.propTypes = {\n stateList: PropTypes.array.isRequired\n}\n\nexport default UnauthedSupplierSearch\n"],"names":["SearchInput","currentValue","handleChange","placeholder","jsxs","jsx","SearchIcon","PropTypes","supplierSearchByName","name","request","supplierSearchPath","addCsrfHeader","api","SharedSupplierSearch","SearchResultsComponent","setCurrentValue","useState","apiData","setApiData","responseSetter","apiResponse","debouncedQuery","useCallback","debounce","e","renderSearchResultsIfValue","Fragment","SearchResultShape","StatesContext","createContext","serviceAreaText","states","national","nationwide","useContext","HeaderContent","resultsCount","resultPluralForm","resultsCountTitle","serviceAreaTitle","UnauthedSearchResultsHeader","searchResults","headerContainer","LoadingDots","SupplierResultShape","UnauthedSearchResultsFooter","SupplierServiceArea","serviceArea","SupplierSearchResult","result","trackingData","page","trackingParams","trackedLink","appendQueryToPath","SupplierSearchResults","searchTerm","resultCount","UnauthedSearchResults","supplierName","stateLookup","stateList","state","UnauthedSupplierSearch"],"mappings":"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"}