UNPKG

1.26 kBJSXView Raw
1/**
2 * Style for ApDraggable.
3 * @augments ApStyle
4 * @class ApDraggableStyle
5 */
6
7'use strict'
8
9import React, {PropTypes as types} from 'react'
10import {ApStyle} from 'apeman-react-style'
11
12const DEFAULT_TRANSITION_DURATION = 80
13
14/** @lends ApDraggableStyle */
15const 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
58export default ApDraggableStyle