@s-ui/react-atom-skeleton
Version:
Display the loading state of a component while avoiding layout shift
36 lines • 1.97 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
var _excluded = ["count", "variant", "animation", "style", "width", "height"];
import cx from 'classnames';
import PropTypes from 'prop-types';
import { ATOM_SKELETON_ANIMATIONS, ATOM_SKELETON_VARIANTS, BASE_CLASS } from './settings.js';
import { createElement as _createElement } from "react";
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
export default function AtomSkeleton(_ref) {
var _cx;
var _ref$count = _ref.count,
count = _ref$count === void 0 ? 1 : _ref$count,
_ref$variant = _ref.variant,
variant = _ref$variant === void 0 ? ATOM_SKELETON_VARIANTS.round : _ref$variant,
_ref$animation = _ref.animation,
animation = _ref$animation === void 0 ? ATOM_SKELETON_ANIMATIONS.pulse : _ref$animation,
style = _ref.style,
width = _ref.width,
height = _ref.height,
others = _objectWithoutPropertiesLoose(_ref, _excluded);
var className = cx("" + BASE_CLASS, (_cx = {}, _cx[BASE_CLASS + "--pulse"] = animation === ATOM_SKELETON_ANIMATIONS.pulse, _cx[BASE_CLASS + "--wave"] = animation === ATOM_SKELETON_ANIMATIONS.wave, _cx[BASE_CLASS + "--round"] = variant === ATOM_SKELETON_VARIANTS.round, _cx[BASE_CLASS + "--circle"] = variant === ATOM_SKELETON_VARIANTS.circle, _cx));
return /*#__PURE__*/_jsx(_Fragment, {
children: Array.from(Array(count).keys()).map(function (index) {
return /*#__PURE__*/_createElement("span", _extends({}, others, {
key: index,
className: className,
style: _extends({}, style, {
width: width,
height: height
})
}), "\u200C");
})
});
}
AtomSkeleton.displayName = 'AtomSkeleton';
export { ATOM_SKELETON_VARIANTS, ATOM_SKELETON_VARIANTS as atomSkeletonVariants, ATOM_SKELETON_ANIMATIONS, ATOM_SKELETON_ANIMATIONS as atomSkeletonAnimations };