@atlaskit/button
Version:
A button triggers an event or action. They let users know what will happen next.
40 lines • 855 B
JavaScript
import React from 'react';
import Spinner from '@atlaskit/spinner';
function getIconSpacing(spacing) {
switch (spacing) {
case 'compact':
return 'small';
default:
return 'medium';
}
}
function getSpinnerAppearance({
appearance,
isDisabled,
isSelected
}) {
if (isDisabled || isSelected) {
return 'inherit';
}
if (appearance === 'primary' || appearance === 'danger' || appearance === 'discovery') {
return 'invert';
}
return 'inherit';
}
export default function renderLoadingOverlay({
appearance,
spacing,
isDisabled,
isSelected,
testId
}) {
return /*#__PURE__*/React.createElement(Spinner, {
size: getIconSpacing(spacing),
appearance: getSpinnerAppearance({
appearance,
isDisabled,
isSelected
}),
testId: testId ? `${testId}--loading-spinner` : undefined
});
}