@@ -19,15 +19,35 @@ function initRepoDiffReviewButton() {
1919 const counter = reviewBox . querySelector ( '.review-comments-counter' ) ;
2020 if ( ! counter ) return ;
2121
22- $ ( document ) . on ( 'click' , 'button[name="pending_review"]' , ( e ) => {
23- const $form = $ ( e . target ) . closest ( 'form' ) ;
24- // Watch for the form's submit event.
25- $form . on ( 'submit' , ( ) => {
26- const num = parseInt ( counter . getAttribute ( 'data-pending-comment-number' ) ) + 1 || 1 ;
22+ function handleFormSubmit ( $form , $textarea ) {
23+ $form . one ( 'submit' , ( event ) => {
24+ if ( $textarea . val ( ) . trim ( ) === '' ) {
25+ event . preventDefault ( ) ;
26+ return ;
27+ }
28+ const num = ( parseInt ( counter . getAttribute ( 'data-pending-comment-number' ) ) || 0 ) + 1 ;
2729 counter . setAttribute ( 'data-pending-comment-number' , num ) ;
2830 counter . textContent = num ;
2931 animateOnce ( reviewBox , 'pulse-1p5-200' ) ;
3032 } ) ;
33+ }
34+
35+ // Handle submit on click
36+ $ ( document ) . on ( 'click' , 'button[name="pending_review"]' , ( e ) => {
37+ const $form = $ ( e . target ) . closest ( 'form' ) ;
38+ const $textarea = $form . find ( 'textarea' ) ;
39+ handleFormSubmit ( $form , $textarea ) ;
40+ $form . trigger ( 'submit' ) ;
41+ } ) ;
42+
43+ // Handle submit by ctrl+enter
44+ $ ( document ) . on ( 'keydown' , 'textarea' , ( e ) => {
45+ if ( e . ctrlKey && e . key === 'Enter' ) {
46+ const $textarea = $ ( e . target ) ;
47+ const $form = $textarea . closest ( 'form' ) ;
48+ handleFormSubmit ( $form , $textarea ) ;
49+ $form . trigger ( 'submit' ) ;
50+ }
3151 } ) ;
3252}
3353
0 commit comments