import React, { useEffect, useState } from 'react'; import type { IPointLayer, IPointLayerConfig } from '../../typings'; import { Form, Input, Select } from 'antd'; import FieldSelect from '../FieldSelect'; import useCommonHook from './components/commonHook'; import LayerTypeSelect from './components/LayerTypeSelect'; import RangeWrapper from './components/RangeWrapper/index'; import ColorWrapper from './components/ColorWrapper/index'; import LayerBlend from './components/LayerBlend'; import { POINT_TO_SQUARE_LIMIT, POINT_TYPE_LIST } from '../../constants'; import FormSlider from './components/FormSlider'; import { FORM_LAYOUT } from './common'; import GeoFieldWrapper from './components/GeoFieldWrapper'; interface IProps { layer: IPointLayer; onChange: (newLayer: IPointLayer) => void; } const PointLayer = ({ layer, onChange }: IProps) => { const [form] = Form.useForm(); const { targetDataset, targetDatasetFields, onFormChange } = useCommonHook( form, layer, onChange, ); const [disableRange, setDisableRange] = useState(false); useEffect(() => { const disable = (targetDataset?.data.length ?? 0) > POINT_TO_SQUARE_LIMIT; setDisableRange(disable); if (disable) { form.setFieldsValue({ radius: { value: 1, rangeValue: [1, 10], field: null, }, }); } }, [form, targetDataset?.data.length]); useEffect(() => { form.setFieldsValue(layer.config); }, [form, layer.config]); return (
) : ( )} ); }; export default PointLayer;