Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 

121 rader
3.4 KiB

  1. import React from "react";
  2. // nodejs library that concatenates classes
  3. import classNames from "classnames";
  4. // nodejs library to set properties for components
  5. import PropTypes from "prop-types";
  6. // @material-ui/core components
  7. import { makeStyles } from "@material-ui/core/styles";
  8. import makeStyles from "@material-ui/core/styles/makeStyles";
  9. import Button from "@material-ui/core/Button";
  10. // @material-ui/icons
  11. // core components
  12. import Cardstyles from "assets/jss/nextjs-material-kit/components/cardStyle.js";
  13. import CardBodystyles from "assets/jss/nextjs-material-kit/components/cardBodyStyle.js";
  14. import CardFooterstyles from "assets/jss/nextjs-material-kit/components/cardFooterStyle.js";
  15. import CardHeaderstyles from "assets/jss/nextjs-material-kit/components/cardHeaderStyle.js";
  16. import buttonStyle from "assets/jss/nextjs-material-kit/components/buttonStyle.js";
  17. const CarduseStyles = makeStyles(Cardstyles);
  18. const CardBodyuseStyles = makeStyles(CardBodystyles);
  19. const CardFooteruseStyles = makeStyles(CardFooterstyles);
  20. const CardHeaderuseStyles = makeStyles(CardHeaderstyles);
  21. const makeComponentStyles = makeStyles(() => ({
  22. ...buttonStyle
  23. }));
  24. async function Card(props) {
  25. const classes = CarduseStyles();
  26. const { className, children, plain, carousel, ...rest } = props;
  27. const cardClasses = classNames({
  28. [classes.card]: true,
  29. [classes.cardPlain]: plain,
  30. [classes.cardCarousel]: carousel,
  31. [className]: className !== undefined
  32. });
  33. return (
  34. <div className={cardClasses} {...rest}>
  35. {children}
  36. </div>
  37. );
  38. }
  39. async function CardBody(props) {
  40. const classes = CardBodyuseStyles();
  41. const { className, children, ...rest } = props;
  42. const cardBodyClasses = classNames({
  43. [classes.cardBody]: true,
  44. [className]: className !== undefined
  45. });
  46. return (
  47. <div className={cardBodyClasses} {...rest}>
  48. {children}
  49. </div>
  50. );
  51. }
  52. async function CardFooter(props) {
  53. const classes = CardFooteruseStyles();
  54. const { className, children, ...rest } = props;
  55. const cardFooterClasses = classNames({
  56. [classes.cardFooter]: true,
  57. [className]: className !== undefined
  58. });
  59. return (
  60. <div className={cardFooterClasses} {...rest}>
  61. {children}
  62. </div>
  63. );
  64. }
  65. async function CardHeader(props) {
  66. const classes = CardHeaderuseStyles();
  67. const { className, children, color, plain, ...rest } = props;
  68. const cardHeaderClasses = classNames({
  69. [classes.cardHeader]: true,
  70. [classes[color + "CardHeader"]]: color,
  71. [classes.cardHeaderPlain]: plain,
  72. [className]: className !== undefined
  73. });
  74. return (
  75. <div className={cardHeaderClasses} {...rest}>
  76. {children}
  77. </div>
  78. );
  79. }
  80. Card.propTypes = {
  81. className: PropTypes.string,
  82. plain: PropTypes.bool,
  83. carousel: PropTypes.bool,
  84. children: PropTypes.node
  85. };
  86. CardBody.propTypes = {
  87. className: PropTypes.string,
  88. children: PropTypes.node
  89. };
  90. CardFooter.propTypes = {
  91. className: PropTypes.string,
  92. children: PropTypes.node
  93. };
  94. CardHeader.propTypes = {
  95. className: PropTypes.string,
  96. color: PropTypes.oneOf(["warning", "success", "danger", "info", "primary"]),
  97. plain: PropTypes.bool,
  98. children: PropTypes.node
  99. };
  100. module.exports = {
  101. Card: Card,
  102. CardBody: CardBody,
  103. CardFooter: CardFooter,
  104. CardHeader: CardHeader,
  105. };