ButtonGroup.jsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import React from "react";
  2. import PropTypes from "prop-types";
  3. import { Button } from "antd";
  4. const ButtonGroup = ({ data }) => {
  5. const btnGroup = data?.btnGroup || [];
  6. const flex = {
  7. justifyContent: data?.flex?.justifyContent || "end",
  8. flexDirection: data?.flex?.flexDirection || "row",
  9. };
  10. const styles = {
  11. buttons: {
  12. background: "#fff",
  13. borderRadius: 6,
  14. display: "flex",
  15. justifyContent: flex.justifyContent,
  16. flexDirection: flex.flexDirection,
  17. },
  18. btn: {
  19. marginLeft: flex.justifyContent === "end" ? 10 : 0,
  20. marginRight: flex.justifyContent === "start" ? 10 : 0,
  21. marginBottom: flex.flexDirection === "column" ? 10 : 0,
  22. },
  23. };
  24. return (
  25. <div style={styles.buttons}>
  26. {btnGroup.length > 0 &&
  27. btnGroup.map((i, index) =>
  28. Boolean(i.hide)
  29. ? false
  30. : true &&
  31. (Boolean(i.text) ? (
  32. <Button
  33. key={`btnGroup-${index}`}
  34. onClick={i.onClick}
  35. style={styles.btn}
  36. {...i.props}
  37. >
  38. {i.icon} {i.text}
  39. </Button>
  40. ) : (
  41. <Button
  42. key={`btnGroup-${index}`}
  43. onClick={i.onClick}
  44. style={styles.btn}
  45. icon={i.icon}
  46. {...i.props}
  47. />
  48. ))
  49. )}
  50. </div>
  51. );
  52. };
  53. ButtonGroup.propTypes = {
  54. data: PropTypes.object.isRequired,
  55. };
  56. export default ButtonGroup;