import PropTypes from "prop-types";
import notificationBadgeAriaProps from "./NotificationBadge.ariaPropTypes";
import automationProps, {
  automationPropsName,
} from "../../propTypes/automation.propTypes";
import customClassProps, {
  customClassPropName,
} from "../../propTypes/customClassName.propTypes";
import tagAttributeProps, {
  tagAttributePropsName,
} from "../../propTypes/htmlAttributes.propTypes";
import defaultCustomIds from "./NotificationBadge.customIds";
import notificationBadgeConstants from "./NotificationBadge.constantProps";
export default {
  text: PropTypes.string,
  count: PropTypes.number,
  children: PropTypes.any,

  size: PropTypes.oneOf([
    notificationBadgeConstants.size.tiny,
    notificationBadgeConstants.size.xsmall,
    notificationBadgeConstants.size.small,
    notificationBadgeConstants.size.medium,
    notificationBadgeConstants.size.large,
  ]),
  onClick: PropTypes.func,
  shape: PropTypes.oneOf([
    notificationBadgeConstants.shape.circle,
    notificationBadgeConstants.shape.oval,
    notificationBadgeConstants.shape.square,
  ]),

  active: PropTypes.bool,

  icon: PropTypes.any,

  ...automationProps,
  ...notificationBadgeAriaProps,
  ...customClassProps,
  ...tagAttributeProps,
};

export const defaultProps = {
  size: notificationBadgeConstants.size.medium,
  shape: notificationBadgeConstants.shape.circle,
  active: true,

  [automationPropsName]: defaultCustomIds,
  [customClassPropName]: {},
  [tagAttributePropsName]: {},
};

export const propsDescription = {
  size: "For use specify the font size of the content",
  count: "To specify the count",
  shape: "For use specify the shape of notification badge element",
  active: "For use specify the hightlight of active state",
  text: "For use specify the content ",
  children: "For use render react-component or html as child",
  icon: "For use specify the icon  ",
  onClick: "For use specify click event support for notification badge element",
};
