import { defineStore } from "pinia" import { useContentStore } from "~/composables/stores/useContentStore.js" export const workspaceEndpoint = "open/workspaces/" export const useWorkspacesStore = defineStore("workspaces", () => { const storedWorkspaceId = useCookie("currentWorkspace") const contentStore = useContentStore() const currentId = ref(storedWorkspaceId) const getCurrent = computed(() => { return contentStore.getByKey(currentId.value) }) const setCurrentId = (id) => { currentId.value = id storedWorkspaceId.value = id } const set = (items) => { contentStore.content.value = new Map() save(items) } const save = (items) => { contentStore.save(items) if (getCurrent.value == null && contentStore.length.value) { setCurrentId(items[0].id) } } const remove = (itemId) => { contentStore.remove(itemId) if (currentId.value === itemId) { setCurrentId( contentStore.length.value > 0 ? contentStore.getAll.value[0].id : null, ) } } return { ...contentStore, currentId, getCurrent, setCurrentId, set, save, remove, } }) export const fetchAllWorkspaces = (options = {}) => { return useOpnApi(workspaceEndpoint, options) }