FixTriggerRender.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import React, { useState, useCallback, useMemo } from 'react';
  2. import { DatePicker, Button, Icon, Space } from '../../../index';
  3. export default function Demo() {
  4. const [date, setDate] = useState([]);
  5. const onChange = useCallback(date => {
  6. setDate(date);
  7. console.log(date);
  8. }, []);
  9. const onClear = useCallback(e => {
  10. e && e.stopPropagation();
  11. setDate(null);
  12. }, []);
  13. const closeIcon = useMemo(() => (date ? <Icon type="close" onClick={onClear} /> : <Icon type="chevron_down" />), [date]);
  14. return (
  15. <Space>
  16. <DatePicker
  17. type="dateTimeRange"
  18. onChange={onChange}
  19. value={date}
  20. triggerRender={({ placeholder }) => (
  21. <Button theme={'light'} icon={closeIcon} iconPosition={'right'}>
  22. {(date && String(date)) || placeholder}
  23. </Button>
  24. )}
  25. />
  26. <DatePicker
  27. type="dateRange"
  28. motion={false}
  29. triggerRender={({ placeholder }) => <Button theme={'light'}>{placeholder}</Button>}
  30. />
  31. </Space>
  32. );
  33. }