import * as WebBrowser from 'expo-web-browser'; import * as React from 'react'; import { Div, Button, Text, Tag, Toggle, Icon } from 'react-native-magnus'; import { ScrollView } from 'react-native-gesture-handler'; import { InputItem } from '@ant-design/react-native'; import { useTranslation } from 'react-i18next'; import { useRoute } from '@react-navigation/native'; import { useRequest, useToggle, useBoolean, useCreation } from '@umijs/hooks'; import useModel from 'flooks'; import AddressModel from './model'; // detail模块通用方法 import Header from '../../components/Header'; const AddressTag = new Map([ ['HOME', { name: '家', key: 'HOME' }], ['COMPANY', { name: '公司', key: 'COMPANY' }], ['SCHOOL', { name: '学校', key: 'SCHOOL' }], ]); export default function EditAddressScreen({ navigation }) { const { t } = useTranslation(); const route = useRoute(); const { params } = route; const { id, locationInfo } = params || { id: 0 }; const { saveAddress } = useModel(AddressModel, []); const [addressInfo, setaddressInfo] = React.useState({}); const [phone, setphone] = React.useState(''); const [name, setName] = React.useState(''); const [addressName, setaddressName] = React.useState(''); const [number, setnumber] = React.useState(''); const isDefaultEvent = useBoolean(); const [addressTag, setaddressTag] = React.useState(''); const [longitude, setlongitude] = React.useState(''); const [latitude, setlatitude] = React.useState(''); const sexEvent = useToggle('先生', '女士'); React.useEffect(() => { if (locationInfo) { const { poiaddress, poiname, latlng } = locationInfo; setaddressName(poiaddress + poiname); setlatitude(latlng.lat); setlongitude(latlng.lng); } }, [locationInfo]); const canSub = useCreation(() => { if (phone && name && addressName && number && longitude && latitude) { return true; } else { return false; } }, [ phone, name, addressName, number, isDefaultEvent.state, sexEvent.state, addressTag, longitude, latitude, ]); useRequest( () => { if (id) { return `/address/get/${id}`; } else { return Promise.resolve(null); } }, { refreshDeps: [id], onSuccess: (result) => { if (result) { setaddressInfo(result); } else { setaddressInfo({}); } }, } ); React.useEffect(() => { if (addressInfo.id) { setName(addressInfo.name); setphone(addressInfo.phone); setaddressName(addressInfo.addressName); setnumber(addressInfo.number); isDefaultEvent.toggle(addressInfo.isDefault); if (addressInfo.addressTag) { setaddressTag(addressInfo.addressTag); } setlatitude(addressInfo.latitude); setlongitude(addressInfo.longitude); } }, [addressInfo]); return ( <>
{t('xing-ming')}
{t('shou-ji-hao')} {t('men-pai-hao')}
{t('biao-qian')} {[...AddressTag.keys()].map((key) => { const isChoose = key === addressTag; return ( setaddressTag(key)} > {AddressTag.get(key).name} ); })}
isDefaultEvent.toggle()} bg="gray200" circleBg="brand500" activeBg="brand500" h={30} w={60} /> {t('she-wei-mo-ren')}
); }