{
  "version": 3,
  "sources": ["../../src/hooks/use-elements.ts"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { Option } from '../types';\n\nconst EMPTY_ARRAY: Option[] = [];\n\nexport default function useElements( {\n\telements,\n\tgetElements,\n}: {\n\telements?: Option[];\n\tgetElements?: () => Promise< Option[] >;\n} ) {\n\tconst staticElements =\n\t\tArray.isArray( elements ) && elements.length > 0\n\t\t\t? elements\n\t\t\t: EMPTY_ARRAY;\n\tconst [ records, setRecords ] = useState< Option[] >( staticElements );\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( ! getElements ) {\n\t\t\tsetRecords( staticElements );\n\t\t\treturn;\n\t\t}\n\n\t\tlet cancelled = false;\n\t\tsetIsLoading( true );\n\t\tgetElements()\n\t\t\t.then( ( fetchedElements ) => {\n\t\t\t\tif ( ! cancelled ) {\n\t\t\t\t\tconst dynamicElements =\n\t\t\t\t\t\tArray.isArray( fetchedElements ) &&\n\t\t\t\t\t\tfetchedElements.length > 0\n\t\t\t\t\t\t\t? fetchedElements\n\t\t\t\t\t\t\t: staticElements;\n\t\t\t\t\tsetRecords( dynamicElements );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tif ( ! cancelled ) {\n\t\t\t\t\tsetRecords( staticElements );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\tif ( ! cancelled ) {\n\t\t\t\t\tsetIsLoading( false );\n\t\t\t\t}\n\t\t\t} );\n\n\t\treturn () => {\n\t\t\tcancelled = true;\n\t\t};\n\t}, [ getElements, staticElements ] );\n\n\treturn {\n\t\telements: records,\n\t\tisLoading,\n\t};\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAoC;AAOpC,IAAM,cAAwB,CAAC;AAEhB,SAAR,YAA8B;AAAA,EACpC;AAAA,EACA;AACD,GAGI;AACH,QAAM,iBACL,MAAM,QAAS,QAAS,KAAK,SAAS,SAAS,IAC5C,WACA;AACJ,QAAM,CAAE,SAAS,UAAW,QAAI,yBAAsB,cAAe;AACrE,QAAM,CAAE,WAAW,YAAa,QAAI,yBAAU,KAAM;AAEpD,gCAAW,MAAM;AAChB,QAAK,CAAE,aAAc;AACpB,iBAAY,cAAe;AAC3B;AAAA,IACD;AAEA,QAAI,YAAY;AAChB,iBAAc,IAAK;AACnB,gBAAY,EACV,KAAM,CAAE,oBAAqB;AAC7B,UAAK,CAAE,WAAY;AAClB,cAAM,kBACL,MAAM,QAAS,eAAgB,KAC/B,gBAAgB,SAAS,IACtB,kBACA;AACJ,mBAAY,eAAgB;AAAA,MAC7B;AAAA,IACD,CAAE,EACD,MAAO,MAAM;AACb,UAAK,CAAE,WAAY;AAClB,mBAAY,cAAe;AAAA,MAC5B;AAAA,IACD,CAAE,EACD,QAAS,MAAM;AACf,UAAK,CAAE,WAAY;AAClB,qBAAc,KAAM;AAAA,MACrB;AAAA,IACD,CAAE;AAEH,WAAO,MAAM;AACZ,kBAAY;AAAA,IACb;AAAA,EACD,GAAG,CAAE,aAAa,cAAe,CAAE;AAEnC,SAAO;AAAA,IACN,UAAU;AAAA,IACV;AAAA,EACD;AACD;",
  "names": []
}
