{"version":3,"file":"EditTransaction.mjs","names":["React","useState","useRef","useCallback","useMemo","useEffect","Divider","SideSheet","UdpTabPanel","UdpTabs","useTranslation","allowedExtensions","MAX_FILE_SIZE_MB","EditTransactionHeaderItem","FluentButton","WorkflowActions","TransactionTimeline","TransactionAttachments","TransactionNotes","TRANSACTION_TAB","TransactionUiActionTypeEnums","UdpTransactionCustomPage","EditTransactionDetailsFooterItem","ConfigService","useTransactionEngine","DynamicTransactionDomainForm","Attachments","apiMutate","useAxiosGet","useAxiosMutate","useSnackbar","TransactionNoteForm","FluentIcon","AddIcon","EditTransaction","props","transaction","initialTransaction","transactionTypeId","transactionIsClosed","openInnerSidesheetState","setOpenInnerSidesheetState","refreshGridData","closeSideSheet","setSidesheetLoading","setHasUnsavedChanges","domainName","attachmentType","setAttachmentType","currentAttachments","setCurrentAttachments","attachmentProgress","setAttachmentProgress","transactionAttachmentTypes","transactionAttachments","setTransactionAttachments","filePreview","setFilePreview","additionalPageParms","hideSaveChanges","catalogObject","t","selectedTab","setSelectedTab","setTransaction","refreshNotes","setRefreshNotes","data","noteTypes","loading","fetchNoteTypesLoading","productV1ApiUrl","getUiActionRenderParameters","transactionTypeStatusColorsMap","refetchTransaction","response","transactionId","method","status","transactionTimelineRef","current","refresh","formRef","transactionNoteFormRef","handleNoteFormSubmit","handleSubmit","handleNoteFormReset","form","reset","handleSaveSuccess","handleSaveChanges","submit","transactionAttachmentsData","fetchTransactionAttachmentsLoading","fetchTransactionAttachments","pageSize","filterElements","searchField","searchValue","searchOperator","enqueueSnackbar","getAttachments","pageList","error","console","message","defaultValue","variant","anchorOrigin","vertical","horizontal","tabNames","headerItemInfo","items","label","statusChip","udpTransactionUdpTransactionTypeStatus","name","currentRevisionNo","push","value","handleUploadFiles","length","Error","formData","FormData","forEach","file","append","transactionAttachmentTypeId","headers","attachmentTypeId","attachments","innerSidesheetList","open","workflowAction","closeSheet","workflowActions","title","children","buttonLabel","buttonOneDisabled","onSubmit","then","catch","notes","buttonTwoLabel","buttonTwoAction","businessObjectKey","transactionDetailPageId","Render_Transaction_Details_Page","pageId","map","headerItem","tabIndex","tabName","DETAILS","HISTORY","ATTACHMENTS","NOTES","item"],"sources":["../../../../../src/udp/pages/UdpTransactionsPage/sidesheets/EditTransaction.jsx"],"sourcesContent":["import React, {\n  useState,\n  useRef,\n  useCallback,\n  useMemo,\n  useEffect\n} from 'react';\n\nimport { Divider, SideSheet, UdpTabPanel } from '../../../../UI';\nimport { UdpTabs } from '../../../../UI/navigation/tabs/UdpTabs';\nimport { useTranslation } from 'react-i18next';\nimport {\n  allowedExtensions,\n  MAX_FILE_SIZE_MB\n} from '../../../../uploader/utils/allowedFileProperties';\n\nimport './EditTransaction.css';\nimport EditTransactionHeaderItem from './EditTransactionHeaderItem';\nimport { FluentButton } from '../../../../UI/inputs/buttons';\nimport WorkflowActions from './WorkflowActions';\nimport { TransactionTimeline } from '../components/transactionHistory/TransactionTimeline';\nimport { TransactionAttachments } from '../components/transactionAttachment/TransactionAttachments';\nimport { TransactionNotes } from '../components/transactionNote/TransactionNotes';\nimport { TRANSACTION_TAB } from './enum';\nimport { TransactionUiActionTypeEnums } from '../../../../enums';\nimport UdpTransactionCustomPage from '../components/UdpTransactionCustomPage';\nimport EditTransactionDetailsFooterItem from '../components/EditTransactionDetailsFooterItem';\nimport { ConfigService } from '../../../../configService';\nimport { useTransactionEngine } from '../../../../utilities/transactions/useTransactionEngine';\nimport DynamicTransactionDomainForm from '../components/DynamicTransactionDomainForm';\nimport { Attachments } from '../../../../uploader';\nimport { apiMutate, useAxiosGet, useAxiosMutate } from '../../../../utilities';\nimport { useSnackbar } from 'notistack';\nimport { TransactionNoteForm } from '../components/transactionNote/TransactionNoteForm';\nimport { FluentIcon } from '../../../../utilities/iconLibrary';\nimport { AddIcon } from '@fluentui/react-icons';\n\nconst EditTransaction = (props) => {\n  const {\n    transaction: initialTransaction,\n    transactionTypeId,\n    transactionIsClosed,\n    openInnerSidesheetState,\n    setOpenInnerSidesheetState,\n    refreshGridData,\n    closeSideSheet,\n    setSidesheetLoading,\n    setHasUnsavedChanges,\n    domainName,\n    attachmentType,\n    setAttachmentType,\n    currentAttachments,\n    setCurrentAttachments,\n    attachmentProgress,\n    setAttachmentProgress,\n    transactionAttachmentTypes,\n    transactionAttachments,\n    setTransactionAttachments,\n    filePreview,\n    setFilePreview,\n    additionalPageParms,\n    hideSaveChanges,\n    catalogObject\n  } = props;\n  const { t } = useTranslation();\n\n  const [selectedTab, setSelectedTab] = useState(0);\n  const [transaction, setTransaction] = useState(initialTransaction);\n  const [refreshNotes, setRefreshNotes] = useState(false);\n\n  const [{ data: noteTypes, loading: fetchNoteTypesLoading }] = useAxiosGet(\n    ConfigService.productV1ApiUrl,\n    `UdpNoteType`,\n    {}\n  );\n\n  const { getUiActionRenderParameters, transactionTypeStatusColorsMap } =\n    useTransactionEngine(transactionTypeId);\n\n  const refetchTransaction = useCallback(async () => {\n    setSidesheetLoading(true);\n    const response = await apiMutate(\n      ConfigService.productV1ApiUrl,\n      `udpTransaction/${initialTransaction?.transactionId}/full`,\n      {\n        method: 'get'\n      }\n    );\n    if (response?.status === 200) {\n      setTransaction(response.data);\n      transactionTimelineRef.current?.refresh();\n    }\n    setSidesheetLoading(false);\n  }, [initialTransaction?.transactionId, setSidesheetLoading]);\n\n  const formRef = useRef(null);\n  const transactionNoteFormRef = useRef(null);\n  const transactionTimelineRef = useRef();\n\n  const handleNoteFormSubmit = useCallback(() => {\n    transactionNoteFormRef.current?.handleSubmit?.();\n  }, []);\n\n  const handleNoteFormReset = useCallback(() => {\n    transactionNoteFormRef.current?.form?.reset?.();\n  }, []);\n\n  const handleSaveSuccess = useCallback(\n    (response) => {\n      refreshGridData();\n    },\n    [refreshGridData]\n  );\n\n  const handleSaveChanges = useCallback(async () => {\n    setSidesheetLoading(true);\n    await formRef.current?.form?.submit();\n    setSidesheetLoading(false);\n  }, [setSidesheetLoading, formRef]);\n\n  const [\n    {\n      data: transactionAttachmentsData,\n      loading: fetchTransactionAttachmentsLoading\n    },\n    fetchTransactionAttachments\n  ] = useAxiosMutate(\n    ConfigService.productV1ApiUrl,\n    `UdpTransactionAttachment/search`,\n    {\n      method: 'post',\n      data: {\n        pageSize: 50,\n        filterElements: [\n          {\n            searchField: 'TransactionId',\n            searchValue: transaction.transactionId,\n            searchOperator: '='\n          },\n          {\n            searchField: 'IsDeleted',\n            searchValue: 0,\n            searchOperator: '='\n          }\n        ]\n      }\n    }\n  );\n\n  const { enqueueSnackbar } = useSnackbar();\n\n  const getAttachments = useCallback(async () => {\n    try {\n      const response = await fetchTransactionAttachments();\n      setTransactionAttachments(response.data.pageList);\n      refetchTransaction();\n    } catch (error) {\n      console.error('Failed to fetch attachments:', error);\n      if (error?.message !== 'canceled') {\n        enqueueSnackbar(\n          t('transactions.sidesheet.attachmentFetchError', {\n            defaultValue:\n              'Attachment fetch failed: We encountered a system error. Please try again or contact support if the issue persists.'\n          }),\n          {\n            variant: 'error',\n            anchorOrigin: { vertical: 'top', horizontal: 'center' }\n          }\n        );\n      }\n    }\n  }, [\n    fetchTransactionAttachments,\n    enqueueSnackbar,\n    refetchTransaction,\n    setTransactionAttachments,\n    t\n  ]);\n\n  const tabNames = [\n    t('transactions.sidesheet.tabs.details', { defaultValue: 'Details' }),\n    t('transactions.sidesheet.tabs.history', { defaultValue: 'History' }),\n    t('transactions.sidesheet.tabs.attachments', {\n      defaultValue: 'Attachments'\n    }),\n    t('transactions.sidesheet.tabs.notes', { defaultValue: 'Notes' })\n  ];\n\n  const headerItemInfo = useMemo(() => {\n    const items = [\n      {\n        label: t('transactions.sidesheet.status', {\n          defaultValue: 'Status'\n        }),\n        statusChip: {\n          label: transaction.udpTransactionUdpTransactionTypeStatus?.name,\n          status:\n            transactionTypeStatusColorsMap[\n              transaction.udpTransactionUdpTransactionTypeStatus?.name\n            ] || 'default'\n        }\n      }\n    ];\n    if (transaction?.currentRevisionNo) {\n      items.push({\n        label: t('transactions.sidesheet.revision', {\n          defaultValue: 'Revision'\n        }),\n        value: `${transaction.currentRevisionNo}`\n      });\n    }\n    return items;\n  }, [transaction, transactionTypeStatusColorsMap, t]);\n\n  const handleUploadFiles = useCallback(async () => {\n    if (!currentAttachments.length) {\n      throw new Error('No files added for upload');\n    }\n    const formData = new FormData();\n    currentAttachments.forEach((file) => formData.append('files', file));\n    formData.append(\n      'attachmentTypeId',\n      attachmentType.transactionAttachmentTypeId\n    );\n\n    try {\n      setAttachmentProgress(true);\n      await apiMutate(\n        ConfigService.productV1ApiUrl,\n        `UdpTransactionAttachment/transaction/${transaction.transactionId}/upload`,\n        {\n          method: 'post',\n          headers: {\n            transactionId: transaction.transactionId,\n            attachmentTypeId: attachmentType.transactionAttachmentTypeId\n          },\n          data: formData\n        }\n      );\n\n      await getAttachments();\n      setCurrentAttachments([]);\n      setOpenInnerSidesheetState({ attachments: false });\n\n      enqueueSnackbar(\n        t('transactions.sidesheet.filesUploadSuccess', {\n          defaultValue: 'Files uploaded successfully'\n        }),\n        {\n          variant: 'success',\n          anchorOrigin: {\n            vertical: 'top',\n            horizontal: 'center'\n          }\n        }\n      );\n    } catch (error) {\n      enqueueSnackbar(\n        t('transactions.sidesheet.fileUploadError', {\n          defaultValue:\n            'File upload failed: We encountered a system error. Please try again or contact support if the issue persists.'\n        }),\n        {\n          variant: 'error',\n          anchorOrigin: {\n            vertical: 'top',\n            horizontal: 'center'\n          }\n        }\n      );\n      throw error;\n    } finally {\n      setAttachmentProgress(false);\n    }\n  }, [\n    attachmentType,\n    currentAttachments,\n    enqueueSnackbar,\n    getAttachments,\n    setOpenInnerSidesheetState,\n    transaction.transactionId,\n    setCurrentAttachments,\n    setAttachmentProgress,\n    t\n  ]);\n\n  const innerSidesheetList = useMemo(\n    () => [\n      {\n        open: openInnerSidesheetState.workflowAction,\n        closeSheet: () =>\n          setOpenInnerSidesheetState({ workflowActions: false }),\n        title: t('transactions.sidesheet.availableWorkflowActions', {\n          defaultValue: 'Available Workflow Actions'\n        }),\n        children: (\n          <WorkflowActions\n            transaction={transaction}\n            closeSideSheet={() => {\n              setOpenInnerSidesheetState({\n                workflowActions: false\n              });\n              refetchTransaction();\n            }}\n            refreshGridData={refreshGridData}\n          />\n        )\n      },\n      {\n        open: openInnerSidesheetState.attachments,\n        closeSheet: () => setOpenInnerSidesheetState({ attachments: false }),\n        title: t('transactions.sidesheet.addAttachment', {\n          defaultValue: 'Add Attachment'\n        }),\n        buttonLabel: t('common.save', { defaultValue: 'Save' }),\n        buttonOneDisabled: !attachmentType || currentAttachments.length <= 0,\n        onSubmit: () => {\n          handleUploadFiles()\n            .then(() => refreshGridData())\n            .catch((error) => console.error(error));\n        },\n        children: (\n          <Attachments\n            attachmentTypes={transactionAttachmentTypes}\n            attachmentType={attachmentType}\n            setAttachmentType={setAttachmentType}\n            attachmentProgress={attachmentProgress}\n            setAttachmentProgress={setAttachmentProgress}\n            currentAttachments={currentAttachments}\n            setCurrentAttachments={setCurrentAttachments}\n            transaction={transaction}\n            previousAttachments={transactionAttachments}\n            setPreviousAttachments={setTransactionAttachments}\n            MAX_FILE_SIZE_MB={MAX_FILE_SIZE_MB}\n            allowedExtensions={allowedExtensions}\n            filePreview={filePreview}\n            setFilePreview={setFilePreview}\n          />\n        )\n      },\n      {\n        open: openInnerSidesheetState.notes,\n        closeSheet: () => setOpenInnerSidesheetState({ notes: false }),\n        title: t('transactions.notes.addNote', {\n          defaultValue: 'Add Note'\n        }),\n        buttonLabel: t('transactions.notes.saveNote', {\n          defaultValue: 'Save note'\n        }),\n        buttonTwoLabel: t('common.clear', { defaultValue: 'Clear' }),\n        buttonTwoAction: handleNoteFormReset,\n        onSubmit: handleNoteFormSubmit,\n        children: (\n          <TransactionNoteForm\n            ref={transactionNoteFormRef}\n            businessObjectKey={transaction?.businessObjectKey}\n            closeSideSheet={() => {\n              setOpenInnerSidesheetState({ notes: false });\n              setRefreshNotes(true);\n            }}\n            noteTypes={noteTypes}\n            fetchNoteTypesLoading={fetchNoteTypesLoading}\n          />\n        )\n      }\n    ],\n    [\n      openInnerSidesheetState.workflowAction,\n      openInnerSidesheetState.attachments,\n      openInnerSidesheetState.notes,\n      transaction,\n      refreshGridData,\n      attachmentType,\n      currentAttachments,\n      transactionAttachmentTypes,\n      attachmentProgress,\n      transactionAttachments,\n      filePreview,\n      handleNoteFormReset,\n      handleNoteFormSubmit,\n      noteTypes,\n      fetchNoteTypesLoading,\n      setOpenInnerSidesheetState,\n      refetchTransaction,\n      handleUploadFiles,\n      setAttachmentType,\n      setCurrentAttachments,\n      setAttachmentProgress,\n      setTransactionAttachments,\n      setFilePreview,\n      t\n    ]\n  );\n\n  const transactionDetailPageId = useMemo(() => {\n    return getUiActionRenderParameters(\n      TransactionUiActionTypeEnums.Render_Transaction_Details_Page\n    )?.pageId;\n  }, [getUiActionRenderParameters]);\n\n  useEffect(() => {\n    (async () => {\n      if (!transactionAttachmentsData) {\n        getAttachments();\n      }\n    })();\n  }, [transactionAttachmentsData, getAttachments]);\n\n  return (\n    <>\n      <div className='edit-transaction-sidesheet'>\n        <div className={`edit-transaction-sidesheet-header 'is-sticky'`}>\n          <div className='edit-transaction-sidesheet-header-title'></div>\n          <div className='edit-transaction-sidesheet-header-content'>\n            <div className='edit-transaction-sidesheet-header-items'>\n              {headerItemInfo.map((headerItem) => {\n                return (\n                  <EditTransactionHeaderItem\n                    key={headerItem.label}\n                    label={headerItem.label}\n                    statusChip={headerItem.statusChip}\n                    value={headerItem.value}\n                  />\n                );\n              })}\n            </div>\n            <div className='edit-transaction-sidesheet-header-buttons'>\n              <FluentButton\n                color='primary'\n                onClick={() => {\n                  setOpenInnerSidesheetState({ attachments: true });\n                }}\n              >\n                <FluentIcon\n                  component={AddIcon}\n                  className='edit-transaction-header-button-icon'\n                  size='small'\n                />\n                {t('transactions.sidesheet.attachment', {\n                  defaultValue: 'Attachment'\n                })}\n              </FluentButton>\n              <FluentButton\n                color='primary'\n                onClick={() => {\n                  setOpenInnerSidesheetState({ notes: true });\n                }}\n              >\n                <FluentIcon\n                  component={AddIcon}\n                  className='edit-transaction-header-button-icon'\n                  size='small'\n                />\n                {t('transactions.notes.note', { defaultValue: 'Note' })}\n              </FluentButton>\n            </div>\n            <div className='divider'>\n              <Divider />\n            </div>\n            <div className='edit-transaction-sidesheet-tabs'>\n              <UdpTabs\n                value={selectedTab}\n                onChange={(value, tabIndex) => {\n                  setSelectedTab(tabIndex);\n                }}\n                tabList={tabNames.map((tabName) => ({ label: tabName }))}\n                buttonWidth={'100%'}\n              />\n            </div>\n          </div>\n          <div className='divider'>\n            <Divider />\n          </div>\n        </div>\n\n        <div className='edit-transaction-sidesheet-body'>\n          <div>\n            <UdpTabPanel value={selectedTab} index={TRANSACTION_TAB.DETAILS}>\n              {transactionDetailPageId ? (\n                <UdpTransactionCustomPage\n                  transactionTypeId={transactionTypeId}\n                  transactionUiActionType={\n                    TransactionUiActionTypeEnums.Render_Transaction_Details_Page\n                  }\n                  formRef={formRef}\n                  transaction={transaction}\n                  refetchTransaction={refetchTransaction}\n                  setHasUnsavedChanges={setHasUnsavedChanges}\n                  refreshGridData={refreshGridData}\n                  additionalPageParms={additionalPageParms}\n                  onSubmitSuccess={handleSaveSuccess}\n                />\n              ) : (\n                <DynamicTransactionDomainForm\n                  transaction={transaction}\n                  formRef={formRef}\n                  domainName={domainName}\n                  transactionTypeId={transactionTypeId}\n                  transactionUiActionType={\n                    TransactionUiActionTypeEnums.Render_Transaction_Details_Page\n                  }\n                  setHasUnsavedChanges={setHasUnsavedChanges}\n                  refetchTransaction={refetchTransaction}\n                  onSubmitSuccess={handleSaveSuccess}\n                  catalogObject={catalogObject}\n                />\n              )}\n            </UdpTabPanel>\n\n            <UdpTabPanel value={selectedTab} index={TRANSACTION_TAB.HISTORY}>\n              <TransactionTimeline\n                ref={transactionTimelineRef}\n                transactionId={transaction?.transactionId}\n              />\n            </UdpTabPanel>\n            <UdpTabPanel\n              value={selectedTab}\n              index={TRANSACTION_TAB.ATTACHMENTS}\n            >\n              <TransactionAttachments\n                transactionAttachments={transactionAttachmentsData}\n                isLoading={fetchTransactionAttachmentsLoading}\n              />\n            </UdpTabPanel>\n            <UdpTabPanel value={selectedTab} index={TRANSACTION_TAB.NOTES}>\n              <TransactionNotes\n                businessObjectKey={transaction?.businessObjectKey}\n                refreshNotes={refreshNotes}\n                setRefreshNotes={setRefreshNotes}\n                noteTypes={noteTypes}\n                fetchNoteTypeLoading={fetchNoteTypesLoading}\n              />\n            </UdpTabPanel>\n          </div>\n        </div>\n        {selectedTab == TRANSACTION_TAB.DETAILS && (\n          <div className='edit-transaction-sidesheet-footer'>\n            <EditTransactionDetailsFooterItem\n              transactionTypeId={transactionTypeId}\n              transactionIsClosed={transactionIsClosed}\n              handleOnCancel={closeSideSheet}\n              handleOnSaveChanges={handleSaveChanges}\n              hideSaveChanges={hideSaveChanges}\n            />\n          </div>\n        )}\n      </div>\n\n      {openInnerSidesheetState &&\n        // eslint-disable-next-line react-hooks/refs\n        innerSidesheetList.map((item) => {\n          return (\n            <SideSheet\n              key={item.title}\n              open={item.open}\n              width={600}\n              title={item.title}\n              onClose={item.closeSheet}\n              buttonLabel={item?.buttonLabel}\n              buttonOneDisabled={item?.buttonOneDisabled}\n              buttonTwoLabel={item?.buttonTwoLabel}\n              buttonTwoAction={item?.buttonTwoAction}\n              onSubmit={item?.onSubmit}\n              color='primary'\n            >\n              {item.children}\n            </SideSheet>\n          );\n        })}\n    </>\n  );\n};\n\nexport default EditTransaction;\n"],"mappings":"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"}