Thermometer.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import IconFont from '@/new-components/common/Icon';
  2. import { Dropdown, Slider } from 'antd';
  3. import React, { useContext } from 'react';
  4. import { MobileChatContext } from '../';
  5. const Thermometer: React.FC = () => {
  6. const { temperature, setTemperature } = useContext(MobileChatContext);
  7. // temperature变化;
  8. const onChange = (value: any) => {
  9. if (isNaN(value)) {
  10. return;
  11. }
  12. setTemperature(value);
  13. };
  14. return (
  15. <Dropdown
  16. trigger={['click']}
  17. dropdownRender={() => {
  18. return (
  19. <div className='flex h-28 bg-white dark:bg-[rgba(255,255,255,0.5)] items-center justify-center rounded-xl py-3'>
  20. <Slider
  21. defaultValue={0.5}
  22. max={1.0}
  23. min={0.0}
  24. step={0.1}
  25. vertical={true}
  26. onChange={onChange}
  27. value={temperature}
  28. />
  29. </div>
  30. );
  31. }}
  32. placement='top'
  33. >
  34. <div className='flex items-center justify-between border rounded-xl bg-white dark:bg-black w-14 p-2 flex-shrink-0'>
  35. <IconFont type='icon-icons-temperature' className='text-sm' />
  36. <span className='text-xs font-medium'>{temperature}</span>
  37. </div>
  38. </Dropdown>
  39. );
  40. };
  41. export default Thermometer;