|
@ -88,15 +88,23 @@ function MaterialCommunityIconsCustom({ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function CityPicker({ name }) { |
|
|
function CityPicker({ name }) { |
|
|
const { values } = useFormikContext(); |
|
|
|
|
|
|
|
|
const [items, setItems] = useState([]); |
|
|
|
|
|
const [isInitialRender, setIsInitialRender] = useState(true); |
|
|
|
|
|
|
|
|
|
|
|
const { values, setValues } = useFormikContext(); |
|
|
|
|
|
|
|
|
const state = values["state"]; |
|
|
const state = values["state"]; |
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
|
state && setItems(statesToCities[state].cities); |
|
|
|
|
|
|
|
|
if (isInitialRender) { |
|
|
|
|
|
state && setItems(statesToCities[state].cities); |
|
|
|
|
|
setIsInitialRender(false); |
|
|
|
|
|
} else { |
|
|
|
|
|
state && setItems(statesToCities[state].cities); |
|
|
|
|
|
setValues({ ...values, city: "" }); |
|
|
|
|
|
} |
|
|
}, [state]); |
|
|
}, [state]); |
|
|
|
|
|
|
|
|
const [items, setItems] = useState([]); |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
return ( |
|
|
<SearchablePicker |
|
|
<SearchablePicker |
|
|
name={name} |
|
|
name={name} |
|
@ -241,8 +249,7 @@ export default function UpdateUserInfoScreen({ route, navigation }) { |
|
|
.required("O nome é obrigatório") |
|
|
.required("O nome é obrigatório") |
|
|
.matches(/[a-zA-Z]/, "O nome só pode conter letras"), |
|
|
.matches(/[a-zA-Z]/, "O nome só pode conter letras"), |
|
|
state: Yup.string().required("O estado é obrigatório"), |
|
|
state: Yup.string().required("O estado é obrigatório"), |
|
|
city: Yup.string().required("A cidade é obrigatória"), |
|
|
|
|
|
institutionName: Yup.string().required("A instituição é obrigatória"), |
|
|
|
|
|
|
|
|
city: Yup.string().required("A cidade é obrigatória") |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
const passwordSchema = Yup.object().shape({ |
|
|
const passwordSchema = Yup.object().shape({ |
|
|