CustomInputRender.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import React from 'react';
  2. const CustomInputRender = (props) => {
  3. const { detailProps } = props;
  4. const { clearContextNode, uploadNode, inputNode, sendNode, onClick } = detailProps;
  5. // 清空按钮
  6. const styledClearNode = clearContextNode
  7. ? React.cloneElement(clearContextNode, {
  8. className: `!rounded-full !bg-gray-100 hover:!bg-red-500 hover:!text-white flex-shrink-0 transition-all ${clearContextNode.props.className || ''}`,
  9. style: {
  10. ...clearContextNode.props.style,
  11. width: '32px',
  12. height: '32px',
  13. minWidth: '32px',
  14. padding: 0,
  15. display: 'flex',
  16. alignItems: 'center',
  17. justifyContent: 'center',
  18. }
  19. })
  20. : null;
  21. // 发送按钮
  22. const styledSendNode = React.cloneElement(sendNode, {
  23. className: `!rounded-full !bg-purple-500 hover:!bg-purple-600 flex-shrink-0 transition-all ${sendNode.props.className || ''}`,
  24. style: {
  25. ...sendNode.props.style,
  26. width: '32px',
  27. height: '32px',
  28. minWidth: '32px',
  29. padding: 0,
  30. display: 'flex',
  31. alignItems: 'center',
  32. justifyContent: 'center',
  33. }
  34. });
  35. return (
  36. <div className="p-2 sm:p-4">
  37. <div
  38. className="flex items-center gap-2 sm:gap-3 p-2 bg-gray-50 rounded-xl sm:rounded-2xl shadow-sm hover:shadow-md transition-shadow"
  39. style={{ border: '1px solid var(--semi-color-border)' }}
  40. onClick={onClick}
  41. >
  42. {/* 清空对话按钮 - 左边 */}
  43. {styledClearNode}
  44. <div className="flex-1">
  45. {inputNode}
  46. </div>
  47. {/* 发送按钮 - 右边 */}
  48. {styledSendNode}
  49. </div>
  50. </div>
  51. );
  52. };
  53. export default CustomInputRender;