balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

useTaxonomies.js (1024B)


      1 import { useEffect, useCallback } from '@wordpress/element'
      2 import { Taxonomies as TaxonomiesApi } from '../api/Taxonomies'
      3 import { useTemplatesStore } from '../state/Templates'
      4 import { useTaxonomyStore } from '../state/Taxonomies'
      5 
      6 export default function useTaxonomies(open) {
      7     const setupDefaultTaxonomies = useTemplatesStore(state => state.setupDefaultTaxonomies)
      8     const setTaxonomies = useTaxonomyStore(state => state.setTaxonomies)
      9     const fetchTaxonomies = useCallback(async () => {
     10         let tax = await TaxonomiesApi.get()
     11         // Only allow items that have the 'tax_' prefix
     12         tax = Object.keys(tax)
     13             .filter((t) => t.startsWith('tax_'))
     14             .reduce((taxFiltered, key) => {
     15                 taxFiltered[key] = tax[key]
     16                 return taxFiltered
     17             }, {})
     18         setupDefaultTaxonomies(tax)
     19         setTaxonomies(tax)
     20     }, [setupDefaultTaxonomies, setTaxonomies])
     21 
     22     useEffect(() => {
     23         open && fetchTaxonomies()
     24     }, [fetchTaxonomies, open])
     25 }