import React, { ReactNode } from "react";
import classNames from "classnames";
import { Box, BoxProps } from "../Box";
import { bem } from "../../utilities/bem";
import { STATUS_VARIANT } from "../../types";
import { Flex } from "../Flex";
import { Icon, ICON_TYPE } from "../Icon";
import { Text } from "../Text";
const cn = "StatusLabel";
export enum STATUS_LABEL_ICON_POSITION {
LEFT = "left",
RIGHT = "right",
}
export interface StatusLabelProps extends BoxProps {
icon?: ICON_TYPE;
iconPosition?: STATUS_LABEL_ICON_POSITION;
iconFontSize?: string;
variant?: STATUS_VARIANT;
colorLabel?: boolean;
removeIcon?: boolean;
}
type StatusIconProps = {
icon: ICON_TYPE;
iconPosition: STATUS_LABEL_ICON_POSITION;
iconFontSize: string;
variant: STATUS_VARIANT;
};
type StatusTextProps = {
children: ReactNode;
variant: STATUS_VARIANT;
colorLabel?: boolean;
};
const StatusIcon = ({
icon,
iconPosition,
iconFontSize,
variant,
}: StatusIconProps) => (
);
const StatusText = ({ children, variant, colorLabel }: StatusTextProps) => (
{children}
);
export const StatusLabel = (props: StatusLabelProps) => {
const {
icon = ICON_TYPE.CIRCLE,
iconPosition = STATUS_LABEL_ICON_POSITION.LEFT,
iconFontSize = "60%",
variant = STATUS_VARIANT.DEFAULT,
colorLabel,
removeIcon,
className,
children,
...rest
} = props;
const iconProps = {
icon,
iconPosition,
iconFontSize,
variant,
};
if (removeIcon) {
return (
{children}
);
}
return (
{iconPosition === STATUS_LABEL_ICON_POSITION.LEFT && (
)}
{children}
{iconPosition === STATUS_LABEL_ICON_POSITION.RIGHT && (
)}
);
};