datajunction-ui
Version:
DataJunction UI
1 lines • 4.4 kB
Source Map (JSON)
{"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"}