{"version":3,"file":"usePromotedMethodEntity.mjs","names":["useState","useEffect","useCallback","useMemo","useCatalogStore","useAxiosGet","getSanitizedName","ConfigService","usePromotedMethodEntity","entityName","t0","apiCatalogId","t1","$","_c","compareSanitizedName","undefined","productId","config","UNITY_PRODUCT_ID","data","setData","loading","setLoading","error","setError","currentApiCatalogId","setPromotedEntityMap","promotedEntityMap","acId","t2","Symbol","for","e","setErrorState","t3","response","setSuccessState","t4","bb0","entityNameKey","toLowerCase","cachedData","t5","t6","integrationV1ApiUrl","promotedEntity","promotedEntityLoading","promotedEntityError","t7","t8","isMounted","entityNameKey_0","promotedEntityName","updatedPromotedEntityMap","t9","t10"],"sources":["../../src/hooks/usePromotedMethodEntity.js"],"sourcesContent":["import { useState, useEffect, useCallback, useMemo } from 'react';\nimport { useCatalogStore } from '../stores/catalogStore';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { ConfigService } from '../configService';\n\nexport const usePromotedMethodEntity = (\n  entityName,\n  compareSanitizedName = false,\n  apiCatalogId,\n  productId = ConfigService.config.UNITY_PRODUCT_ID\n) => {\n  const [data, setData] = useState(undefined);\n  const [loading, setLoading] = useState(true);\n  const [error, setError] = useState(undefined);\n  const { currentApiCatalogId, setPromotedEntityMap, promotedEntityMap } =\n    useCatalogStore();\n\n  const acId = apiCatalogId || currentApiCatalogId;\n\n  const setErrorState = useCallback((e) => {\n    setLoading(false);\n    setError(e);\n  }, []);\n\n  const setSuccessState = useCallback((response) => {\n    setError(undefined);\n    setLoading(false);\n    setData(response);\n  }, []);\n\n  const cachedData = useMemo(() => {\n    if (!entityName) {\n      return null;\n    }\n    let entityNameKey = entityName?.toLowerCase() || '';\n    if (compareSanitizedName) {\n      entityNameKey = getSanitizedName(entityName).toLowerCase();\n    }\n    if (promotedEntityMap?.[acId]?.[productId]?.[entityNameKey]) {\n      return promotedEntityMap[acId][productId][entityNameKey];\n    }\n    return null;\n  }, [acId, productId, entityName, promotedEntityMap, compareSanitizedName]);\n\n  const [\n    {\n      data: promotedEntity,\n      loading: promotedEntityLoading,\n      error: promotedEntityError\n    }\n  ] = useAxiosGet(\n    ConfigService.integrationV1ApiUrl,\n    `apicatalog/${acId}/promotedMethodEntities/${entityName}/product/${productId}?compareSanitizedName=${compareSanitizedName}`,\n    {},\n    !!!acId || !!!productId || !!!entityName || !!cachedData,\n    false\n  );\n\n  useEffect(() => {\n    let isMounted = true;\n\n    if (entityName) {\n      let entityNameKey = entityName.toLowerCase();\n      let promotedEntityName = promotedEntity?.entityName?.toLowerCase();\n      if (compareSanitizedName) {\n        entityNameKey = getSanitizedName(entityName).toLowerCase();\n        if (promotedEntityName) {\n          promotedEntityName = getSanitizedName(promotedEntityName);\n        }\n      }\n      if (cachedData) {\n        setSuccessState(cachedData);\n        return () => {\n          isMounted = false;\n        };\n      }\n\n      if (promotedEntity && promotedEntityName === entityNameKey) {\n        if (isMounted) {\n          const updatedPromotedEntityMap = { ...promotedEntityMap };\n          if (updatedPromotedEntityMap[acId]) {\n            if (updatedPromotedEntityMap[acId][productId]) {\n              if (updatedPromotedEntityMap[acId][productId][entityNameKey]) {\n                updatedPromotedEntityMap[acId][productId][entityNameKey] =\n                  promotedEntity;\n              } else {\n                updatedPromotedEntityMap[acId][productId] = {\n                  ...updatedPromotedEntityMap[acId][productId],\n                  [entityNameKey]: promotedEntity\n                };\n              }\n            } else {\n              updatedPromotedEntityMap[acId][productId] = {\n                [entityNameKey]: promotedEntity\n              };\n            }\n          } else {\n            updatedPromotedEntityMap[acId] = {\n              [productId]: { [entityNameKey]: promotedEntity }\n            };\n          }\n\n          setPromotedEntityMap(updatedPromotedEntityMap);\n          setSuccessState(\n            updatedPromotedEntityMap[acId][productId][entityNameKey]\n          );\n        }\n      }\n    }\n    if (promotedEntityError) {\n      setErrorState();\n    }\n  }, [\n    promotedEntity,\n    acId,\n    productId,\n    entityName,\n    promotedEntityMap,\n    setSuccessState,\n    setErrorState,\n    promotedEntityError,\n    setPromotedEntityMap,\n    cachedData,\n    compareSanitizedName\n  ]);\n\n  return {\n    data,\n    loading: promotedEntityLoading || loading,\n    error\n  };\n};\n"],"mappings":"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"}