This commit is contained in:
isUnknown 2025-03-07 17:29:11 +01:00
parent 432f718b14
commit f34ceb1559
5 changed files with 38 additions and 34 deletions

View file

@ -15,21 +15,22 @@
@click="isCommentsOpen = !isCommentsOpen"
>
<span class="sr-only"
>{{ isCommentsOpen ? "Masquer" : "Afficher" }} les commentaires</span
>{{ isCommentsOpen ? 'Masquer' : 'Afficher' }} les commentaires</span
>
</button>
<Comments v-if="isCommentsOpen" />
</template>
<script setup>
import Comments from "../comments/Comments.vue";
import { ref, watch } from "vue";
import { useDialogStore } from "../../stores/dialog";
import { storeToRefs } from "pinia";
import { VPdfViewer, useLicense } from "@vue-pdf-viewer/viewer";
import { useRoute, useRouter } from "vue-router";
import Comments from '../comments/Comments.vue';
import { ref, watch } from 'vue';
import { useDialogStore } from '../../stores/dialog';
import { storeToRefs } from 'pinia';
import { VPdfViewer, useLicense } from '@vue-pdf-viewer/viewer';
import { useRoute, useRouter } from 'vue-router';
const licenseKey = import.meta.env.VITE_VPV_LICENSE ?? 'd0ab730a-ebba-4060-856c-76d322565645';
const licenseKey =
import.meta.env.VITE_VPV_LICENSE ?? 'd0ab730a-ebba-4060-856c-76d322565645';
useLicense({ licenseKey });
const { openedFile, isCommentsOpen, comments, draftComment } = storeToRefs(
@ -40,14 +41,14 @@ const currentPageIndex = ref(1);
// Functions
const onPdfLoaded = () => {
const wrapper = document.querySelector(".vpv-pages-inner-container");
const wrapper = document.querySelector('.vpv-pages-inner-container');
const observer = new IntersectionObserver(
(entries) => {
entries.forEach((entry, index) => {
if (entry.intersectionRatio > 0.5) {
currentPageIndex.value = parseInt(
entry.target.getAttribute("aria-label").split(" ")[1]
entry.target.getAttribute('aria-label').split(' ')[1]
);
}
});
@ -59,7 +60,7 @@ const onPdfLoaded = () => {
);
const observePages = () => {
const pages = document.querySelectorAll(".vpv-page-inner-container");
const pages = document.querySelectorAll('.vpv-page-inner-container');
pages.forEach((page) => {
if (!page.__observed__) {
observer.observe(page);
@ -81,5 +82,5 @@ const onPdfLoaded = () => {
</script>
<style scoped>
@import "../../assets/css/src/2.blocks.pdf-viewer.css";
@import '../../assets/css/src/2.blocks.pdf-viewer.css';
</style>

View file

@ -30,22 +30,22 @@
</template>
<script setup>
import { ref, watch } from "vue";
import { useVirtualSampleStore } from "../../../stores/virtualSample";
import PdfViewer from "../PdfViewer.vue";
import { storeToRefs } from "pinia";
import { useDialogStore } from "../../../stores/dialog";
import { ref, watch } from 'vue';
import { useVirtualSampleStore } from '../../../stores/virtualSample';
import PdfViewer from '../PdfViewer.vue';
import { storeToRefs } from 'pinia';
import { useDialogStore } from '../../../stores/dialog';
const { step } = useVirtualSampleStore();
const { step } = storeToRefs(useVirtualSampleStore());
const { openedFile, activeTracks } = storeToRefs(useDialogStore());
const activeTab = ref(Object.keys(step.files.static)[0]);
const activeTab = ref(Object.keys(step.value.files.static)[0]);
activeTracks.value = [];
watch(
activeTab,
(newVal) => {
openedFile.value = step.files.static[newVal];
openedFile.value = step.value.files.static[newVal];
},
{ immediate: true }
);

View file

@ -122,6 +122,7 @@ const { isCommentsOpen, isCommentPanelEnabled, activeTracks, openedFile } =
const { page } = storeToRefs(usePageStore());
isLoopAnimationEnabled.value = false;
activeTab.value = 'dynamic';
// Variables
const router = useRouter();

View file

@ -1,15 +1,17 @@
import { defineStore, storeToRefs } from 'pinia';
import { ref, watch } from 'vue';
import { ref, computed, watch } from 'vue';
import { usePageStore } from './page';
import { useDialogStore } from './dialog';
export const useVirtualSampleStore = defineStore('virtual-sample', () => {
const { page } = usePageStore();
const { page } = storeToRefs(usePageStore());
const { openedFile } = storeToRefs(useDialogStore());
const step = page.steps.find((step) => step.id === 'virtualSample');
const step = computed(() => {
return page.value.steps.find((step) => step.id === 'virtualSample');
});
const isCompareModeEnabled = ref(false);
const activeTab = ref(step.files.dynamic ? 'dynamic' : 'static');
const activeTab = ref(step.value.files.dynamic ? 'dynamic' : 'static');
const currentFile = ref(null);
const isLoopAnimationEnabled = ref(false);
const isDownloadTriggered = ref(false);

View file

@ -21,16 +21,16 @@
</template>
<script setup>
import ProjectStep from "../components/project/ProjectStep.vue";
import Header from "../components/project/Header.vue";
import DialogWrapper from "../components/project/DialogWrapper.vue";
import { usePageStore } from "../stores/page";
import { storeToRefs } from "pinia";
import { watch, ref } from "vue";
import { useDialogStore } from "../stores/dialog";
import { useRoute } from "vue-router";
import DTLButton from "../components/design-to-light/DTLButton.vue";
import DTLPanel from "../components/design-to-light/DTLPanel.vue";
import ProjectStep from '../components/project/ProjectStep.vue';
import Header from '../components/project/Header.vue';
import DialogWrapper from '../components/project/DialogWrapper.vue';
import { usePageStore } from '../stores/page';
import { storeToRefs } from 'pinia';
import { watch, ref } from 'vue';
import { useDialogStore } from '../stores/dialog';
import { useRoute } from 'vue-router';
import DTLButton from '../components/design-to-light/DTLButton.vue';
import DTLPanel from '../components/design-to-light/DTLPanel.vue';
const { page } = storeToRefs(usePageStore());
const dialog = useDialogStore();