import type { ComputedRef, Ref } from 'vue' import type { MapType, TableType, ViewType } from 'nocodb-sdk' import { ref, useApi, useInjectionState } from '#imports' import type { Row } from '~/lib' const [useProvideMapViewStore, useMapViewStore] = useInjectionState( ( meta: Ref, viewMeta: Ref | ComputedRef<(ViewType & { id: string }) | undefined>, ) => { const formattedData = ref() const { api } = useApi() const { project } = useProject() async function loadMapData() { // if ((!project?.value?.id || !meta.value?.id || !viewMeta?.value?.id) && !isPublic.value) return // reset formattedData & countByStack to avoid storing previous data after changing grouping field formattedData.value = [] // alert('in loadMapData') // debugger const res = await api.dbViewRow.list('noco', project.value.id!, meta.value!.id!, viewMeta.value!.id!) console.log('res in mapviewdatastore', res) // for (const data of res.list) { // formattedData.value = data.value // } formattedData.value = res.list } return { formattedData, loadMapData, } }, ) export { useProvideMapViewStore } export function useMapViewStoreOrThrow() { const mapViewStore = useMapViewStore() if (mapViewStore == null) throw new Error('Please call `useProvideMapViewStore` on the appropriate parent component') return mapViewStore } // async function loadMapData() { // if ((!project?.value?.id || !meta.value?.id || !viewMeta?.value?.id) && !isPublic.value) return // // reset formattedData & countByStack to avoid storing previous data after changing grouping field // formattedData.value = new Map() // countByStack.value = new Map() // let res // if (isPublic.value) { // res = await fetchSharedViewGroupedData(groupingFieldColumn!.value!.id!) // } else { // res = await api.dbViewRow.groupedDataList( // 'noco', // project.value.id!, // meta.value!.id!, // viewMeta.value!.id!, // groupingFieldColumn!.value!.id!, // {}, // {}, // ) // } // for (const data of res) { // const key = data.key // formattedData.value.set(key, formatData(data.value.list)) // countByStack.value.set(key, data.value.pageInfo.totalRows || 0) // } // }