Another large update for all components
reorganization, linting, updating file imports, consolidation warning: there will be errors in this commit todo: update webpack, add missing styles, scss files, consolidate group page components.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
export { default } from './upload_progress';
|
||||
@@ -0,0 +1,49 @@
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import spring from 'react-motion/lib/spring';
|
||||
import Motion from '../../../ui/util/optional_motion';
|
||||
import Icon from '../../../../components/icon';
|
||||
|
||||
import './upload_progress.scss'
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
active: state.getIn(['compose', 'is_uploading']),
|
||||
progress: state.getIn(['compose', 'progress']),
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
class UploadProgress extends PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
active: PropTypes.bool,
|
||||
progress: PropTypes.number,
|
||||
};
|
||||
|
||||
render () {
|
||||
const { active, progress } = this.props;
|
||||
|
||||
if (!active) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='upload-progress'>
|
||||
<div className='upload-progress__icon'>
|
||||
<Icon id='upload' />
|
||||
</div>
|
||||
|
||||
<div className='upload-progress__message'>
|
||||
<FormattedMessage id='upload_progress.label' defaultMessage='Uploading...' />
|
||||
|
||||
<div className='upload-progress__backdrop'>
|
||||
<Motion defaultStyle={{ width: 0 }} style={{ width: spring(progress) }}>
|
||||
{({ width }) =>
|
||||
<div className='upload-progress__tracker' style={{ width: `${width}%` }} />
|
||||
}
|
||||
</Motion>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
.upload-progress {
|
||||
padding: 10px;
|
||||
color: $lighter-text-color;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
|
||||
.fa {
|
||||
font-size: 34px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
span {
|
||||
text-transform: uppercase;
|
||||
display: block;
|
||||
|
||||
@include text-sizing(12px, 500);
|
||||
}
|
||||
|
||||
&__message {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
&__backdrop {
|
||||
border-radius: 6px;
|
||||
background: $ui-base-lighter-color;
|
||||
position: relative;
|
||||
margin-top: 5px;
|
||||
|
||||
@include size(100%, 6px);
|
||||
}
|
||||
|
||||
&__tracker {
|
||||
height: 6px;
|
||||
background: $ui-highlight-color;
|
||||
border-radius: 6px;
|
||||
|
||||
@include abs-position(0, auto, auto, 0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user