Files
CVAtron/resources/js/components/resume/ResumeEditPanel.vue
Matthias Guillitte cb242e59ba
Some checks failed
linter / quality (push) Successful in 3m37s
tests / ci (push) Failing after 13m21s
Minimal Viable Product + Refactor to pinia store + Fix PDF export
2025-09-16 16:30:37 +02:00

37 lines
1.3 KiB
Vue

<script setup lang="ts">
import ResumeComponentEdit from './ResumeComponentEdit.vue';
import ResumeComponentsList from './ResumeComponentsList.vue';
import ComponentsSelectionList from './ComponentsSelectionList.vue';
import { computed } from 'vue';
import { useResumesStore } from '@/stores/resume';
import { useShowComponentSelectionStore } from '@/stores/ui';
const resumeStore = useResumesStore();
const selectedComponent = resumeStore.currentSelectedResumePlacement;
const showComponentSelectionStore = useShowComponentSelectionStore();
const showComponentSelection = computed<boolean>(() => showComponentSelectionStore.showComponentSelection);
</script>
<template>
<div class="flex h-full flex-1 gap-4 rounded-xl p-4 overflow-x-auto max-w-[25%] bg-accent relative">
<Transition mode="out-in" appear>
<ResumeComponentEdit v-if="selectedComponent != null" :key="selectedComponent ? selectedComponent.id : 'form'" />
<ComponentsSelectionList v-else-if="showComponentSelection" />
<ResumeComponentsList v-else />
</Transition>
</div>
</template>
<style lang="css" scoped>
.v-enter-active,
.v-leave-active {
transition: opacity 0.3s ease;
}
.v-enter-from,
.v-leave-to {
opacity: 0;
}
</style>