| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { useTranslation } from 'react-i18next'
- import Icon from './icon'
- import { useEffect, useState } from 'react'
- function LoadingSpinner({ delay = 0 }) {
- const { t } = useTranslation()
- const [show, setShow] = useState(false)
- useEffect(() => {
- const timer = window.setTimeout(() => {
- setShow(true)
- }, delay)
- return () => {
- window.clearTimeout(timer)
- }
- }, [delay])
- if (!show) {
- return null
- }
- return (
- <div className="loading">
- <Icon type="refresh" fw spin />
-
- {t('loading')}…
- </div>
- )
- }
- export default LoadingSpinner
- export function FullSizeLoadingSpinner({
- delay = 0,
- minHeight,
- }: {
- delay?: number
- minHeight?: string
- }) {
- return (
- <div className="full-size-loading-spinner-container" style={{ minHeight }}>
- <LoadingSpinner delay={delay} />
- </div>
- )
- }
|