Skip to content

Commit 7fedb85

Browse files
committed
Fix dependencies not appearing in mod page after edit mod page
1 parent f17bcbd commit 7fedb85

5 files changed

Lines changed: 16 additions & 13 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
@@ -14,7 +14,7 @@
1414
<edit-mod-members v-model="mod"/>
1515
</m-tab>
1616
<m-tab name="instructions" :title="$t('instructions_tab')">
17-
<edit-mod-deps v-model="mod"/>
17+
<edit-mod-deps v-model="mod" v-model:initial-mod="initialMod"/>
1818
</m-tab>
1919
<m-tab name="extra" :title="$t('extra_tab')">
2020
<edit-mod-extra v-model="mod"/>

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,19 @@ import type { Dependency, Mod } from '~/types/models';
4444
import clone from 'rfdc/default';
4545
4646
const props = defineProps<{
47-
dependable: {
48-
id: number;
49-
dependencies?: Dependency[];
50-
};
5147
url: string;
5248
paused?: boolean;
5349
}>();
5450
5551
const showAddModModal = ref(false);
5652
const showError = useQuickErrorToast();
57-
const dependencies = ref<Dependency[]>(clone(props.dependable.dependencies ?? []));
53+
54+
const dependable = defineModel<{
55+
id: number;
56+
dependencies?: Dependency[];
57+
}>({ required: true });
58+
59+
const dependencies = computed(() => dependable.value.dependencies ?? []);
5860
5961
const depTemplate: Dependency = {
6062
id: -1,
@@ -83,7 +85,7 @@ watch(() => props.paused, async val => {
8385
for (const dep of dependencies.value) {
8486
if (!dep.id) {
8587
try {
86-
const newDep = await postRequest<Dependency>(`${props.url}/${props.dependable.id}/dependencies`, dep);
88+
const newDep = await postRequest<Dependency>(`${props.url}/${dependable.value.id}/dependencies`, dep);
8789
Object.assign(dep, newDep);
8890
} catch (error) {
8991
showError(error);
@@ -122,11 +124,11 @@ async function addDependency(onError) {
122124
currentDep.value!.id = 0;
123125
dependencies.value.push(currentDep.value!);
124126
} else {
125-
const dep = await postRequest<Dependency>(`${props.url}/${props.dependable.id}/dependencies`, currentDep.value);
127+
const dep = await postRequest<Dependency>(`${props.url}/${dependable.value.id}/dependencies`, currentDep.value);
126128
dependencies.value.push(dep);
127129
}
128130
} else if (dep.id) {
129-
dep = await patchRequest<Dependency>(`${props.url}/${props.dependable.id}/dependencies/${currentDep.value!.id}`, currentDep.value);
131+
dep = await patchRequest<Dependency>(`${props.url}/${dependable.value.id}/dependencies/${currentDep.value!.id}`, currentDep.value);
130132
}
131133
132134
if (currentDepIndex.value !== undefined && currentDepIndex.value !== -1) {
@@ -144,7 +146,7 @@ async function addDependency(onError) {
144146
async function deleteDep(dep) {
145147
try {
146148
if (dep.id) {
147-
await deleteRequest(`${props.url}/${props.dependable.id}/dependencies/${dep.id}`);
149+
await deleteRequest(`${props.url}/${dependable.value.id}/dependencies/${dep.id}`);
148150
}
149151
remove(dependencies.value, dep);
150152
showAddModModal.value = false;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
null-clear
99
/>
1010
<md-editor v-model="mod.instructions" :label="$t('instructions')" rows="12"/>
11-
<edit-mod-edit-dependencies :dependable="mod" :paused="!mod.id" url="mods"/>
11+
<edit-mod-edit-dependencies v-model="initialMod" :paused="!mod.id" url="mods"/>
1212
</template>
1313

1414
<script setup lang="ts">
1515
import type { Mod } from '~/types/models';
1616
const mod = defineModel<Mod>({ required: true });
17+
const initialMod = defineModel<Mod>('initial-mod', { required: true });
1718
</script>

frontend/app/components/site/pages/mod/mod-tabs.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<md-content allow-anchors :text="mod.license" :parser-version="mod.parser_version"/>
2929
</m-tab>
3030
<m-tab v-if="dependencies.length || instructions" name="instructions" :title="$t('instructions_tab')" gap="3">
31-
<m-flex wrap>
31+
<m-flex column>
3232
<div v-if="instructions" >
3333
<h2>{{ $t('instructions') }}</h2>
3434
<md-content class="mb-3" allow-anchors :text="instructions" :parser-version="mod.parser_version"/>

frontend/app/pages/g/[game]/admin/instructs-templates/[template].vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<m-input v-model="template.name" :label="$t('name')"/>
1010
<md-editor v-model="template.instructions" :label="$t('instructions')"/>
1111
<m-input v-model="template.localized" type="checkbox" :label="$t('localized')"/>
12-
<edit-mod-edit-dependencies v-if="template.id" :dependable="template" url="instructs-templates"/>
12+
<edit-mod-edit-dependencies v-if="template.id" v-model="template" url="instructs-templates"/>
1313
</simple-resource-form>
1414
</template>
1515

0 commit comments

Comments
 (0)