2023-12-16 18:21:03 +00:00
|
|
|
import {defineStore} from 'pinia'
|
2023-12-19 12:46:55 +00:00
|
|
|
import {useContentStore} from "~/composables/stores/useContentStore.js";
|
2023-12-09 14:47:03 +00:00
|
|
|
|
2023-12-19 12:46:55 +00:00
|
|
|
const templatesEndpoint = 'templates'
|
|
|
|
export const useTemplatesStore = defineStore('templates', () => {
|
|
|
|
|
|
|
|
const contentStore = useContentStore('slug')
|
2023-12-09 14:47:03 +00:00
|
|
|
|
2023-12-19 12:46:55 +00:00
|
|
|
const allLoaded = ref(false)
|
|
|
|
const industries = ref({})
|
|
|
|
const types = ref({})
|
2023-12-09 14:47:03 +00:00
|
|
|
|
2023-12-19 12:46:55 +00:00
|
|
|
const getTemplateTypes = computed((state) => (slugs) => {
|
|
|
|
if (state.types.length === 0) return null
|
|
|
|
return Object.values(state.types).filter((val) => slugs.includes(val.slug)).map((item) => {
|
|
|
|
return item.name
|
|
|
|
})
|
|
|
|
// todo: use map
|
|
|
|
})
|
|
|
|
const getTemplateIndustries = computed((state) => (slugs) => {
|
|
|
|
if (state.industries.length === 0) return null
|
|
|
|
return Object.values(state.industries).filter((val) => slugs.includes(val.slug)).map((item) => {
|
|
|
|
return item.name
|
|
|
|
})
|
|
|
|
})
|
2023-12-09 14:47:03 +00:00
|
|
|
|
2023-12-19 12:46:55 +00:00
|
|
|
const loadTypesAndIndustries = function() {
|
|
|
|
if (Object.keys(this.industries).length === 0 || Object.keys(this.types).length === 0) {
|
|
|
|
// const files = import.meta.glob('~/data/forms/templates/*.json')
|
|
|
|
// console.log(await files['/data/forms/templates/industries.json']())
|
|
|
|
// this.industries = await files['/data/forms/templates/industries.json']()
|
|
|
|
// this.types = await files['/data/forms/templates/types.json']()
|
2023-12-09 14:47:03 +00:00
|
|
|
}
|
|
|
|
}
|
2023-12-19 12:46:55 +00:00
|
|
|
|
|
|
|
return {
|
|
|
|
...contentStore,
|
|
|
|
industries,
|
|
|
|
types,
|
|
|
|
getTemplateTypes,
|
|
|
|
getTemplateIndustries,
|
|
|
|
loadTypesAndIndustries,
|
|
|
|
}
|
2023-12-09 14:47:03 +00:00
|
|
|
})
|
2023-12-19 12:46:55 +00:00
|
|
|
|
|
|
|
export const fetchTemplate = (slug) => {
|
|
|
|
return useOpnApi(templatesEndpoint + '/' + slug)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const fetchAllTemplates = () => {
|
|
|
|
return useOpnApi(templatesEndpoint)
|
|
|
|
}
|
|
|
|
|