Skip to content

Commit f17bcbd

Browse files
committed
Fix images not updating when editing mods and returning to mod
1 parent be9cff2 commit f17bcbd

2 files changed

Lines changed: 5 additions & 8 deletions

File tree

frontend/app/components/site/pages/edit-mod-page.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<edit-mod-files v-model="mod"/>
99
</m-tab>
1010
<m-tab name="images" :title="$t('images_tab')">
11-
<edit-mod-images v-model="mod"/>
11+
<edit-mod-images v-model="mod" v-model:initial-mod="initialMod"/>
1212
</m-tab>
1313
<m-tab name="members" :title="$t('members_tab')">
1414
<edit-mod-members v-model="mod"/>

frontend/app/components/site/pages/edit-mod/edit-mod-images.vue

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,17 @@
100100
<script setup lang="ts">
101101
import type { Mod, Image } from '~/types/models';
102102
import { useStore } from '~/store';
103-
import clone from 'rfdc/default';
103+
import { remove } from '@antfu/utils';
104104
105105
const { settings } = useStore();
106106
const showError = useQuickErrorToast();
107107
108108
const mod = defineModel<Mod>({ required: true });
109+
const initialMod = defineModel<Mod>("initial-mod", { required: true });
109110
110111
const uploadLink = computed(() => mod.value ? `mods/${mod.value.id}/images` : '');
111112
112-
const images = ref<Image[]>(clone(mod.value.images) ?? []);
113+
const images = computed(() => initialMod.value.images ?? []);
113114
114115
function setBanner(banner?: Image) {
115116
mod.value.banner_id = banner?.id;
@@ -131,11 +132,7 @@ async function setImageOrder(img: Image, order: number) {
131132
await patchRequest(`images/${img.id}`, { display_order: img.display_order + order });
132133
img.display_order = img.display_order + order;
133134
134-
// TODO: fix this equality check
135-
// I don't know this filter is working correctly...
136-
// eslint-disable-next-line eqeqeq
137-
images.value = images.value.filter(v => v != img);
138-
images.value.splice(img.display_order, 0, img);
135+
remove(images.value, img);
139136
140137
for (let i = 0; i < images.value.length; i++) {
141138
images.value[i]!.display_order = i;

0 commit comments

Comments
 (0)