@@ -5,10 +5,6 @@ import debug from '../../utils/debug';
5
5
const console = debug ( 'app:javascript:controllers:snippets:preview' ) ;
6
6
7
7
export default class extends Controller < HTMLFormElement > {
8
- // Make timeout type play nice with TypeScript
9
- // based on https://donatstudios.com/TypeScriptTimeoutTrouble
10
- private idleTimeout ?: ReturnType < typeof setTimeout > ;
11
-
12
8
static targets = [ 'previewButton' ] ;
13
9
14
10
declare readonly hasPreviewButtonTarget : boolean ;
@@ -17,29 +13,33 @@ export default class extends Controller<HTMLFormElement> {
17
13
connect ( ) : void {
18
14
console . log ( 'Connect!' ) ;
19
15
20
- this . element . addEventListener ( 'turbo:submit-start' , ( event ) => {
21
- if (
22
- ( event as CustomEvent ) . detail . formSubmission . submitter !==
23
- this . previewButtonTarget
24
- ) {
25
- return ;
26
- }
16
+ this . element . addEventListener ( 'turbo:submit-start' , this . disable ) ;
17
+
18
+ this . element . addEventListener ( 'turbo:submit-end' , this . enable ) ;
19
+ }
27
20
28
- if ( event . target instanceof HTMLFormElement ) {
29
- for ( const field of event . target . elements ) {
30
- ( field as HTMLInputElement ) . disabled = true ;
31
- }
21
+ disable = ( event ) : void => {
22
+ if (
23
+ ( event as CustomEvent ) . detail . formSubmission . submitter !==
24
+ this . previewButtonTarget
25
+ ) {
26
+ return ;
27
+ }
28
+
29
+ if ( event . target instanceof HTMLFormElement ) {
30
+ for ( const field of event . target . elements ) {
31
+ ( field as HTMLInputElement ) . disabled = true ;
32
32
}
33
- } ) ;
33
+ }
34
+ } ;
34
35
35
- this . element . addEventListener ( 'turbo:submit-end' , ( event ) => {
36
- if ( event . target instanceof HTMLFormElement ) {
37
- for ( const field of event . target . elements ) {
38
- ( field as HTMLInputElement ) . disabled = false ;
39
- }
36
+ enable = ( event ) : void => {
37
+ if ( event . target instanceof HTMLFormElement ) {
38
+ for ( const field of event . target . elements ) {
39
+ ( field as HTMLInputElement ) . disabled = false ;
40
40
}
41
- } ) ;
42
- }
41
+ }
42
+ } ;
43
43
44
44
preview = ( ) : void => {
45
45
console . log ( 'Start preview!' ) ;
0 commit comments