feat: multi-profile progress

This commit is contained in:
2025-03-06 21:40:14 +00:00
parent cda8230d7d
commit cb813a7050
6 changed files with 86 additions and 55 deletions

View File

@ -1,4 +1,5 @@
<script setup lang="ts">
import { computed } from 'vue';
import Button from 'primevue/button';
import ToggleSwitch from 'primevue/toggleswitch';
import { open } from '@tauri-apps/plugin-shell';
@ -14,9 +15,14 @@ const props = defineProps({
pkg: Object as () => Package,
});
const toggle = async (value: boolean) => {
await prf.togglePkg(props.pkg, value);
};
const model = computed({
get() {
return prf.isPkgEnabled(props.pkg).value;
},
async set(value: boolean) {
await prf.togglePkg(props.pkg, value);
},
});
</script>
<template>
@ -28,8 +34,7 @@ const toggle = async (value: boolean) => {
class="scale-[1.33] shrink-0"
inputId="switch"
:disabled="!pkg?.loc"
:model-value="prf.isPkgEnabled(pkg)"
v-on:value-change="toggle"
v-model="model"
/>
<InstallButton :pkg="pkg" />
<Button
@ -43,6 +48,7 @@ const toggle = async (value: boolean) => {
v-on:click="pkg?.loc && open(pkg.loc.path ?? '')"
/>
<Button
v-if="pkg?.rmt"
rounded
icon="pi pi-external-link"
severity="info"
@ -50,7 +56,7 @@ const toggle = async (value: boolean) => {
size="small"
class="ml-2 shrink-0"
style="width: 2rem; height: 2rem"
v-on:click="pkg?.rmt && open(pkg.rmt.package_url ?? '')"
v-on:click="open(pkg.rmt.package_url ?? '')"
/>
</div>
</template>