mirror of https://github.com/jitsi/jitsi-meet
feat(ui-components) Create Spinner component (#13026)
Replace atlaskit Spinner with the new component Remove @atlaskit/spinnerpull/13028/head jitsi-meet_8393
parent
306c979adb
commit
126b0d385f
@ -1,3 +1,3 @@ |
||||
/* @flow */ |
||||
|
||||
export { default } from '@atlaskit/spinner'; |
||||
export { default } from '../../../ui/components/web/Spinner'; |
||||
|
@ -0,0 +1,76 @@ |
||||
import React from 'react'; |
||||
import { keyframes } from 'tss-react'; |
||||
import { makeStyles } from 'tss-react/mui'; |
||||
|
||||
interface IProps { |
||||
size?: 'small' | 'medium' | 'large'; |
||||
} |
||||
|
||||
const SIZE = { |
||||
small: 16, |
||||
medium: 24, |
||||
large: 48 |
||||
}; |
||||
|
||||
const useStyles = makeStyles()(() => { |
||||
return { |
||||
container: { |
||||
verticalAlign: 'middle', |
||||
opacity: 0, |
||||
animation: `${keyframes` |
||||
0% { |
||||
transform: rotate(50deg); |
||||
opacity: 0; |
||||
stroke-dashoffset: 60; |
||||
} |
||||
100% { |
||||
transform: rotate(230deg); |
||||
opacity: 1; |
||||
stroke-dashoffset: 50; |
||||
} |
||||
`} 1s forwards ease-in-out` |
||||
}, |
||||
|
||||
circle: { |
||||
fill: 'none', |
||||
stroke: '#E6EDFA', |
||||
strokeWidth: 1.5, |
||||
strokeLinecap: 'round', |
||||
strokeDasharray: 60, |
||||
strokeDashoffset: 'inherit', |
||||
transformOrigin: 'center', |
||||
animation: `${keyframes` |
||||
0% { |
||||
transform: rotate(0); |
||||
} |
||||
100% { |
||||
transform: rotate(360deg); |
||||
} |
||||
`} 0.86s forwards infinite`, |
||||
animationDelay: '0ms', |
||||
animationTimingFunction: 'cubic-bezier(0.4, 0.15, 0.6, 0.85)' |
||||
} |
||||
}; |
||||
}); |
||||
|
||||
const Spinner = ({ size = 'medium' }: IProps) => { |
||||
const { classes } = useStyles(); |
||||
|
||||
return ( |
||||
<svg |
||||
className = { classes.container } |
||||
focusable = 'false' |
||||
height = { SIZE[size] } |
||||
viewBox = '0 0 16 16' |
||||
width = { SIZE[size] } |
||||
xmlns = 'http://www.w3.org/2000/svg'> |
||||
<circle |
||||
className = { classes.circle } |
||||
cx = '8' |
||||
cy = '8' |
||||
r = '7' /> |
||||
</svg> |
||||
); |
||||
}; |
||||
|
||||
export default Spinner; |
Loading…
Reference in new issue