{"version":3,"file":"DeleteConnection.mjs","sources":["../../../../../../../../web/src/adminPortal/components/DeleteConnection.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\n\nimport { Modal, useModalState } from '../components/Modal';\nimport { Typography } from '../components/Typography';\nimport { Connection } from '../utils/Connection';\nimport { ConnectionType } from '../utils/ConnectionType';\nimport { useDeleteSsoConnection } from '../utils/useMutateSsoConnection';\n\ninterface DeleteConnectionModalProps {\n  connectionName: string | undefined;\n  connectionType: ConnectionType | undefined;\n  isOpen: boolean;\n  close: () => void;\n  confirm: () => Promise<void>;\n}\n\nexport const DeleteConfirmModal = ({ connectionName, connectionType, ...modalProps }: DeleteConnectionModalProps) => {\n  return (\n    <Modal {...modalProps} title={`Delete ${connectionName || 'connection'}?`} confirmButtonText=\"Delete\" warning>\n      <Typography>\n        {connectionType === 'external'\n          ? 'Once deleted, the SSO connection will be removed. Any members assigned automatic roles via this connection, as well as members allowed to JIT provision via this SSO connection, will lose access immediately.'\n          : 'Once deleted, the SSO connection cannot be restored. Any members assigned automatic roles via this connection, as well as members allowed to JIT provision via this SSO connection, will lose access immediately.'}\n      </Typography>\n    </Modal>\n  );\n};\n\nconst useMutateDeleteConnection = () => {\n  const { mutate } = useDeleteSsoConnection();\n\n  const deleteConnection = ({ connectionId }: { connectionId: string }) => mutate({ connection_id: connectionId });\n\n  return { deleteConnection };\n};\n\nexport const useDeleteConnection = ({ onConfirm }: { onConfirm?: () => void } = {}) => {\n  const [connection, setConnection] = useState<Pick<Connection, 'connectionType' | 'displayName' | 'id'>>();\n\n  const { deleteConnection } = useMutateDeleteConnection();\n  const handleConfirm = async () => {\n    if (connection) {\n      try {\n        await deleteConnection({ connectionId: connection.id });\n      } catch {\n        // Throw a new error to provide specific user-facing verbiage\n        throw new Error(`Failed to delete ${connection.displayName}`);\n      }\n      onConfirm?.();\n    }\n  };\n  const { close, confirm, isOpen, open } = useModalState(handleConfirm);\n\n  const handleRequestDelete = useCallback(\n    (connection: Pick<Connection, 'connectionType' | 'displayName' | 'id'>) => {\n      setConnection(connection);\n      open();\n    },\n    [open],\n  );\n\n  return {\n    handleRequestDelete,\n    modalProps: {\n      connectionName: connection?.displayName,\n      connectionType: connection?.connectionType,\n      isOpen,\n      close,\n      confirm,\n    } satisfies DeleteConnectionModalProps,\n  };\n};\n"],"names":["DeleteConfirmModal","connectionName","connectionType","modalProps","React","Modal","title","confirmButtonText","warning","Typography","useMutateDeleteConnection","mutate","useDeleteSsoConnection","deleteConnection","connectionId","connection_id","useDeleteConnection","onConfirm","connection","setConnection","useState","handleConfirm","id","Error","displayName","close","confirm","isOpen","open","useModalState","handleRequestDelete","useCallback"],"mappings":";;;;;;;AAgBO,MAAMA,qBAAqB,CAAC,EAAEC,cAAc,EAAEC,cAAc,EAAE,GAAGC,UAAAA,EAAwC,GAAA;AAC9G,IAAA,qBACEC,EAAA,CAAA,aAAA,CAACC,KAAAA,EAAAA;AAAO,QAAA,GAAGF,UAAU;AAAEG,QAAAA,KAAAA,EAAO,CAAC,OAAO,EAAEL,cAAAA,IAAkB,YAAA,CAAa,CAAC,CAAC;QAAEM,iBAAAA,EAAkB,QAAA;QAASC,OAAAA,EAAAA;qBACpGJ,EAAA,CAAA,aAAA,CAACK,UAAAA,EAAAA,IAAAA,EACEP,cAAAA,KAAmB,UAAA,GAChB,gNAAA,GACA,mNAAA,CAAA,CAAA;AAIZ;AAEA,MAAMQ,yBAAAA,GAA4B,IAAA;IAChC,MAAM,EAAEC,MAAM,EAAE,GAAGC,sBAAAA,EAAAA;AAEnB,IAAA,MAAMC,mBAAmB,CAAC,EAAEC,YAAY,EAA4B,GAAKH,MAAAA,CAAO;YAAEI,aAAAA,EAAeD;AAAa,SAAA,CAAA;IAE9G,OAAO;AAAED,QAAAA;AAAiB,KAAA;AAC5B,CAAA;AAEO,MAAMG,sBAAsB,CAAC,EAAEC,SAAS,EAA8B,GAAG,EAAE,GAAA;IAChF,MAAM,CAACC,UAAAA,EAAYC,aAAAA,CAAc,GAAGC,CAAAA,EAAAA;IAEpC,MAAM,EAAEP,gBAAgB,EAAE,GAAGH,yBAAAA,EAAAA;AAC7B,IAAA,MAAMW,aAAAA,GAAgB,UAAA;AACpB,QAAA,IAAIH,UAAAA,EAAY;YACd,IAAI;AACF,gBAAA,MAAML,gBAAAA,CAAiB;AAAEC,oBAAAA,YAAAA,EAAcI,WAAWI;AAAG,iBAAA,CAAA;AACvD,YAAA,CAAA,CAAE,OAAM;;AAEN,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,iBAAiB,EAAEL,UAAAA,CAAWM,WAAW,CAAA,CAAE,CAAA;AAC9D,YAAA;AACAP,YAAAA,SAAAA,IAAAA;AACF,QAAA;AACF,IAAA,CAAA;IACA,MAAM,EAAEQ,KAAK,EAAEC,OAAO,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGC,aAAAA,CAAcR,aAAAA,CAAAA;IAEvD,MAAMS,mBAAAA,GAAsBC,EAC1B,CAACb,UAAAA,GAAAA;QACCC,aAAAA,CAAcD,UAAAA,CAAAA;AACdU,QAAAA,IAAAA,EAAAA;IACF,CAAA,EACA;AAACA,QAAAA;AAAK,KAAA,CAAA;IAGR,OAAO;AACLE,QAAAA,mBAAAA;QACA3B,UAAAA,EAAY;AACVF,YAAAA,cAAAA,EAAgBiB,UAAAA,EAAYM,WAAAA;AAC5BtB,YAAAA,cAAAA,EAAgBgB,UAAAA,EAAYhB,cAAAA;AAC5ByB,YAAAA,MAAAA;AACAF,YAAAA,KAAAA;AACAC,YAAAA;AACF;AACF,KAAA;AACF;;;;"}