import { FC, useMemo, forwardRef, useImperativeHandle } from 'react' import { transformAddressOptions, showError } from '@/utils' import { useAddressListQuery } from '@/services/flow' import BasicCascaderField from '../BasicCascader' import { TreeItem } from '@/types' interface AddressPropsType { title?: string value?: string[] onChange?: (value: string[]) => void } const AddressField: FC> = forwardRef(({ title = '选择省市区', value = [], onChange }, ref) => { const { data = [], isError, error } = useAddressListQuery(null) const newProps = { title, value, onChange } if (isError) { showError(error) } const options: TreeItem[] = useMemo(() => { return transformAddressOptions(data) || [] }, [data.length]) useImperativeHandle(ref, () => ({ getData: () => data })) return ( <> ) }) export default AddressField