{"version":3,"file":"NodeListActions-B3Gjsyaa.cjs","sources":["../src/app/components/NodeListActions.jsx"],"sourcesContent":["import DJClientContext from '../providers/djclient';\nimport * as React from 'react';\nimport DeleteIcon from '../icons/DeleteIcon';\nimport EditIcon from '../icons/EditIcon';\nimport { Form, Formik } from 'formik';\nimport { useContext } from 'react';\nimport { displayMessageAfterSubmit } from '../../utils/form';\nimport Tooltip from './Tooltip';\n\nexport default function NodeListActions({ nodeName, iconSize = 20 }) {\n  const [deleted, setDeleted] = React.useState(false);\n\n  const djClient = useContext(DJClientContext).DataJunctionAPI;\n  const deleteNode = async (values, { setStatus }) => {\n    if (\n      !window.confirm('Deleting node ' + values.nodeName + '. Are you sure?')\n    ) {\n      return;\n    }\n    const { status, json } = await djClient.deactivate(values.nodeName);\n    if (status === 200 || status === 201 || status === 204) {\n      setStatus({\n        success: <>Successfully deleted node {values.nodeName}</>,\n      });\n      // Delay hiding component so success message is visible briefly\n      setTimeout(() => setDeleted(true), 1500);\n    } else {\n      setStatus({\n        failure: `${json.message}`,\n      });\n    }\n  };\n\n  const initialValues = {\n    nodeName: nodeName,\n  };\n\n  if (deleted) {\n    return null;\n  }\n\n  return (\n    <div\n      style={{ display: 'inline-flex', alignItems: 'center', gap: '0.25rem' }}\n    >\n      <Tooltip content=\"Edit node\">\n        <a href={`/nodes/${nodeName}/edit`} aria-label={`Edit ${nodeName}`}>\n          <EditIcon size={iconSize} />\n        </a>\n      </Tooltip>\n      <Formik initialValues={initialValues} onSubmit={deleteNode}>\n        {function Render({ status, setFieldValue }) {\n          return (\n            <Form\n              className=\"deleteNode\"\n              style={{ display: 'flex', alignItems: 'flex-start' }}\n            >\n              {displayMessageAfterSubmit(status)}\n              {\n                <>\n                  <Tooltip content=\"Delete node\">\n                    <button\n                      type=\"submit\"\n                      aria-label={`Delete ${nodeName}`}\n                      style={{\n                        marginLeft: 0,\n                        all: 'unset',\n                        color: '#005c72',\n                        cursor: 'pointer',\n                      }}\n                    >\n                      <DeleteIcon size={iconSize} />\n                    </button>\n                  </Tooltip>\n                </>\n              }\n            </Form>\n          );\n        }}\n      </Formik>\n    </div>\n  );\n}\n"],"names":["NodeListActions","nodeName","iconSize","deleted","setDeleted","React","djClient","useContext","DJClientContext","deleteNode","values","setStatus","status","json","jsxs","Fragment","initialValues","jsx","Tooltip","EditIcon","Formik","setFieldValue","Form","displayMessageAfterSubmit","DeleteIcon"],"mappings":"iYASA,SAAwBA,EAAgB,CAAE,SAAAC,EAAU,SAAAC,EAAW,IAAM,CACnE,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAM,SAAS,EAAK,EAE5CC,EAAWC,EAAAA,WAAWC,EAAAA,eAAe,EAAE,gBACvCC,EAAa,MAAOC,EAAQ,CAAE,UAAAC,KAAgB,CAClD,GACE,CAAC,OAAO,QAAQ,iBAAmBD,EAAO,SAAW,iBAAiB,EAEtE,OAEF,KAAM,CAAE,OAAAE,EAAQ,KAAAC,CAAA,EAAS,MAAMP,EAAS,WAAWI,EAAO,QAAQ,EAC9DE,IAAW,KAAOA,IAAW,KAAOA,IAAW,KACjDD,EAAU,CACR,QAASG,EAAAA,KAAAC,WAAA,CAAE,SAAA,CAAA,6BAA2BL,EAAO,QAAA,CAAA,CAAS,CAAA,CACvD,EAED,WAAW,IAAMN,EAAW,EAAI,EAAG,IAAI,GAEvCO,EAAU,CACR,QAAS,GAAGE,EAAK,OAAO,EAAA,CACzB,CAEL,EAEMG,EAAgB,CACpB,SAAAf,CAAA,EAGF,OAAIE,EACK,KAIPW,EAAAA,KAAC,MAAA,CACC,MAAO,CAAE,QAAS,cAAe,WAAY,SAAU,IAAK,SAAA,EAE5D,SAAA,CAAAG,EAAAA,IAACC,EAAAA,SAAQ,QAAQ,YACf,eAAC,IAAA,CAAE,KAAM,UAAUjB,CAAQ,QAAS,aAAY,QAAQA,CAAQ,GAC9D,SAAAgB,EAAAA,IAACE,EAAAA,UAAS,KAAMjB,EAAU,EAC5B,CAAA,CACF,EACAe,EAAAA,IAACG,EAAAA,OAAA,CAAO,cAAAJ,EAA8B,SAAUP,EAC7C,kBAAgB,CAAE,OAAAG,EAAQ,cAAAS,CAAA,EAAiB,CAC1C,OACEP,EAAAA,KAACQ,EAAAA,KAAA,CACC,UAAU,aACV,MAAO,CAAE,QAAS,OAAQ,WAAY,YAAA,EAErC,SAAA,CAAAC,EAAAA,0BAA0BX,CAAM,EAE/BK,MAAAF,EAAAA,SAAA,CACE,SAAAE,EAAAA,IAACC,EAAAA,QAAA,CAAQ,QAAQ,cACf,SAAAD,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,aAAY,UAAUhB,CAAQ,GAC9B,MAAO,CACL,WAAY,EACZ,IAAK,QACL,MAAO,UACP,OAAQ,SAAA,EAGV,SAAAgB,EAAAA,IAACO,EAAAA,WAAA,CAAW,KAAMtB,CAAA,CAAU,CAAA,CAAA,EAEhC,CAAA,CACF,CAAA,CAAA,CAAA,CAIR,CAAA,CACF,CAAA,CAAA,CAAA,CAGN"}