import React from 'react';
import PropTypes from 'prop-types';
import Paper from '@mui/material/Paper';
import Skeleton from '@mui/material/Skeleton';
/**
 * Display a placeholder preview of your content before the data gets loaded to reduce load-time frustration.
 */
const FakeText = ({ lines = 1, onPaper = false, variant, animation = 'wave', ...props }) => {
    const defaultOrText = !variant || variant === 'text';
    const fakeText = (React.createElement(React.Fragment, null, defaultOrText ? (Array(lines)
        .fill('')
        .map((_e, i) => {
        if (i % 2 == 0)
            return React.createElement(Skeleton, { key: i, variant: variant, animation: animation, ...props });
        return React.createElement(Skeleton, { key: i, variant: variant, ...props, width: '80%' });
    })) : (React.createElement(Skeleton, { variant: variant, ...props }))));
    if (onPaper) {
        return React.createElement(Paper, { sx: { p: 2 } }, fakeText);
    }
    return fakeText;
};
FakeText.propTypes = {
    /**
     * @default 1
     * The number of lines appearing.
     */
    lines: PropTypes.number,
    /**
     * @default false
     * If true, the fake text will be drawn on a Paper.
     */
    onPaper: PropTypes.bool,
    /**
     * @default 'text'
     * The shape of the loading fake text
     */
    variant: PropTypes.oneOf(['text', 'circular', 'rectangular', 'rounded']),
    /**
     * The animation. If false, the animation effect is disabled
     * @default 'wave'
     */
    animation: PropTypes.oneOf(['pulse', 'wave', false])
};
export default FakeText;
//# sourceMappingURL=FakeText.js.map