@@ -2,179 +2,72 @@ define(
22 [
33 'react' ,
44 'reactDom' ,
5- './box-tool' ,
6- './box-functions'
75 ] ,
8- function ( React , ReactDOM , BoxTool , boxFunctions ) {
6+ function ( React , ReactDOM ) {
97 var Box = React . createClass ( {
10- // getDefaultProps: function() {
11- // return {
12- // type: 'expandable',
13- // theme: 'box-default',
14- // loading: false,
15- // border: true,
16- // title: 'Default title',
17- // content: 'Default content',
18- // }
19- // },
20- toggleCollapse : function ( event ) {
21- console . log ( ReactDOM . findDOMNode ( this ) )
22- var box = ReactDOM . findDOMNode ( this ) . children [ 0 ] ,
23- boxBody = ReactDOM . findDOMNode ( this ) . children [ 0 ] . children [ 1 ] ,
24- icon = event . currentTarget . children [ 0 ] ;
25-
26- boxFunctions . toggleBoxCollapse ( box , boxBody , icon ) ;
27- } ,
28- removeBox : function ( event ) {
29- var box = ReactDOM . findDOMNode ( this ) . children [ 0 ] ;
30- boxFunctions . removeBox ( box ) ;
8+ getDefaultProps : function ( ) {
9+ return {
10+ collapsed : false ,
11+ theme : 'box-default' ,
12+ loading : false ,
13+ border : true ,
14+ title : 'Default title' ,
15+ content : 'Default content' ,
16+ }
3117 } ,
3218 render : function ( ) {
33- var that = this ;
34- return (
35- < div className = "col-md-12" >
36- < div className = "box box-default color-palette-box" >
37- < div className = "box-header with-border" >
38- < h3 className = "box-title" > { this . props . headerMarkup } { this . props . title } </ h3 >
39- < div className = "box-tools pull-right" >
40- < BoxTool toolType = "minimize" callback = { that . toggleCollapse } />
41- </ div >
42- </ div >
43- < div className = "box-body" >
44- < div className = "row" >
45- < div className = "col-sm-4 col-md-2" >
46- < h4 className = "text-center" > Primary</ h4 >
47-
48- < div className = "color-palette-set" >
49- < div className = "bg-light-blue disabled color-palette" > < span > Disabled</ span > </ div >
50- < div className = "bg-light-blue color-palette" > < span > #3c8dbc</ span > </ div >
51- < div className = "bg-light-blue-active color-palette" > < span > Active</ span > </ div >
52- </ div >
53- </ div >
54- { /* /.col */ }
55- < div className = "col-sm-4 col-md-2" >
56- < h4 className = "text-center" > Info</ h4 >
57-
58- < div className = "color-palette-set" >
59- < div className = "bg-aqua disabled color-palette" > < span > Disabled</ span > </ div >
60- < div className = "bg-aqua color-palette" > < span > #00c0ef</ span > </ div >
61- < div className = "bg-aqua-active color-palette" > < span > Active</ span > </ div >
62- </ div >
63- </ div >
64- { /* /.col */ }
65- < div className = "col-sm-4 col-md-2" >
66- < h4 className = "text-center" > Success</ h4 >
67-
68- < div className = "color-palette-set" >
69- < div className = "bg-green disabled color-palette" > < span > Disabled</ span > </ div >
70- < div className = "bg-green color-palette" > < span > #00a65a</ span > </ div >
71- < div className = "bg-green-active color-palette" > < span > Active</ span > </ div >
72- </ div >
73- </ div >
74- { /* /.col */ }
75- < div className = "col-sm-4 col-md-2" >
76- < h4 className = "text-center" > Warning</ h4 >
19+ var boxType = '' , borderClass = '' , boxToolsContainer , boxTools = [ ] , loadingState , footer ;
7720
78- < div className = "color-palette-set" >
79- < div className = "bg-yellow disabled color-palette" > < span > Disabled</ span > </ div >
80- < div className = "bg-yellow color-palette" > < span > #f39c12</ span > </ div >
81- < div className = "bg-yellow-active color-palette" > < span > Active</ span > </ div >
82- </ div >
83- </ div >
84- { /* /.col */ }
85- < div className = "col-sm-4 col-md-2" >
86- < h4 className = "text-center" > Danger</ h4 >
21+ if ( this . props . border === true ) {
22+ borderClass = 'box-solid' ;
23+ }
24+
25+ if ( this . props . boxTools ) {
26+ var BoxTool = require ( './box-tool' ) ;
8727
88- < div className = "color-palette-set" >
89- < div className = "bg-red disabled color-palette" > < span > Disabled</ span > </ div >
90- < div className = "bg-red color-palette" > < span > #f56954</ span > </ div >
91- < div className = "bg-red-active color-palette" > < span > Active</ span > </ div >
92- </ div >
93- </ div >
94- { /* /.col */ }
95- < div className = "col-sm-4 col-md-2" >
96- < h4 className = "text-center" > Gray</ h4 >
28+ this . props . boxTools . map ( function ( tool , index ) {
29+ boxTools . push ( < BoxTool key = { index } toolType = { tool } /> )
30+ } ) ;
9731
98- < div className = "color-palette-set" >
99- < div className = "bg-gray disabled color-palette" > < span > Disabled</ span > </ div >
100- < div className = "bg-gray color-palette" > < span > #d2d6de</ span > </ div >
101- < div className = "bg-gray-active color-palette" > < span > Active</ span > </ div >
102- </ div >
103- </ div >
104- { /* /.col */ }
105- </ div >
106- { /* /.row */ }
107- < div className = "row" >
108- < div className = "col-sm-4 col-md-2" >
109- < h4 className = "text-center" > Navy</ h4 >
110-
111- < div className = "color-palette-set" >
112- < div className = "bg-navy disabled color-palette" > < span > Disabled</ span > </ div >
113- < div className = "bg-navy color-palette" > < span > #001F3F</ span > </ div >
114- < div className = "bg-navy-active color-palette" > < span > Active</ span > </ div >
115- </ div >
116- </ div >
117- { /* /.col */ }
118- < div className = "col-sm-4 col-md-2" >
119- < h4 className = "text-center" > Teal</ h4 >
32+ boxToolsContainer = < div className = "box-tools pull-right" > { boxTools } </ div >
33+ }
12034
121- < div className = "color-palette-set" >
122- < div className = "bg-teal disabled color-palette" > < span > Disabled</ span > </ div >
123- < div className = "bg-teal color-palette" > < span > #39CCCC</ span > </ div >
124- < div className = "bg-teal-active color-palette" > < span > Active</ span > </ div >
125- </ div >
126- </ div >
127- { /* /.col */ }
128- < div className = "col-sm-4 col-md-2" >
129- < h4 className = "text-center" > Purple</ h4 >
130-
131- < div className = "color-palette-set" >
132- < div className = "bg-purple disabled color-palette" > < span > Disabled</ span > </ div >
133- < div className = "bg-purple color-palette" > < span > #605ca8</ span > </ div >
134- < div className = "bg-purple-active color-palette" > < span > Active</ span > </ div >
135- </ div >
136- </ div >
137- { /* /.col */ }
138- < div className = "col-sm-4 col-md-2" >
139- < h4 className = "text-center" > Orange</ h4 >
35+ if ( this . props . loading === true ) {
36+ loadingState =
37+ < div className = "overlay" >
38+ < i className = "fa fa-refresh fa-spin" > </ i >
39+ </ div >
40+ }
14041
141- < div className = "color-palette-set" >
142- < div className = "bg-orange disabled color-palette" > < span > Disabled</ span > </ div >
143- < div className = "bg-orange color-palette" > < span > #ff851b</ span > </ div >
144- < div className = "bg-orange-active color-palette" > < span > Active</ span > </ div >
145- </ div >
146- </ div >
147- { /* /.col */ }
148- < div className = "col-sm-4 col-md-2" >
149- < h4 className = "text-center" > Maroon</ h4 >
42+ if ( this . props . collapsed ) {
43+ boxType = "collapsed-box"
44+ }
15045
151- < div className = "color-palette-set" >
152- < div className = "bg-maroon disabled color-palette" > < span > Disabled</ span > </ div >
153- < div className = "bg-maroon color-palette" > < span > #D81B60</ span > </ div >
154- < div className = "bg-maroon-active color-palette" > < span > Active</ span > </ div >
155- </ div >
156- </ div >
157- { /* /.col */ }
158- < div className = "col-sm-4 col-md-2" >
159- < h4 className = "text-center" > Black</ h4 >
46+ if ( this . props . footer ) {
47+ footer = < div className = "box-footer" > { this . props . footer } </ div >
48+ }
16049
161- < div className = "color-palette-set" >
162- < div className = "bg-black disabled color-palette" > < span > Disabled</ span > </ div >
163- < div className = "bg-black color-palette" > < span > #111111</ span > </ div >
164- < div className = "bg-black-active color-palette" > < span > Active</ span > </ div >
165- </ div >
166- </ div >
167- { /* /.col */ }
50+ return (
51+ < div className = { "col-md-" + this . props . width + " col-sm-6 col-xs-12" } >
52+ < div className = { "box " + this . props . theme + " " + borderClass + " color-palette-box " + boxType } >
53+ < div className = "box-header with-border" >
54+ < h3 className = "box-title" > { this . props . headerMarkup } { this . props . title } </ h3 >
55+ { boxToolsContainer }
56+ </ div >
57+ < div className = "box-body" >
58+ { this . props . content }
59+ { this . props . children }
16860 </ div >
169- { /* /.row */ }
61+
62+ { footer }
63+ { /* /.box-body */ }
64+ { loadingState }
17065 </ div >
171- { /* /.box-body */ }
172- </ div >
17366 </ div >
17467 )
17568 }
17669
177- } )
70+ } ) ;
17871
17972 return Box ;
18073 }
0 commit comments