@@ -57,6 +57,7 @@ $(() => {
5757
5858 const $fileInput = $tgt . find ( 'input[type="file"]' ) ;
5959 const files = /** @type {HTMLInputElement } */ ( $fileInput [ 0 ] ) . files ;
60+ const form = /** @type {HTMLFormElement } */ ( $tgt [ 0 ] ) ;
6061
6162 // TODO: MaxUploadSize is a site setting and can be changed
6263 if ( files . length > 0 && files [ 0 ] . size >= 2000000 ) {
@@ -81,40 +82,27 @@ $(() => {
8182 $tgt . find ( '.js-max-size' ) . removeClass ( 'has-color-red-700' ) ;
8283 }
8384
84- const resp = await fetch ( $tgt . attr ( 'action' ) , {
85- method : $tgt . attr ( 'method' ) ,
86- body : new FormData ( /** @type {HTMLFormElement } */ ( $tgt [ 0 ] ) ) ,
87- } ) ;
85+ const data = await QPixel . upload ( $tgt . attr ( 'action' ) , form ) ;
8886
89- const data = await resp . json ( ) ;
87+ QPixel . handleJSONResponse (
88+ data ,
89+ ( data ) => {
90+ form . reset ( ) ;
9091
91- if ( resp . status === 200 ) {
92- $tgt . trigger ( 'ajax:success' , data ) ;
93- }
94- else {
95- $tgt . trigger ( 'ajax:failure' , data ) ;
96- }
97- } ) ;
92+ const $postField = $ ( '.js-post-field' ) ;
93+ const postText = $postField . val ( ) ?. toString ( ) ;
94+ $postField . val ( postText . replace ( placeholder , `` ) ) ;
95+ $tgt . parents ( '.modal' ) . removeClass ( 'is-active' ) ;
9896
99- $uploadForm . on ( 'ajax:success' , async ( evt , data ) => {
100- const $tgt = $ ( evt . target ) ;
101- /** @type {HTMLFormElement } */ ( $tgt [ 0 ] ) . reset ( ) ;
102-
103- const $postField = $ ( '.js-post-field' ) ;
104- const postText = $postField . val ( ) ?. toString ( ) ;
105- $postField . val ( postText . replace ( placeholder , `` ) ) ;
106- $tgt . parents ( '.modal' ) . removeClass ( 'is-active' ) ;
107-
108- $postFields . trigger ( 'change' ) ;
109- } ) ;
110-
111- $uploadForm . on ( 'ajax:failure' , async ( evt , data ) => {
112- const $tgt = $ ( evt . target ) ;
113- const $postField = $ ( '.js-post-field' ) ;
114- const error = data [ 'error' ] ;
115- QPixel . createNotification ( 'danger' , error ) ;
116- $tgt . parents ( '.modal' ) . removeClass ( 'is-active' ) ;
117- $postField . val ( $postField . val ( ) ?. toString ( ) . replace ( placeholder , '' ) ) ;
97+ $postFields . trigger ( 'change' ) ;
98+ } ,
99+ ( data ) => {
100+ if ( data . status === 'failed' ) {
101+ const $postField = $ ( '.js-post-field' ) ;
102+ $postField . val ( $postField . val ( ) ?. toString ( ) . replace ( placeholder , '' ) ) ;
103+ }
104+ } ,
105+ ) ;
118106 } ) ;
119107
120108 /**
0 commit comments