field.tsx 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import withField from './hoc/withField';
  2. // Basic component
  3. import Input from '../input/index';
  4. import TextArea from '../input/textarea';
  5. import InputNumber from '../inputNumber/index';
  6. import Select from '../select/index';
  7. import { Checkbox } from '../checkbox/index';
  8. import CheckboxGroup from '../checkbox/checkboxGroup';
  9. import { Radio } from '../radio/index';
  10. import RadioGroup from '../radio/radioGroup';
  11. import DatePicker from '../datePicker/index';
  12. import Switch from '../switch/index';
  13. import Slider from '../slider/index';
  14. import TimePicker from '../timePicker/index';
  15. import TreeSelect from '../treeSelect/index';
  16. import Cascader from '../cascader/index';
  17. import Rating from '../rating/index';
  18. import AutoComplete from '../autoComplete/index';
  19. import Upload from '../upload/index';
  20. import TagInput from '../tagInput/index';
  21. import { FormCheckboxType, FormRadioType, FormSelectType } from './interface';
  22. const FormInput = withField(Input, { maintainCursor: true });
  23. const FormInputNumber = withField(InputNumber, { maintainCursor: true });
  24. const FormTextArea = withField(TextArea, { maintainCursor: true });
  25. const FormSelect = withField(Select) as typeof FormSelectType;
  26. // Select after withField is a new Component, without the Option attribute, it needs to be manually assigned once
  27. FormSelect.Option = Select.Option;
  28. FormSelect.OptGroup = Select.OptGroup;
  29. const FormCheckboxGroup = withField(CheckboxGroup);
  30. const FormCheckbox = withField(Checkbox, {
  31. valueKey: 'checked',
  32. valuePath: 'target.checked',
  33. shouldInject: false,
  34. }) as typeof FormCheckboxType;
  35. const FormRadioGroup = withField(RadioGroup, { valuePath: 'target.value' });
  36. const FormRadio = withField(Radio, {
  37. valueKey: 'checked',
  38. valuePath: 'target.checked',
  39. shouldInject: false,
  40. }) as typeof FormRadioType;
  41. const FormDatePicker = withField(DatePicker);
  42. const FormSwitch = withField(Switch, { valueKey: 'checked' });
  43. const FormSlider = withField(Slider);
  44. const FormTimePicker = withField(TimePicker);
  45. const FormTreeSelect = withField(TreeSelect);
  46. const FormCascader = withField(Cascader);
  47. const FormRating = withField(Rating);
  48. const FormAutoComplete = withField(AutoComplete, { valueKey: 'value', onKeyChangeFnName: 'onChange' });
  49. const FormUpload = withField(Upload, { valueKey: 'fileList', valuePath: 'fileList', onKeyChangeFnName: 'onChange' });
  50. const FormTagInput = withField(TagInput);
  51. export {
  52. FormInput,
  53. FormInputNumber,
  54. FormTextArea,
  55. FormSelect,
  56. FormCheckboxGroup,
  57. FormCheckbox,
  58. FormRadioGroup,
  59. FormRadio,
  60. FormDatePicker,
  61. FormSwitch,
  62. FormSlider,
  63. FormTimePicker,
  64. FormTreeSelect,
  65. FormCascader,
  66. FormRating,
  67. FormAutoComplete,
  68. FormUpload,
  69. FormTagInput
  70. };