Index: src/stock-on-hand-mobile/pages/program-select.jsx =================================================================== diff -u -N -rd337a0ac836544c6a7201f924878e2fd5f88370e -r7f9ffae3458e2f9994249398a1d526a3cbe861d6 --- src/stock-on-hand-mobile/pages/program-select.jsx (.../program-select.jsx) (revision d337a0ac836544c6a7201f924878e2fd5f88370e) +++ src/stock-on-hand-mobile/pages/program-select.jsx (.../program-select.jsx) (revision 7f9ffae3458e2f9994249398a1d526a3cbe861d6) @@ -17,24 +17,48 @@ import { useSelector } from 'react-redux'; import RadioButton from '../../react-components/buttons/radio-button'; import Select from '../../react-components/inputs/select'; +import InputWithSuggestions from '../../react-components/inputs/input-with-suggestions'; const ProgramSelect = ({ offlineService }) => { - const facility = useSelector(state => state[`facilitiesStockOnHand`][`userHomeFacilityStockOnHand`]); - - const programs = facility.supportedPrograms.map(({ id, name }) => ({ value: id, name })); + const convertIntoSelectOptions = (values) => { + return values.map(({ id, name }) => ({ value: id, name })); + }; - const menu = document.getElementsByClassName('header ng-scope')[0]; + const facility = useSelector(state => state['facilitiesStockOnHand']['userHomeFacilityStockOnHand']); + const supervisedPrograms = useSelector(state => convertIntoSelectOptions(state['programsStockOnHand']['supervisedProgramsStockOnHand'])); + const supervisedFacilities = useSelector(state => state['facilitiesStockOnHand']['supervisedFacilitiesStockOnHand']); + const programs = convertIntoSelectOptions(facility.supportedPrograms); const [facilityId, setFacilityId] = useState(null); const [programId, setProgramId] = useState(null); - const [programName, setProgramName] = useState(null); const [facilityType, setFacilityType] = useState('MyFacility'); + const [supervisedFacilitiesOptions, setSupervisedFacilitiesOptions] = useState([]); - const radioChangeHandler = e => setFacilityType(e.target.value); + const radioChangeHandler = (e) => { + if (facilityType !== e.target.value) { + if (e.target.value == 'MyFacility') { + setFacilityId(facility.id); + } else { + setFacilityId(null); + } + setFacilityType(e.target.value); + setProgramId(null); + } + }; - useEffect(() => menu.style.display = '', [menu]); + const supervisedProgramsHandler = (value) => { + setProgramId(value); + setSupervisedFacilitiesOptions(supervisedFacilities[value]); + }; + const menu = document.getElementsByClassName('header ng-scope')[0]; + + useEffect(() => { + setFacilityId(facility.id); + menu.style.display = ''; + }, [menu, programId]); + return ( <>