@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.
44 lines (38 loc) • 1.1 kB
JavaScript
import { convertHexToRgba } from "@kiwicom/orbit-design-tokens";
import { TOKENS, TYPE_OPTIONS } from "../consts";
import { BUTTON_STATES } from "../../primitives/ButtonPrimitive/common/consts";
import getButtonTypeToken from "./getButtonTypeToken";
const opacity = {
[TYPE_OPTIONS.PRIMARY]: 15,
[TYPE_OPTIONS.SECONDARY]: 8,
[TYPE_OPTIONS.CRITICAL]: 15,
[TYPE_OPTIONS.WHITE]: 8,
[TYPE_OPTIONS.PRIMARY_SUBTLE]: 8,
[TYPE_OPTIONS.CRITICAL_SUBTLE]: 8,
[TYPE_OPTIONS.BUNDLE_BASIC]: 15,
[TYPE_OPTIONS.BUNDLE_MEDIUM]: 15,
[TYPE_OPTIONS.BUNDLE_TOP]: 15
};
const getButtonBoxShadow = ({
state,
disabled,
theme,
type
}) => {
const wrappedButtonTypeToken = name => getButtonTypeToken({
name,
type,
theme
});
if (disabled) {
return null;
}
if (state === BUTTON_STATES.ACTIVE) {
return `inset 0 0 6px 3px ${convertHexToRgba(theme.orbit.paletteInkNormal, opacity[type])};`;
}
if (state === BUTTON_STATES.FOCUS) {
return `0 0 0 3px ${wrappedButtonTypeToken(TOKENS.borderColorButtonFocus)}`;
}
return null;
};
export default getButtonBoxShadow;