/** @jsxImportSource @emotion/react */ import { css } from '@emotion/react'; import { RcModal } from '../layout'; import { RcSpinCircle } from '../foundation'; import { RcProgressBar } from './RcProgressBar'; export interface RcPopupProps { title?: string; message?: string; isError?: boolean; isLoading?: boolean; progress?: number; onClose?: () => void; // only used if not Error, Loading nor progress minWidth?: string; maxWidth?: string; maxHeight?: string; colorTitle?: string; colorTitleError?: string; colorTitleLoading?: string; fontSizeTitle?: string; fontWeightTitle?: string; vspaceTop?: string; vspaceMiddle?: string; vspaceBottom?: string; colorSpinner?: string; } export const RcPopup: React.FC = ({ title, message, isError, isLoading, progress, onClose, minWidth = '290px', maxWidth = '500px', maxHeight = '300px', colorTitle = '#343434', colorTitleError = '#c01626', colorTitleLoading = '#236cd2', fontSizeTitle = '1.2em', fontWeightTitle = 'bold', vspaceTop = '20px', vspaceMiddle = '20px', vspaceBottom = '30px', colorSpinner = '#236cd2', children, }) => { // the content const renderContent = () => (
{title && (
{title}
)} {message} {children} {progress && } {isLoading && (
)}
); return ( {renderContent()} ); };