@@ -118,54 +118,56 @@ function pixelsRestrictions({ minWidth, minHeight, maxWidth, maxHeight }) {
118118}
119119
120120async function update () {
121- const { canvas } = cropperRef .value ? .getResult () || {}
122- if (! canvas) {
123- emit (' update:modelValue' , { identicon: identiconValue .value })
124- return
125- }
126- if (! changedImage .value ) return
121+ const { canvas } = cropperRef .value ? .getResult () || {}
122+ if (! canvas) {
123+ emit (' update:modelValue' , { identicon: identiconValue .value })
124+ return
125+ }
126+ if (! changedImage .value ) return
127127
128128 const processed = await createAvatarBlob (canvas)
129129 if (! processed) {
130- fileError .value = ' Failed to process image. Please try a different file. '
131- emit (' blockSave' , true )
132- return
133- }
130+ fileError .value = proxy . $t ( ' profile/ChangeAvatar:error: process-failed ' )
131+ emit (' blockSave' , true )
132+ return
133+ }
134134 const { blob: resizedBlob , dimension } = processed
135- console .info (' [avatar-upload] original size:' , selectedFileSize .value || 0 , ' bytes; upload size:' , resizedBlob .size , ' bytes; dimension:' , dimension + ' px' )
135+ if (ENV_DEVELOPMENT ) {
136+ console .info (' [avatar-upload] original size:' , selectedFileSize .value || 0 , ' bytes; upload size:' , resizedBlob .size , ' bytes; dimension:' , dimension + ' px' )
137+ }
136138
137- await new Promise ((resolve ) => {
138- const request = api .uploadFile (resizedBlob, ' avatar.png' , null , dimension, dimension)
139- const handleFailure = (status , responseText ) => {
140- let message = ' Failed to upload avatar. Please try again.'
141- if (status === 413 ) {
142- message = ' Uploaded image is too large. Please choose a smaller file.'
143- }
144- console .error (' [avatar-upload]' , status, responseText)
145- fileError .value = message
146- emit (' blockSave' , true )
139+ await new Promise ((resolve ) => {
140+ const request = api .uploadFile (resizedBlob, ' avatar.png' , null , dimension, dimension)
141+ const handleFailure = (status , responseText ) => {
142+ let message = proxy .$t (' profile/ChangeAvatar:error:upload-failed' )
143+ if (status === 413 ) {
144+ message = proxy .$t (' profile/ChangeAvatar:error:file-too-large' )
145+ }
146+ console .error (' [avatar-upload]' , status, responseText)
147+ fileError .value = message
148+ emit (' blockSave' , true )
149+ resolve ()
150+ }
151+ request .addEventListener (' load' , () => {
152+ const status = request .status
153+ const responseText = request .responseText || ' '
154+ const contentType = request .getResponseHeader (' content-type' ) || ' '
155+ if (status < 200 || status >= 300 || ! contentType .includes (' application/json' )) {
156+ return handleFailure (status, responseText)
157+ }
158+ try {
159+ const response = JSON .parse (responseText)
160+ emit (' update:modelValue' , { url: response .url })
161+ emit (' blockSave' , false )
147162 resolve ()
163+ } catch (error) {
164+ return handleFailure (status, responseText)
148165 }
149- request .addEventListener (' load' , () => {
150- const status = request .status
151- const responseText = request .responseText || ' '
152- const contentType = request .getResponseHeader (' content-type' ) || ' '
153- if (status < 200 || status >= 300 || ! contentType .includes (' application/json' )) {
154- return handleFailure (status, responseText)
155- }
156- try {
157- const response = JSON .parse (responseText)
158- emit (' update:modelValue' , { url: response .url })
159- emit (' blockSave' , false )
160- resolve ()
161- } catch (error) {
162- return handleFailure (status, responseText)
163- }
164- })
165- request .addEventListener (' error' , () => {
166- handleFailure (request .status , request .responseText )
167- })
168166 })
167+ request .addEventListener (' error' , () => {
168+ handleFailure (request .status , request .responseText )
169+ })
170+ })
169171}
170172
171173function createAvatarBlob (sourceCanvas ) {
0 commit comments