designtopack/src/stores/addImagesModal.js

74 lines
1.8 KiB
JavaScript
Raw Normal View History

import { defineStore } from "pinia";
import { ref, computed } from "vue";
import { useApiStore } from "./api";
2024-11-19 14:10:35 +01:00
import MyImages from "../components/project/brief/add-images-modal/MyImages.vue";
import ImagesResources from "../components/project/brief/add-images-modal/ImagesResources.vue";
export const useAddImagesModalStore = defineStore("add-images-modal", () => {
const tabs = ref([
{
name: "Mes images",
id: "my-images",
component: MyImages,
params: false,
images: [],
selectedImages: [],
},
{
name: "Matériauthèque",
id: "materials",
component: ImagesResources,
params: {
targetPage: "materials",
},
images: [],
selectedImages: [],
},
{
name: "Réalisations",
id: "creations",
component: ImagesResources,
images: [],
selectedImages: [],
},
{
name: "Inspirations",
id: "inspirations",
component: ImagesResources,
params: false,
2024-12-17 16:12:51 +01:00
collections: [],
selectedImages: [],
},
]);
const activeTabId = ref("my-images");
const activeTab = computed(() => {
return tabs.value.find((tab) => tab.id === activeTabId.value);
});
2024-12-17 16:12:51 +01:00
const selectedImages = ref({
myImages: [],
materials: [],
inspirations: [],
});
const api = useApiStore();
api
2024-10-28 15:33:52 +01:00
.fetchData("materials")
2024-12-17 16:12:51 +01:00
.then((json) => (tabs.value[1].images = json.page.images));
2024-10-28 15:33:52 +01:00
api.fetchData("creations").then((json) => {
2024-12-17 16:12:51 +01:00
tabs.value[2].images = json.page.images;
});
2024-12-11 13:33:06 +01:00
api.fetchData("inspirations").then((json) => {
console.log(json);
2024-12-17 16:12:51 +01:00
tabs.value[3].collections = json.page.inspirations;
tabs.value[3].collections[0].isActive = true;
2024-12-17 16:12:51 +01:00
tabs.value[3].images = json.page.inspirations[0].media;
2024-12-11 13:33:06 +01:00
});
2024-12-17 16:12:51 +01:00
return { activeTabId, tabs, activeTab };
});