1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | 'use strict'
|
8 |
|
9 | import React, {PropTypes as types} from 'react'
|
10 | import {ApStyle} from 'apeman-react-style'
|
11 |
|
12 | const DEFAULT_TRANSITION_DURATION = 80
|
13 |
|
14 |
|
15 | const ApDraggableStyle = React.createClass({
|
16 | propTypes: {
|
17 | style: types.object
|
18 | },
|
19 | getDefaultProps () {
|
20 | return {
|
21 | style: {}
|
22 | }
|
23 | },
|
24 | statics: {
|
25 | styleData (config) {
|
26 | return {
|
27 | all: {
|
28 | '.ap-draggable': {
|
29 | cursor: '-webkit-grab',
|
30 | transition: `transform ${DEFAULT_TRANSITION_DURATION}ms`
|
31 | },
|
32 | '.ap-draggable:active': {
|
33 | cursor: '-webkit-grabbing'
|
34 | },
|
35 | '.ap-draggable.ap-draggable-dragging': {
|
36 | boxShadow: '1px 1px 2px rgba(0,0,0,0.25)'
|
37 | }
|
38 | }
|
39 | }
|
40 | }
|
41 | },
|
42 | render () {
|
43 | const s = this
|
44 | let { props } = s
|
45 |
|
46 | let { all, small, medium, large } = ApDraggableStyle.styleData(props)
|
47 |
|
48 | return (
|
49 | <ApStyle data={ Object.assign(all, props.style) }
|
50 | smallMediaData={ small }
|
51 | mediumMediaData={ medium }
|
52 | largeMediaData={ large }
|
53 | >{ props.children }</ApStyle>
|
54 | )
|
55 | }
|
56 | })
|
57 |
|
58 | export default ApDraggableStyle
|