{"version":3,"file":"useTransactionType.mjs","names":["useState","useEffect","useCallback","apiMutate","ConfigService","useTransactionStore","useTransactionType","t0","$","_c","t1","undefined","options","transactionTypeId","domainName","domainFieldType","domainFieldValue","resolvedId","setResolvedId","data","setData","loading","setLoading","error","setError","promise","setPromise","transactionTypesMap","setTransactionTypesMap","t2","Symbol","for","response","setSuccessState","t3","domainPromise","productV1ApiUrl","then","res","newId","catch","finally","t4","t5","t6","fetchPromise","res_0","transactionType","t7"],"sources":["../../src/hooks/useTransactionType.js"],"sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { ConfigService } from '../configService';\nimport { useTransactionStore } from '../stores/transactionStore';\n\nexport const useTransactionType = (options = {}) => {\n  const { transactionTypeId, domainName, domainFieldType, domainFieldValue } =\n    options;\n\n  const [resolvedId, setResolvedId] = useState(transactionTypeId || null);\n  const [data, setData] = useState(undefined);\n  const [loading, setLoading] = useState(true);\n  const [error, setError] = useState(undefined);\n  const [promise, setPromise] = useState(undefined);\n\n  const { transactionTypesMap, setTransactionTypesMap } = useTransactionStore();\n\n  const setSuccessState = useCallback((response) => {\n    setError(undefined);\n    setLoading(false);\n    setData(response);\n  }, []);\n\n  // ---------------------------------------------------------\n  // EFFECT 1:\n  // Resolve transactionTypeId if using domainName\n  // ---------------------------------------------------------\n  useEffect(() => {\n    if (transactionTypeId) {\n      setResolvedId(transactionTypeId);\n      return;\n    }\n\n    if (!domainName) return;\n\n    setLoading(true);\n\n    const domainPromise = apiMutate(\n      ConfigService.productV1ApiUrl,\n      `udpTransactionType/domain/${domainName}${\n        domainFieldType && domainFieldValue\n          ? `?domainFieldType=${domainFieldType}&domainFieldValue=${domainFieldValue}`\n          : ''\n      }`,\n      {}\n    );\n\n    domainPromise\n      .then((res) => {\n        const newId = res.data?.transactionTypeId;\n\n        if (newId) {\n          setResolvedId(newId);\n          setTransactionTypesMap({ [newId]: res.data });\n          setSuccessState(res.data);\n        } else {\n          setError('Transaction type not found for domain.');\n        }\n      })\n      .catch(setError)\n      .finally(() => setPromise(domainPromise));\n  }, [transactionTypeId, domainName, domainFieldType, domainFieldValue]);\n\n  // ---------------------------------------------------------\n  // EFFECT 2:\n  // Fetch transaction type once resolvedId is known\n  // ---------------------------------------------------------\n  useEffect(() => {\n    if (!resolvedId) return;\n\n    // Check cache first\n    if (transactionTypesMap[resolvedId]) {\n      setSuccessState(transactionTypesMap[resolvedId]);\n      return;\n    }\n\n    setLoading(true);\n\n    const fetchPromise = apiMutate(\n      ConfigService.productV1ApiUrl,\n      `udpTransactionType/${resolvedId}?withAssociationData=true`,\n      {}\n    );\n\n    fetchPromise\n      .then((res) => {\n        const transactionType = res.data;\n        setTransactionTypesMap({ [resolvedId]: transactionType });\n        setSuccessState(transactionType);\n      })\n      .catch(setError)\n      .finally(() => setPromise(fetchPromise));\n  }, [\n    resolvedId,\n    transactionTypesMap,\n    setTransactionTypesMap,\n    setSuccessState\n  ]);\n\n  return { data, loading, error, promise };\n};\n"],"mappings":"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"}