feat: phase 2

Newfound motivation
This commit is contained in:
2025-02-23 05:12:21 +01:00
parent fdf3679fbe
commit a29bce2227
36 changed files with 1367 additions and 615 deletions

View File

@ -1,32 +1,28 @@
<script setup lang="ts">
import { Reactive, onMounted, reactive } from 'vue';
import Fieldset from 'primevue/fieldset';
import { invoke } from '@tauri-apps/api/core';
import ModListEntry from './ModListEntry.vue';
import { ModEntry, Profile } from '../types';
import { usePkgStore } from '../stores';
import { Profile } from '../types';
const mods: Reactive<{ [key: string]: ModEntry[] }> = reactive({});
const props = defineProps({
defineProps({
profile: Object as () => Profile,
});
onMounted(async () => {
const modsRaw: ModEntry[] = await invoke('get_packages');
modsRaw.forEach((m) => {
if (props.profile?.mods.includes(`${m.namespace}-${m.name}`)) {
m.enabled = true;
}
});
Object.assign(
mods,
Object.groupBy(modsRaw, ({ namespace }) => namespace)
const pkgs = usePkgStore();
const group = () => {
const a = Object.assign(
{},
Object.groupBy(pkgs.allLocal, ({ namespace }) => namespace)
);
});
return a;
};
pkgs.reloadProfile();
</script>
<template>
<Fieldset v-for="(namespace, key) in mods" :legend="key.toString()">
<ModListEntry v-for="m in namespace" :mod="m" />
<Fieldset v-for="(namespace, key) in group()" :legend="key.toString()">
<ModListEntry v-for="p in namespace" :pkg="p" />
</Fieldset>
</template>