{"version":3,"file":"school_selector-D8cpKwGk.js","sources":["../../../client/app/bundles/Teacher/components/shared/school_selector.jsx"],"sourcesContent":["import React from 'react';\n\nimport LoadingIndicator from './loading_indicator.jsx';\nimport SchoolOption from './school_option';\n\nimport { requestGet, requestPost, } from '../../../../modules/request';\nimport { Input, NOT_LISTED, NO_SCHOOL_SELECTED, smallWhiteCheckIcon, } from '../../../Shared/index';\nimport useDebounce from '../../hooks/useDebounce';\n\nconst mapSearchSrc = `${process.env.CDN_URL}/images/onboarding/map-search.svg`\n\nconst DEBOUNCE_LENGTH = 500\nconst MINIMUM_SEARCH_LENGTH = 2\nconst WHOLE_SEARCH_IS_NUMBERS_REGEX = /^\\d+$/\n\nconst SchoolSelector = ({ selectSchool, showDismissSchoolSelectionReminderCheckbox, handleDismissSchoolSelectionReminder, disableSkipForNow}) => {\n const [search, setSearch] = React.useState('')\n const [schools, setSchools] = React.useState([])\n const [errors, setErrors] = React.useState({})\n const [loading, setLoading] = React.useState(false)\n const [showNotListedModal, setShowNotListedModal] = React.useState(false)\n const [unlistedSchoolName, setUnlistedSchoolName] = React.useState('')\n const [unlistedSchoolZipcode, setUnlistedSchoolZipcode] = React.useState('')\n const [dismissSchoolSelectionReminder, setDismissSchoolSelectionReminder] = React.useState(false)\n\n const debouncedSearch = useDebounce(search, DEBOUNCE_LENGTH);\n\n React.useEffect(() => {\n if (search.length >= MINIMUM_SEARCH_LENGTH) {\n setLoading(true)\n }\n }, [search])\n\n React.useEffect(() => {\n if (search.length < MINIMUM_SEARCH_LENGTH) { return }\n // if they're typing a zip code, don't search until the full zip code is entered\n if (search.match(WHOLE_SEARCH_IS_NUMBERS_REGEX) && search.length < 5) { return }\n\n searchForSchool()\n }, [debouncedSearch])\n\n function toggleDismissReminderCheckbox() { setDismissSchoolSelectionReminder(!dismissSchoolSelectionReminder) }\n\n function handleSkipClick() {\n if (dismissSchoolSelectionReminder) {\n handleDismissSchoolSelectionReminder()\n }\n selectSchool(NO_SCHOOL_SELECTED)\n }\n\n function handleNotListedClick() {\n setShowNotListedModal(true)\n }\n\n function onChangeUnlistedSchoolName(e) { setUnlistedSchoolName(e.target.value) }\n function onChangeUnlistedSchoolZipcode(e) { setUnlistedSchoolZipcode(e.target.value) }\n\n function submitSchoolNotListedInformation() {\n requestPost('/submit_unlisted_school_information', { school_name: unlistedSchoolName, school_zipcode: unlistedSchoolZipcode }, () => {\n selectSchool(NOT_LISTED)\n })\n }\n\n function searchForSchool() {\n requestGet(\n `${process.env.DEFAULT_URL}/schools?search=${search}`,\n (body) => {\n setSchools(body.data)\n setLoading(false)\n }\n )\n }\n\n function updateSearch(e) {\n setSearch(e.target.value)\n }\n\n const renderLoading = () => {\n return (\n
Search for your school above
\nPlease share your school name and ZIP code below. Quill will review and update our database.
\n \n \n