@@ -13,9 +13,26 @@ const paletteLengths = '1234'.split``.map((d) => ({label: d, value: +d}));
1313@observer
1414export class ObjectConfig extends Component {
1515
16- state = { open : false , confirmDelete : false } ;
16+ state = { open : false , confirmDelete : false , loading : false , saving : false } ;
1717 mounted = true ;
1818
19+ load = ( ) => {
20+ this . setState ( { loading : true } ) ;
21+ requestIdleCallback ( ( ) => {
22+ this . props . obj . load ( ( ) => {
23+ this . setState ( { loading : false } ) ;
24+ } ) ;
25+ } ) ;
26+ } ;
27+ save = ( ) => {
28+ this . setState ( { saving : true } ) ;
29+ requestIdleCallback ( ( ) => {
30+ this . props . obj . save ( ( ) => {
31+ this . setState ( { saving : false } ) ;
32+ } ) ;
33+ } ) ;
34+ } ;
35+
1936 onToggle = ( ) => {
2037 this . setState ( { open : ! this . state . open } ) ;
2138 }
@@ -40,7 +57,7 @@ export class ObjectConfig extends Component {
4057
4158 render ( ) {
4259 const { obj } = this . props ;
43- const { open, confirmDelete } = this . state ;
60+ const { open, confirmDelete, loading , saving } = this . state ;
4461
4562 return < div >
4663 < div className = "row object-header" >
@@ -57,11 +74,11 @@ export class ObjectConfig extends Component {
5774 < Item inverted color = "blue" onClick = { this . onToggle } >
5875 { open ? 'Hide Config' : 'Show Config' }
5976 </ Item >
60- < Item color = "green" inverted onClick = { obj . load } >
61- Load Data
77+ < Item color = "green" inverted onClick = { this . load } >
78+ { loading ? 'Loading...' : ' Load Data' }
6279 </ Item >
63- < Item color = "orange" inverted onClick = { obj . save } >
64- Save Data
80+ < Item color = "orange" inverted onClick = { this . save } >
81+ { saving ? 'Saving...' : ' Save Data' }
6582 </ Item >
6683 </ div >
6784 </ div >
0 commit comments