@razorpay/blade
Version:
The Design System that powers Razorpay
14 lines (11 loc) • 2.29 kB
JavaScript
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import React__default, { useState } from 'react';
import styled from 'styled-components/native';
import { makeAccessible } from '../../../utils/makeAccessible/makeAccessible.native.js';
import 'react-native';
import { castNativeType } from '../../../utils/platform/castUtils.js';
import '../../BladeProvider/useTheme.js';
import { jsx } from 'react/jsx-runtime';
var StyledPressable=styled.Pressable({alignSelf:'center'});var StyledIconButton=React__default.forwardRef(function(_ref,ref){var _accessibilityProps$r;var Icon=_ref.icon,isDisabled=_ref.isDisabled,onClick=_ref.onClick,onBlur=_ref.onBlur,onFocus=_ref.onFocus,onMouseLeave=_ref.onMouseLeave,onMouseMove=_ref.onMouseMove,onPointerDown=_ref.onPointerDown,onPointerEnter=_ref.onPointerEnter,onTouchEnd=_ref.onTouchEnd,onTouchStart=_ref.onTouchStart,size=_ref.size,emphasis=_ref.emphasis,accessibilityLabel=_ref.accessibilityLabel,accessibilityProps=_ref.accessibilityProps;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isPressed=_useState2[0],setIsPressed=_useState2[1];var getIconColorToken=function getIconColorToken(){var emphasisColor=emphasis==='intense'?'gray':'staticWhite';if(isDisabled){return `interactive.icon.${emphasisColor}.disabled`;}var state=isPressed?'subtle':'muted';return `interactive.icon.${emphasisColor}.${state}`;};var iconColorToken=getIconColorToken();return jsx(StyledPressable,Object.assign({ref:ref,emphasis:emphasis,onPress:castNativeType(onClick),disabled:isDisabled,onPressIn:function onPressIn(){return setIsPressed(true);},onPressOut:function onPressOut(){return setIsPressed(false);},onBlur:onBlur,onFocus:onFocus,onMouseLeave:onMouseLeave,onMouseMove:onMouseMove,onPointerDown:onPointerDown,onPointerEnter:onPointerEnter,onTouchEnd:onTouchEnd,onTouchStart:onTouchStart},makeAccessible(Object.assign({},accessibilityProps,{label:accessibilityLabel!=null?accessibilityLabel:accessibilityProps==null?void 0:accessibilityProps.label,role:(_accessibilityProps$r=accessibilityProps==null?void 0:accessibilityProps.role)!=null?_accessibilityProps$r:'button'})),{children:jsx(Icon,{size:size,color:iconColorToken})}));});
export { StyledIconButton as default };
//# sourceMappingURL=StyledIconButton.native.js.map