2023-01-03 20:20:08 +00:00
|
|
|
import React, { ReactElement, ReactNode } from 'react'
|
2022-02-05 10:55:34 +00:00
|
|
|
import Spinner from './Spinner'
|
2022-01-01 19:37:33 +00:00
|
|
|
|
2023-01-03 20:20:08 +00:00
|
|
|
export default function Loader ({
|
2022-02-05 10:55:34 +00:00
|
|
|
showTop,
|
|
|
|
showBottom,
|
|
|
|
hideContent,
|
|
|
|
children,
|
2023-01-03 20:20:08 +00:00
|
|
|
loading,
|
|
|
|
placeholder
|
|
|
|
}: {
|
|
|
|
children: ReactNode
|
|
|
|
loading: boolean
|
|
|
|
hideContent?: boolean
|
|
|
|
showTop?: boolean
|
|
|
|
showBottom?: boolean
|
|
|
|
placeholder?: ReactNode
|
|
|
|
}): ReactElement {
|
|
|
|
const spinner = placeholder ?? (
|
|
|
|
<div className={'d-flex justify-content-center'}>
|
|
|
|
<Spinner/>
|
|
|
|
</div>
|
2022-01-15 19:44:37 +00:00
|
|
|
)
|
|
|
|
return (
|
2022-02-05 10:55:34 +00:00
|
|
|
<>
|
2022-11-03 18:38:01 +00:00
|
|
|
{(showTop ?? false) && loading ? spinner : ''}
|
|
|
|
{(hideContent ?? false) && loading ? '' : children}
|
|
|
|
{(showBottom ?? false) && loading ? spinner : ''}
|
2022-02-05 10:55:34 +00:00
|
|
|
</>
|
2022-01-01 19:37:33 +00:00
|
|
|
)
|
|
|
|
}
|