@@ -828,25 +828,50 @@ class BootstrapTable extends Component {
828
828
}
829
829
830
830
handleAddRow = newObj => {
831
+ let isAsync = false ;
831
832
const { onAddRow } = this . props . options ;
833
+
834
+ const afterHandleAddRow = errMsg => {
835
+ if ( isAsync ) {
836
+ this . refs . toolbar . afterHandleSaveBtnClick ( errMsg ) ;
837
+ } else {
838
+ return errMsg ;
839
+ }
840
+ } ;
841
+
842
+ const afterAddRowCB = errMsg => {
843
+ if ( typeof errMsg !== 'undefined' && errMsg !== '' ) return afterHandleAddRow ( errMsg ) ;
844
+ if ( this . allowRemote ( Const . REMOTE_INSERT_ROW ) ) {
845
+ if ( this . props . options . afterInsertRow ) {
846
+ this . props . options . afterInsertRow ( newObj ) ;
847
+ }
848
+ return afterHandleAddRow ( ) ;
849
+ }
850
+
851
+ try {
852
+ this . store . add ( newObj ) ;
853
+ } catch ( e ) {
854
+ return afterHandleAddRow ( e . message ) ;
855
+ }
856
+ this . _handleAfterAddingRow ( newObj , false ) ;
857
+ return afterHandleAddRow ( ) ;
858
+ } ;
859
+
832
860
if ( onAddRow ) {
833
861
const colInfos = this . store . getColInfos ( ) ;
834
- onAddRow ( newObj , colInfos ) ;
835
- }
862
+ const errMsg = onAddRow ( newObj , colInfos , afterAddRowCB ) ;
836
863
837
- if ( this . allowRemote ( Const . REMOTE_INSERT_ROW ) ) {
838
- if ( this . props . options . afterInsertRow ) {
839
- this . props . options . afterInsertRow ( newObj ) ;
864
+ if ( errMsg !== '' && errMsg !== false ) {
865
+ return errMsg ;
866
+ } else if ( typeof errMsg === 'undefined' ) {
867
+ return afterAddRowCB ( ) ;
868
+ } else {
869
+ isAsync = true ;
870
+ return ! isAsync ;
840
871
}
841
- return null ;
842
- }
843
-
844
- try {
845
- this . store . add ( newObj ) ;
846
- } catch ( e ) {
847
- return e . message ;
872
+ } else {
873
+ return afterAddRowCB ( ) ;
848
874
}
849
- this . _handleAfterAddingRow ( newObj , false ) ;
850
875
}
851
876
852
877
getSizePerPage ( ) {
0 commit comments