forked from akanyan/STARTLINER
feat: phase 2
Newfound motivation
This commit is contained in:
@ -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>
|
||||
|
Reference in New Issue
Block a user