diff options
author | GeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com> | 2023-05-16 18:26:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-16 18:26:00 +0200 |
commit | 9746cdeb47b226087ced574cddaac829b995e79b (patch) | |
tree | fa0e25bd7137da9d8f2e7fa7a16d6da53784eb5c /src-vue/src/views | |
parent | 475ca987668a9e055e18b1e955714bd84bbc117c (diff) | |
download | FlightCore-9746cdeb47b226087ced574cddaac829b995e79b.tar.gz FlightCore-9746cdeb47b226087ced574cddaac829b995e79b.zip |
refactor: Move LocalModCard into own Vue component (#359)
* refactor: Move LocalModCard into own Vue component
This is in preparation of overhauling the local mods interface
* style: Fix indentation
* fix: Remove unused property
Diffstat (limited to 'src-vue/src/views')
-rw-r--r-- | src-vue/src/views/mods/LocalModsView.vue | 76 |
1 files changed, 3 insertions, 73 deletions
diff --git a/src-vue/src/views/mods/LocalModsView.vue b/src-vue/src/views/mods/LocalModsView.vue index cbea7a33..38f7a914 100644 --- a/src-vue/src/views/mods/LocalModsView.vue +++ b/src-vue/src/views/mods/LocalModsView.vue @@ -5,44 +5,19 @@ </div> <el-scrollbar v-else> - <el-card shadow="hover" v-for="mod in mods" v-bind:key="mod.name"> - <el-switch style="--el-switch-on-color: #13ce66; --el-switch-off-color: #8957e5" v-model="mod.enabled" - :before-change="() => updateWhichModsEnabled(mod)" :loading="global_load_indicator" /> - <el-popconfirm - :title="$t('mods.local.delete_confirm')" - :confirm-button-text="$t('generic.yes')" - :cancel-button-text="$t('generic.no')" - @confirm="deleteMod(mod)" - > - <template #reference> - <el-button type="danger"> - {{ $t('mods.local.delete') }} - </el-button> - </template> - </el-popconfirm> - {{ mod.name }} - <span v-if="mod.version != null">(v{{ mod.version }})</span> - <img - v-if="mod.thunderstore_mod_string != null" - :title="$t('mods.local.part_of_ts_mod') + '\n' + mod.thunderstore_mod_string" - src="/src/assets/thunderstore-icon.png" - class="image" - height="16" - /> - </el-card> + <local-mod-card v-for="mod of mods" v-bind:key="mod.name" :mod="mod" /> </el-scrollbar> </template> <script lang="ts"> -import { invoke } from '@tauri-apps/api'; import { defineComponent } from 'vue'; -import { GameInstall } from '../../utils/GameInstall'; import { NorthstarMod } from "../../../../src-tauri/bindings/NorthstarMod"; -import { showErrorNotification, showNotification } from '../../utils/ui'; import { fuzzy_filter } from "../../utils/filter"; +import LocalModCard from "../../components/LocalModCard.vue"; export default defineComponent({ name: 'LocalModsView', + components: { LocalModCard }, computed: { installedMods(): NorthstarMod[] { return this.$store.state.installed_mods; @@ -66,51 +41,6 @@ export default defineComponent({ }; }, methods: { - async updateWhichModsEnabled(mod: NorthstarMod) { - this.global_load_indicator = true; - - // Setup up struct - let game_install = { - game_path: this.$store.state.game_path, - install_type: this.$store.state.install_type - } as GameInstall; - - // enable/disable specific mod - try { - await invoke("set_mod_enabled_status", { - gameInstall: game_install, - modName: mod.name, - // Need to set it to the opposite of current state, - // as current state is only updated after command is run - isEnabled: !mod.enabled, - }) - } - catch (error) { - showErrorNotification(`${error}`); - this.global_load_indicator = false; - return false; - } - - this.global_load_indicator = false; - return true; - }, - async deleteMod(mod: NorthstarMod) { - let game_install = { - game_path: this.$store.state.game_path, - install_type: this.$store.state.install_type - } as GameInstall; - await invoke("delete_northstar_mod", { gameInstall: game_install, nsmodName: mod.name }) - .then((message) => { - // Just a visual indicator that it worked - showNotification(this.$t('mods.local.success_deleting', { modName: mod.name })); - }) - .catch((error) => { - showErrorNotification(error); - }) - .finally(() => { - this.$store.commit('loadInstalledMods'); - }); - }, }, mounted() { this.$store.commit('loadInstalledMods'); |