@razorpay/blade
Version:
The Design System that powers Razorpay
18 lines (15 loc) • 2.03 kB
JavaScript
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