{"version":3,"file":"SetDefaultConnection.mjs","sources":["../../../../../../../../web/src/adminPortal/components/SetDefaultConnection.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\n\nimport { Modal } from '../components/Modal';\nimport { Typography } from '../components/Typography';\nimport { useToggleState } from '../shared/utils/useToggleState';\nimport { Connection } from '../utils/Connection';\nimport { useMutateOrganization } from '../utils/useMutateOrganization';\n\ninterface SetDefaultConnectionModalProps {\n  connectionName: string | undefined;\n  defaultConnectionName: string | undefined;\n  isOpen: boolean;\n  close: () => void;\n  confirm: () => Promise<void>;\n}\n\nexport const SetDefaultConfirmModal = ({\n  connectionName,\n  defaultConnectionName,\n  ...modalProps\n}: SetDefaultConnectionModalProps) => {\n  return (\n    <Modal {...modalProps} title={`Set ${connectionName || ''} as default?`} confirmButtonText=\"Set as default\">\n      <Typography>\n        This will be the default SSO connection used to automatically initiate authentication for your Members.\n      </Typography>\n      {defaultConnectionName && (\n        <Typography color=\"error\">This will replace {defaultConnectionName} as your default SSO connection.</Typography>\n      )}\n    </Modal>\n  );\n};\n\nexport const useMutateDefaultConnection = () => {\n  const { mutate } = useMutateOrganization();\n\n  const setDefault = async ({ connectionId, connectionName }: { connectionId: string; connectionName: string }) => {\n    try {\n      await mutate(\n        { sso_default_connection_id: connectionId },\n        { errorMessage: `Failed to set ${connectionName} as default connection` },\n      );\n    } catch {\n      // no-op; error toast is handled by `mutate` call above\n    }\n  };\n\n  return { setDefault };\n};\n\nexport const useSetDefaultConnection = ({ defaultConnectionName }: { defaultConnectionName: string | undefined }) => {\n  const [connection, setConnection] = useState<Pick<Connection, 'displayName' | 'id'>>();\n  const [cachedDefaultConnectionName, setCachedDefaultConnectionName] = useState<string | undefined>(\n    defaultConnectionName,\n  );\n  const { isOpen, open, close } = useToggleState();\n\n  const handleRequestSetDefault = useCallback(\n    (connection: Pick<Connection, 'displayName' | 'id'>) => {\n      setConnection(connection);\n      setCachedDefaultConnectionName(defaultConnectionName);\n      open();\n    },\n    [defaultConnectionName, open],\n  );\n\n  const { setDefault } = useMutateDefaultConnection();\n  const confirm = async () => {\n    if (connection) {\n      setDefault({ connectionId: connection.id, connectionName: connection.displayName });\n    }\n\n    return Promise.resolve();\n  };\n\n  return {\n    handleRequestSetDefault,\n    modalProps: {\n      connectionName: connection?.displayName,\n      defaultConnectionName: cachedDefaultConnectionName,\n      isOpen,\n      close,\n      confirm,\n    } satisfies SetDefaultConnectionModalProps,\n  };\n};\n"],"names":["SetDefaultConfirmModal","connectionName","defaultConnectionName","modalProps","React","Modal","title","confirmButtonText","Typography","color","useMutateDefaultConnection","mutate","useMutateOrganization","setDefault","connectionId","sso_default_connection_id","errorMessage","useSetDefaultConnection","connection","setConnection","useState","cachedDefaultConnectionName","setCachedDefaultConnectionName","isOpen","open","close","useToggleState","handleRequestSetDefault","useCallback","confirm","id","displayName","Promise","resolve"],"mappings":";;;;;;;AAgBO,MAAMA,yBAAyB,CAAC,EACrCC,cAAc,EACdC,qBAAqB,EACrB,GAAGC,UAAAA,EAC4B,GAAA;AAC/B,IAAA,qBACEC,EAAA,CAAA,aAAA,CAACC,KAAAA,EAAAA;AAAO,QAAA,GAAGF,UAAU;AAAEG,QAAAA,KAAAA,EAAO,CAAC,IAAI,EAAEL,cAAAA,IAAkB,EAAA,CAAG,YAAY,CAAC;QAAEM,iBAAAA,EAAkB;qBACzFH,EAAA,CAAA,aAAA,CAACI,UAAAA,EAAAA,IAAAA,EAAW,yGAAA,CAAA,EAGXN,qBAAAA,kBACCE,EAAA,CAAA,aAAA,CAACI,UAAAA,EAAAA;QAAWC,KAAAA,EAAM;AAAQ,KAAA,EAAA,oBAAA,EAAmBP,qBAAAA,EAAsB,kCAAA,CAAA,CAAA;AAI3E;MAEaQ,0BAAAA,GAA6B,IAAA;IACxC,MAAM,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,EAAAA;AAEnB,IAAA,MAAMC,aAAa,OAAO,EAAEC,YAAY,EAAEb,cAAc,EAAoD,GAAA;QAC1G,IAAI;AACF,YAAA,MAAMU,MAAAA,CACJ;gBAAEI,yBAAAA,EAA2BD;aAAa,EAC1C;AAAEE,gBAAAA,YAAAA,EAAc,CAAC,cAAc,EAAEf,cAAAA,CAAe,sBAAsB;AAAE,aAAA,CAAA;AAE5E,QAAA,CAAA,CAAE,OAAM;;AAER,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;AAAEY,QAAAA;AAAW,KAAA;AACtB;AAEO,MAAMI,uBAAAA,GAA0B,CAAC,EAAEf,qBAAqB,EAAiD,GAAA;IAC9G,MAAM,CAACgB,UAAAA,EAAYC,aAAAA,CAAc,GAAGC,CAAAA,EAAAA;AACpC,IAAA,MAAM,CAACC,2BAAAA,EAA6BC,8BAAAA,CAA+B,GAAGF,CAAAA,CACpElB,qBAAAA,CAAAA;AAEF,IAAA,MAAM,EAAEqB,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGC,cAAAA,EAAAA;IAEhC,MAAMC,uBAAAA,GAA0BC,EAC9B,CAACV,UAAAA,GAAAA;QACCC,aAAAA,CAAcD,UAAAA,CAAAA;QACdI,8BAAAA,CAA+BpB,qBAAAA,CAAAA;AAC/BsB,QAAAA,IAAAA,EAAAA;IACF,CAAA,EACA;AAACtB,QAAAA,qBAAAA;AAAuBsB,QAAAA;AAAK,KAAA,CAAA;IAG/B,MAAM,EAAEX,UAAU,EAAE,GAAGH,0BAAAA,EAAAA;AACvB,IAAA,MAAMmB,OAAAA,GAAU,UAAA;AACd,QAAA,IAAIX,UAAAA,EAAY;YACdL,UAAAA,CAAW;AAAEC,gBAAAA,YAAAA,EAAcI,WAAWY,EAAE;AAAE7B,gBAAAA,cAAAA,EAAgBiB,WAAWa;AAAY,aAAA,CAAA;AACnF,QAAA;AAEA,QAAA,OAAOC,QAAQC,OAAO,EAAA;AACxB,IAAA,CAAA;IAEA,OAAO;AACLN,QAAAA,uBAAAA;QACAxB,UAAAA,EAAY;AACVF,YAAAA,cAAAA,EAAgBiB,UAAAA,EAAYa,WAAAA;YAC5B7B,qBAAAA,EAAuBmB,2BAAAA;AACvBE,YAAAA,MAAAA;AACAE,YAAAA,KAAAA;AACAI,YAAAA;AACF;AACF,KAAA;AACF;;;;"}