Minimal Viable Product + Refactor to pinia store + Fix PDF export
Some checks failed
linter / quality (push) Successful in 3m37s
tests / ci (push) Failing after 13m21s

This commit is contained in:
2025-09-16 16:30:37 +02:00
parent f3ff6fd6ac
commit cb242e59ba
39 changed files with 1055 additions and 137 deletions

View File

@@ -1,25 +1,35 @@
<script setup lang="ts">
import { Resume, ResumeComponentPlacement } from '@/types/resume';
import ResumeComponent from './ResumeComponent.vue';
import PrintResumeButton from './PrintResumeButton.vue';
import ResumeNameInput from './ResumeNameInput.vue';
import { useResumesStore } from '@/stores/resume';
const props = defineProps<{
resume: Resume,
selectedComponent: ResumeComponentPlacement | null
}>();
const resumeStore = useResumesStore();
const resume = resumeStore.currentResume;
const selectedComponent = resumeStore.currentSelectedResumePlacement;
const emit = defineEmits(['selected-component-change', 'update:resume-title']);
</script>
<template>
<div class="flex-2 flex flex-col gap-3 w-full">
<div id="tools" class="w-full flex gap-3 justify-between">
<ResumeNameInput :resume="props.resume" :resumeTitle="props.resume.name" @update:resume-title="emit('update:resume-title', $event)" />
<PrintResumeButton :resume="props.resume" />
<ResumeNameInput />
<PrintResumeButton />
</div>
<div id="resume" class="aspect-[0.707317073] w-full max-w-[84.1cm] bg-white text-black">
<ResumeComponent v-for="componentPlacement in props.resume.components_placements" :key="componentPlacement.id" :componentPlacement="componentPlacement" @click="emit('selected-component-change', componentPlacement)" />
<div class="resume aspect-[0.707317073] w-full bg-white text-black">
<ResumeComponent v-for="componentPlacement in resume?.components_placements" :key="componentPlacement.id" :componentPlacement="componentPlacement" :active="componentPlacement.id === selectedComponent?.id" @click="resumeStore.setSelectedResumePlacementById(componentPlacement.id)" />
</div>
<div class="w-[210mm]" style="position: fixed; top:calc(-297mm - 5000px); container-type: inline-size; ">
<div id="resume" class="aspect-[0.707317073] w-full bg-white text-black" >
<ResumeComponent v-for="componentPlacement in resume?.components_placements" :key="componentPlacement.id" :componentPlacement="componentPlacement" :active="componentPlacement.id === selectedComponent?.id" @click="resumeStore.setSelectedResumePlacementById(componentPlacement.id)" />
</div>
</div>
</div>
</template>
<style scoped>
.resume {
container-type: inline-size;
font-size: 1cqw;
}
</style>