import React, { memo, useMemo } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import LinearProgress from '@material-ui/core/LinearProgress';
import CircularProgress from '@material-ui/core/CircularProgress';
import { LoadingProps } from './types';
import Styles from './index.module.css';
function Loading(props: LoadingProps): React.ReactElement {
/* Global & Local States */
const {
typePosition, typeBackground, typeZIndex, typeIcon, isLoading, isHideText, text,
} = props;
/* Views */
const RenderPosition = useMemo(() => {
switch (typePosition) {
case 'relative':
return Styles.relateScreenLoadingContainer;
case 'absolute':
return Styles.fullScreenLoadingContainer;
default:
return Styles.fullScreenLoadingContainer;
}
}, [typePosition]);
const RenderBackground = useMemo(() => {
switch (typeBackground) {
case 'white':
return Styles.backgroundWhite;
case 'black':
return Styles.backgroundBlack;
default:
return '';
}
}, [typeBackground]);
const RenderTextColor = useMemo(() => {
switch (typeBackground) {
case 'white':
return Styles.loadingTextWhite;
case 'black':
return Styles.loadingTextBlack;
default:
return Styles.loadingTextWhite;
}
}, [typeBackground]);
const RenderText = useMemo(() => {
if (isHideText) {
return