UNPKG

1.83 kBJSXView Raw
1/**
2 * Style for ApSpinner.
3 * @class ApSpinnerStyle
4 */
5
6'use strict'
7
8import React, {PropTypes as types} from 'react'
9import {ApStyle} from 'apeman-react-style'
10
11/** @lends ApSpinnerStyle */
12const ApSpinnerStyle = React.createClass({
13 propTypes: {
14 type: types.string,
15 style: types.object
16 },
17 getDefaultProps () {
18 return {
19 type: 'text/css',
20 style: {}
21 }
22 },
23 statics: {
24 styleData (config) {
25 return {
26 all: {
27 '.ap-spinner': {
28 textAlign: 'center',
29 display: 'none'
30 },
31 '.ap-spinner.ap-spinner-enabled': {
32 display: 'inline-flex',
33 justifyContent: 'center',
34 alignItems: 'center',
35 width: '100%',
36 height: '100%'
37 },
38 '.ap-spinner-icon': {
39 display: 'inline-block',
40 margin: '0 4px',
41 transition: 'opacity 100ms',
42 opacity: 1
43 },
44 '.ap-spinner.ap-spinner-cover': {
45 position: 'absolute',
46 left: 0,
47 top: 0,
48 right: 0,
49 bottom: 0,
50 zIndex: 4,
51 display: 'flex',
52 justifyContent: 'center',
53 alignItems: 'center',
54 background: ApStyle.COVER_BACKGROUND,
55 color: ApStyle.COVER_COLOR
56 }
57 },
58 small: {},
59 medium: {},
60 large: {}
61 }
62 }
63 },
64 render () {
65 const s = this
66 let { props } = s
67
68 let { all, small, medium, large } = ApSpinnerStyle.styleData(props)
69
70 return (
71 <ApStyle data={ Object.assign(all, props.style) }
72 smallMediaData={ small }
73 mediumMediaData={ medium }
74 largeMediaData={ large }
75 >{ props.children }</ApStyle>
76 )
77 }
78})
79
80export default ApSpinnerStyle