Create LoadingSpinner component
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import './styles.sass';
|
||||||
|
|
||||||
|
export const LoadingSpinner = ({
|
||||||
|
size = 'md',
|
||||||
|
className = '',
|
||||||
|
text,
|
||||||
|
centered = false
|
||||||
|
}) => {
|
||||||
|
const containerClasses = [
|
||||||
|
'loading-container',
|
||||||
|
centered && 'loading-container--centered',
|
||||||
|
className
|
||||||
|
].filter(Boolean).join(' ');
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={containerClasses}>
|
||||||
|
<div className={`loading-spinner loading-spinner--${size}`} />
|
||||||
|
{text && <p className="loading-text">{text}</p>}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
1
webui/src/common/components/LoadingSpinner/index.js
Normal file
1
webui/src/common/components/LoadingSpinner/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export { LoadingSpinner as default } from './LoadingSpinner.jsx';
|
40
webui/src/common/components/LoadingSpinner/styles.sass
Normal file
40
webui/src/common/components/LoadingSpinner/styles.sass
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
.loading-container
|
||||||
|
display: flex
|
||||||
|
flex-direction: column
|
||||||
|
align-items: center
|
||||||
|
gap: 1rem
|
||||||
|
|
||||||
|
&--centered
|
||||||
|
justify-content: center
|
||||||
|
padding: 3rem 2rem
|
||||||
|
|
||||||
|
.loading-spinner
|
||||||
|
border-radius: 50%
|
||||||
|
border-style: solid
|
||||||
|
border-color: var(--bg-elev)
|
||||||
|
border-top-color: var(--accent)
|
||||||
|
animation: spin 1s linear infinite
|
||||||
|
|
||||||
|
&--sm
|
||||||
|
width: 16px
|
||||||
|
height: 16px
|
||||||
|
border-width: 2px
|
||||||
|
|
||||||
|
&--md
|
||||||
|
width: 32px
|
||||||
|
height: 32px
|
||||||
|
border-width: 3px
|
||||||
|
|
||||||
|
&--lg
|
||||||
|
width: 48px
|
||||||
|
height: 48px
|
||||||
|
border-width: 4px
|
||||||
|
|
||||||
|
.loading-text
|
||||||
|
color: var(--text-dim)
|
||||||
|
font-size: 0.95rem
|
||||||
|
margin: 0
|
||||||
|
|
||||||
|
@keyframes spin
|
||||||
|
to
|
||||||
|
transform: rotate(360deg)
|
Reference in New Issue
Block a user