UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

18 lines (15 loc) 2.03 kB
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties'; import { forwardRef, useCallback } from 'react'; import { useCollapsible } from './CollapsibleContext.js'; import { componentIds } from './componentIds.js'; import BaseButton from '../Button/BaseButton/BaseButton.js'; import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js'; import 'react-native'; import '@babel/runtime/helpers/slicedToArray'; import { isReactNative } from '../../utils/platform/isReactNative.js'; import '../BladeProvider/useTheme.js'; import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js'; import { jsx } from 'react/jsx-runtime'; var _excluded=["children","variant","size","icon","iconPosition","isDisabled","testID","accessibilityLabel"];var _CollapsibleButton=function _CollapsibleButton(_ref,ref){var children=_ref.children,variant=_ref.variant,size=_ref.size,icon=_ref.icon,iconPosition=_ref.iconPosition,isDisabled=_ref.isDisabled,testID=_ref.testID,accessibilityLabel=_ref.accessibilityLabel,rest=_objectWithoutProperties(_ref,_excluded);var _useCollapsible=useCollapsible(),onExpandChange=_useCollapsible.onExpandChange,isExpanded=_useCollapsible.isExpanded,collapsibleBodyId=_useCollapsible.collapsibleBodyId;var toggleIsExpanded=useCallback(function(){return onExpandChange(!isExpanded);},[onExpandChange,isExpanded]);return jsx(BaseButton,Object.assign({variant:variant,size:size,icon:icon,iconPosition:iconPosition,isDisabled:isDisabled,testID:testID,ref:ref,onClick:toggleIsExpanded,alignSelf:isReactNative()?'flex-start':undefined,accessibilityProps:{label:accessibilityLabel,controls:collapsibleBodyId,expanded:isExpanded}},makeAnalyticsAttribute(rest),{children:children}));};var CollapsibleButton=assignWithoutSideEffects(forwardRef(_CollapsibleButton),{displayName:'CollapsibleButton',componentId:componentIds.CollapsibleButton}); export { CollapsibleButton }; //# sourceMappingURL=CollapsibleButton.js.map