Skip to content

Commit d210b37

Browse files
author
Jovert Lota Palonpon
committed
Fix #33
1 parent 49facd1 commit d210b37

File tree

2 files changed

+78
-20
lines changed

2 files changed

+78
-20
lines changed

resources/js/ui/Dropzone.js

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,24 @@ function Dropzone(props) {
146146
}
147147

148148
if (removedFile.status === 'uploaded') {
149-
handleFileRemoved(removedFile, () => {
149+
handleFileRemoved(removedFile, (removed, message = '') => {
150+
if (!removed) {
151+
// Let it be known why the file is not removed.
152+
setFiles(
153+
files.map(file => {
154+
if (file.url === removedFile.url) {
155+
return Object.assign(file, {
156+
message,
157+
});
158+
}
159+
160+
return file;
161+
}),
162+
);
163+
164+
return;
165+
}
166+
150167
setFiles(files.filter(file => file.url !== removedFile.url));
151168
});
152169

@@ -214,20 +231,33 @@ function Dropzone(props) {
214231
return;
215232
}
216233

217-
handleUpload(files.find(file => file.status === 'uploading'), () => {
218-
setFiles(
219-
files.map(file => {
220-
if (file.status === 'uploading') {
221-
return Object.assign(file, {
222-
status: 'uploaded',
223-
message: '',
224-
});
225-
}
234+
handleUpload(
235+
files.find(file => file.status === 'uploading'),
236+
(uploaded, message = '') => {
237+
function updateFiles(fileStatus, fileMessage = '') {
238+
setFiles(
239+
files.map(file => {
240+
if (file.status === 'uploading') {
241+
return Object.assign(file, {
242+
status: fileStatus,
243+
message: fileMessage,
244+
});
245+
}
226246

227-
return file;
228-
}),
229-
);
230-
});
247+
return file;
248+
}),
249+
);
250+
}
251+
252+
if (!uploaded) {
253+
updateFiles('rejected', message);
254+
255+
return;
256+
}
257+
258+
updateFiles('uploaded');
259+
},
260+
);
231261
}, [files]);
232262

233263
const { getRootProps, getInputProps, open, isDragActive } = useDropzone({

resources/js/views/__backoffice/users/Forms/Avatar.js

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,26 @@ class Avatar extends Component {
5353
const { user } = this.props;
5454

5555
try {
56-
await axios.delete(`api/v1/users/${user.id}/avatar`);
56+
const response = await axios.delete(
57+
`api/v1/users/${user.id}/avatar`,
58+
);
5759

58-
removed();
59-
} catch (error) {}
60+
if (response.status !== 200) {
61+
removed(false, response.statusText);
62+
63+
return;
64+
}
65+
66+
removed(true);
67+
} catch (error) {
68+
if (!error.response) {
69+
removed(false, 'File not removed due to unknown error.');
70+
71+
return;
72+
}
73+
74+
removed(false, error.response.statusText);
75+
}
6076
};
6177

6278
/**
@@ -74,7 +90,7 @@ class Avatar extends Component {
7490
const formData = new FormData();
7591
formData.append('avatar', file);
7692

77-
await fetch(`api/v1/users/${user.id}/avatar`, {
93+
const response = await fetch(`api/v1/users/${user.id}/avatar`, {
7894
method: 'POST',
7995
headers: {
8096
Authorization:
@@ -85,8 +101,20 @@ class Avatar extends Component {
85101
body: formData,
86102
});
87103

88-
done();
89-
} catch (error) {}
104+
if (response.status !== 200) {
105+
done(false, response.statusText);
106+
}
107+
108+
done(true);
109+
} catch (error) {
110+
if (!error.response) {
111+
removed(false, 'File not uploaded due to unknown error.');
112+
113+
return;
114+
}
115+
116+
removed(false, error.response.statusText);
117+
}
90118
};
91119

92120
componentDidMount() {

0 commit comments

Comments
 (0)