@@ -32,6 +32,7 @@ var languageItems_1 = require('./languageItems');
3232var runnerItems_1 = require ( './runnerItems' ) ;
3333var Top_1 = require ( '../TopPanel/Top' ) ;
3434var TextField_1 = require ( 'material-ui/TextField' ) ;
35+ var debounce = require ( 'lodash.debounce' ) ;
3536var formSelector = redux_form_1 . formValueSelector ( 'tutorialConfig' ) ;
3637var styles = {
3738 card : {
@@ -63,11 +64,11 @@ var TutorialConfig = (function (_super) {
6364 TutorialConfig . prototype . render = function ( ) {
6465 var _this = this ;
6566 var _a = this . props , pristine = _a . pristine , submitting = _a . submitting , handleSubmit = _a . handleSubmit , invalid = _a . invalid ;
66- return ( React . createElement ( Card_1 . Card , { style : styles . card } , React . createElement ( Card_1 . CardHeader , { title : 'Tutorial Configuration' } ) , React . createElement ( "form" , { onSubmit : handleSubmit ( this . onSubmit . bind ( this ) ) } , React . createElement ( redux_form_1 . Field , { name : 'name' , component : function ( name ) { return ( React . createElement ( TextField_1 . default , __assign ( { className : 'native-key-bindings' , hintText : 'coderoad-tutorial-name' , errorText : name . touched && name . error } , name ) ) ) ; } } ) , React . createElement ( "br" , null ) , React . createElement ( redux_form_1 . Field , { name : 'language' , component : function ( props ) {
67+ return ( React . createElement ( Card_1 . Card , { style : styles . card } , React . createElement ( Card_1 . CardHeader , { title : 'Tutorial Configuration' } ) , React . createElement ( "form" , { onSubmit : handleSubmit ( this . onSubmit . bind ( this ) ) } , React . createElement ( "div" , null , React . createElement ( redux_form_1 . Field , { name : 'name' , component : function ( name ) { return ( React . createElement ( TextField_1 . default , __assign ( { className : 'native-key-bindings' , hintText : 'coderoad-tutorial-name' , errorText : name . touched && name . error } , name ) ) ) ; } } ) ) , React . createElement ( "br" , null ) , React . createElement ( "div" , null , React . createElement ( redux_form_1 . Field , { name : 'language' , component : function ( props ) {
6768 return React . createElement ( "div" , null , React . createElement ( SelectField_1 . default , __assign ( { value : props . value , floatingLabelText : 'Language' , errorText : props . touched && props . error } , props , { onChange : function ( event , index , value ) { return props . onChange ( value ) ; } } ) , languageItems_1 . default ( ) ) ) ;
68- } } ) , React . createElement ( redux_form_1 . Field , { name : 'runner' , component : function ( props ) {
69+ } } ) ) , React . createElement ( "br" , null ) , React . createElement ( "div" , null , React . createElement ( redux_form_1 . Field , { name : 'runner' , component : function ( props ) {
6970 return React . createElement ( "div" , null , React . createElement ( SelectField_1 . default , __assign ( { value : props . value , floatingLabelText : 'Test Runner' , errorText : props . touched && props . error } , props , { onChange : function ( event , index , value ) { return props . onChange ( value ) ; } } ) , runnerItems_1 . default ( _this . props . language || 'JS' ) ) ) ;
70- } } ) , React . createElement ( "br" , null ) , React . createElement ( RaisedButton_1 . default , { type : 'submit' , style : styles . button , label : 'Save' , primary : true , disabled : pristine || submitting || invalid } ) , React . createElement ( RaisedButton_1 . default , { style : styles . button , label : 'Continue' , secondary : true , disabled : invalid , onTouchTap : this . props . routeToPage . bind ( this ) } ) ) ) ) ;
71+ } } ) ) , React . createElement ( "br" , null ) , React . createElement ( RaisedButton_1 . default , { type : 'submit' , style : styles . button , label : 'Save' , primary : true , disabled : pristine || submitting || invalid } ) , React . createElement ( RaisedButton_1 . default , { style : styles . button , label : 'Continue' , secondary : true , disabled : invalid , onTouchTap : this . props . routeToPage . bind ( this ) } ) ) ) ) ;
7172 } ;
7273 TutorialConfig = __decorate ( [
7374 react_redux_1 . connect ( function ( state ) { return ( {
@@ -84,7 +85,7 @@ var TutorialConfig = (function (_super) {
8485 ] , TutorialConfig ) ;
8586 return TutorialConfig ;
8687} ( React . Component ) ) ;
87- var validate = function ( values ) {
88+ var validate = debounce ( function ( values ) {
8889 var errors = { } ;
8990 var requiredFields = [ 'name' , 'language' , 'runner' ] ;
9091 requiredFields . forEach ( function ( field ) {
@@ -96,7 +97,7 @@ var validate = function (values) {
9697 errors . name = 'Invalid "coderoad-*" name' ;
9798 }
9899 return errors ;
99- } ;
100+ } , 200 ) ;
100101Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
101102exports . default = redux_form_1 . reduxForm ( {
102103 form : 'tutorialConfig' ,
0 commit comments