This commit is contained in:
Team3
2026-07-26 20:53:01 +02:00
parent ebfb2fc360
commit 0115fd4ce9
13 changed files with 264 additions and 321 deletions

View File

@@ -3,13 +3,21 @@ import { onMounted, ref, watch } from 'vue'
import { fetchProjekte } from './api.js'
import SeitenLeiste from './components/SeitenLeiste.vue'
import FeatureListe from './components/FeatureListe.vue'
import KontextMenue from './components/KontextMenue.vue'
const projekte = ref([])
const aktivesProjekt = ref(null)
const meldung = ref('')
const dunkel = ref(document.documentElement.classList.contains('dark'))
async function ladeProjekte() {
projekte.value = await fetchProjekte()
meldung.value = ''
try {
projekte.value = await fetchProjekte()
} catch (e) {
meldung.value = e.message
return
}
// Auswahl verwerfen, wenn das Projekt (z. B. nach Löschen) weg ist
if (aktivesProjekt.value && !projekte.value.some(p => p.name === aktivesProjekt.value)) {
aktivesProjekt.value = null
@@ -57,9 +65,12 @@ onMounted(async () => {
</SeitenLeiste>
<main>
<FeatureListe v-if="aktivesProjekt" :projekt="aktivesProjekt" @geaendert="ladeProjekte" />
<p v-else class="leer">Projekt wählen oder anlegen.</p>
<p v-if="meldung" class="meldung">{{ meldung }}</p>
<FeatureListe v-if="aktivesProjekt" :projekt="aktivesProjekt" />
<p v-else-if="!meldung" class="leer">Projekt wählen oder anlegen.</p>
</main>
<KontextMenue />
</div>
</template>