@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
45 lines (42 loc) • 1.82 kB
JavaScript
import * as React from "react";
import styled, { css } from "styled-components";
import { convertHexToRgba } from "@kiwicom/orbit-design-tokens";
import Text from "../Text";
import CheckCircle from "./CheckCircle";
import useTheme from "../hooks/useTheme";
import defaultTheme from "../defaultTheme";
import { WizardStepContext } from "./WizardContext";
export const StyledStepIconContainer = styled.div.withConfig({
displayName: "WizardStepIcon__StyledStepIconContainer",
componentId: "sc-nu4xfl-0"
})(["", ";"], ({
theme,
$disabled,
$glow
}) => css(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:", ";background:", ";box-shadow:", ";position:relative;top:-2px;svg{display:block;}"], theme.orbit.borderRadiusCircle, $disabled ? theme.orbit.paletteCloudNormalHover : theme.orbit.paletteProductNormal, $glow && `0 0 0 4px ${convertHexToRgba(theme.orbit.paletteProductNormal, 20)}`)); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
StyledStepIconContainer.defaultProps = {
theme: defaultTheme
};
const WizardStepIcon = () => {
const {
index,
status,
isCompact,
isActive
} = React.useContext(WizardStepContext);
const theme = useTheme();
return /*#__PURE__*/React.createElement(StyledStepIconContainer, {
$disabled: status === "disabled",
$glow: isActive && !isCompact
}, status === "completed" ? /*#__PURE__*/React.createElement(CheckCircle, {
ariaLabel: "completed",
size: "small",
customColor: theme.orbit.paletteProductNormal
}) : /*#__PURE__*/React.createElement(Text, {
as: "div",
type: status === "disabled" ? "primary" : "white",
size: "small",
align: "center"
}, typeof index === "number" ? index + 1 : null));
};
export default WizardStepIcon;