/home/smartbloks/.trash/extendify/src/Library/state/Taxonomies.js
import { create } from 'zustand'
import { persist } from 'zustand/middleware'
import { Taxonomies as TaxonomiesApi } from '@library/api/Taxonomies'
export const useTaxonomyStore = create(
persist(
(set, get) => ({
taxonomies: {},
setTaxonomies: (taxonomies) => set({ taxonomies }),
fetchTaxonomies: async () => {
let tax
try {
tax = await TaxonomiesApi.get()
if (tax?.errors) {
console.error(tax)
throw new Error('Error fetching taxonomies')
}
} catch (e) {
// If error then try again after 2 seconds
setTimeout(() => get().fetchTaxonomies(), 2000)
return
}
tax = Object.keys(tax).reduce((taxFiltered, key) => {
taxFiltered[key] = tax[key]
return taxFiltered
}, {})
if (!Object.keys(tax)?.length) {
return
}
get().setTaxonomies(tax)
},
}),
{
name: 'extendify-taxonomies',
},
),
)