+
I'm an email component : {{ props.componentPlacement?.component_data?.input_data[0].value }}
+
diff --git a/resources/js/lib/pdfExport.ts b/resources/js/lib/pdfExport.ts
new file mode 100644
index 0000000..af071d3
--- /dev/null
+++ b/resources/js/lib/pdfExport.ts
@@ -0,0 +1,13 @@
+import { jsPDF } from "jspdf";
+
+export function exportToPdf(element: HTMLElement, name: string) {
+ const pdf = new jsPDF();
+
+ pdf.html(element, {
+ callback: function (doc) {
+ doc.save(name);
+ },
+ width: 210,
+ windowWidth: element.scrollWidth,
+ });
+}
diff --git a/resources/js/pages/resumes/Edit.vue b/resources/js/pages/resumes/Edit.vue
index 19b79bc..0070770 100644
--- a/resources/js/pages/resumes/Edit.vue
+++ b/resources/js/pages/resumes/Edit.vue
@@ -2,20 +2,24 @@
import AppLayout from '@/layouts/AppLayout.vue';
import { type BreadcrumbItem } from '@/types';
import { Head } from '@inertiajs/vue3';
-import { Resume, ResumeComponent, ResumeComponentPlacement } from '@/types/resume';
+import { Resume, ResumeComponentPlacement } from '@/types/resume';
import ResumeEditPanel from '@/components/resume/ResumeEditPanel.vue';
import ResumePreviewPanel from '@/components/resume/ResumePreviewPanel.vue';
-import { ref } from 'vue';
+import { computed, ref, watch } from 'vue';
const props = defineProps<{
resume: Resume
}>();
+const localResume = ref({ ...props.resume });
+
+const resumeTitle = computed
(() => (localResume.value.name == '' ? 'Sans titre' : localResume.value.name) ?? 'Sans titre');
+
const selectedComponent = ref(null);
const breadcrumbs: BreadcrumbItem[] = [
{
- title: props.resume?.name ?? 'Sans titre',
+ title: resumeTitle.value,
href: '/resumes/edit',
},
];
@@ -23,22 +27,39 @@ const breadcrumbs: BreadcrumbItem[] = [
function changeSelectedComponent(newComponent: ResumeComponentPlacement) {
selectedComponent.value = newComponent;
// Update the resume
- props.resume.components_placements! = props.resume.components_placements!.map(component =>
+ localResume.value.components_placements! = localResume.value.components_placements!.map(component =>
component.id === newComponent.id ? newComponent : component
);
}
-console.log('Resume : ', props.resume);
+function changeResumeTitle(newTitle: string) {
+ console.log('Changing resume title to ', newTitle);
+ localResume.value.name = newTitle;
+}
+
+console.debug('Resume : ', localResume.value);
-
+
-
-
+
+
+
+
diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php
index cd275d0..161324d 100644
--- a/resources/views/app.blade.php
+++ b/resources/views/app.blade.php
@@ -23,11 +23,11 @@
{{-- Inline style to set the HTML background color based on our theme in app.css --}}