Skip to content

Commit 4cca02f

Browse files
committed
after deleting primary image set other image as primary
1 parent 6ab4b5f commit 4cca02f

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

frontend/src/components/app/settings/ProfileImage.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export default {
2323
methods: {
2424
async deleteImage(imageId) {
2525
this.showImageSettings = false;
26-
this.$emit('delete-image', imageId);
26+
this.$emit('delete-image', imageId, this.image.is_primary);
2727
},
2828
async makePrimaryImage(imageId) {
2929
this.showImageSettings = false;

frontend/src/views/app/Settings.vue

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
<script>
140140
/* eslint-disable prefer-destructuring */
141141
/* eslint-disable prefer-const */
142+
/* eslint-disable no-await-in-loop */
142143
import MenuButton from '@/components/app/settings/MenuButton.vue';
143144
import SectionHeader from '@/components/app/settings/SectionHeader.vue';
144145
import AccountInput from '@/components/app/settings/AccountInput.vue';
@@ -235,10 +236,21 @@ export default {
235236
this.fetchingImages = false;
236237
},
237238
async deleteImage(...args) {
238-
const [imageId] = args;
239+
const [imageId, isPrimary] = args;
239240
await this.$http.delete(`/profile/images/${imageId}`, { accessTokenRequired: true });
240-
const user = await this.$http.get(`/users/${this.$store.getters.getLoggedInUser.id}`, { accessTokenRequired: true });
241-
await this.$store.dispatch('login', user.data);
241+
const userImages = this.$store.getters.getLoggedInUser.images;
242+
if (userImages.length > 1 && isPrimary) {
243+
const len = userImages.length;
244+
for (let i = 0; i < len; i += 1) {
245+
if (userImages[i].id !== imageId) {
246+
await this.makePrimaryImage([userImages[i].id]);
247+
return;
248+
}
249+
}
250+
} else {
251+
const user = await this.$http.get(`/users/${this.$store.getters.getLoggedInUser.id}`, { accessTokenRequired: true });
252+
await this.$store.dispatch('login', user.data);
253+
}
242254
},
243255
async makePrimaryImage(...args) {
244256
const [imageId] = args;

0 commit comments

Comments
 (0)