designtopack/src/stores/virtualSample.js
2025-06-06 09:33:08 +02:00

38 lines
1 KiB
JavaScript

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