{"version":3,"file":"DangerZoneSection.mjs","sources":["../../../../../../../../web/src/adminPortal/memberManagement/DangerZoneSection.tsx"],"sourcesContent":["import { Member } from '@stytch/core/public';\nimport React, { useCallback } from 'react';\n\nimport { Button } from '../components/Button';\nimport { FlexBox } from '../components/FlexBox';\nimport { SettingsContainer } from '../components/SettingsContainer';\nimport { Typography } from '../components/Typography';\nimport { useRbac } from '../utils/useRbac';\nimport { useSelf } from '../utils/useSelf';\nimport { useMemberManagementRouterController } from './MemberManagementRouter';\nimport { getActionCopy, useMemberActivation } from './useMemberActivation';\n\nexport const DangerZoneSection = ({ member }: { member: Member }) => {\n  const { isSelf } = useSelf();\n  const { data: canCreateMemberPerm } = useRbac('stytch.member', 'create');\n  const { data: canDeleteMemberPerm } = useRbac('stytch.member', 'delete');\n\n  const { data: canDeleteSelfPerm } = useRbac('stytch.self', 'delete');\n\n  const canDelete = canDeleteMemberPerm || (canDeleteSelfPerm && isSelf(member.member_id));\n  const canCreate = canCreateMemberPerm;\n\n  const isMemberDeleted = member.status === 'deleted';\n  const canMemberBeReactivated = member.email_address_verified;\n\n  const canPerformAction = isMemberDeleted ? canCreate : canDelete;\n\n  const { openModal, modal } = useMemberActivation();\n  const actionCopy = getActionCopy({ status: member.status, isEmailVerified: member.email_address_verified });\n\n  const handleActionClick = useCallback(() => {\n    openModal(member);\n  }, [member, openModal]);\n\n  const { useBlockNavigation } = useMemberManagementRouterController();\n\n  return canPerformAction ? (\n    <SettingsContainer title=\"Danger zone\" useBlockNavigation={useBlockNavigation}>\n      <FlexBox flexDirection=\"column\" gap={2}>\n        {!isMemberDeleted || canMemberBeReactivated ? (\n          <>\n            {modal}\n            <Typography variant=\"body2\">{actionCopy.description}</Typography>\n            <Button compact variant=\"ghost\" warning onClick={handleActionClick}>\n              {actionCopy.action}\n            </Button>\n          </>\n        ) : (\n          <Typography variant=\"body2\">\n            The Member’s email address was not verified. You cannot reactivate an unverified Member.\n          </Typography>\n        )}\n      </FlexBox>\n    </SettingsContainer>\n  ) : null;\n};\n"],"names":["DangerZoneSection","member","isSelf","useSelf","data","canCreateMemberPerm","useRbac","canDeleteMemberPerm","canDeleteSelfPerm","canDelete","member_id","canCreate","isMemberDeleted","status","canMemberBeReactivated","email_address_verified","canPerformAction","openModal","modal","useMemberActivation","actionCopy","getActionCopy","isEmailVerified","handleActionClick","useCallback","useBlockNavigation","useMemberManagementRouterController","React","SettingsContainer","title","FlexBox","flexDirection","gap","Typography","variant","description","Button","compact","warning","onClick","action"],"mappings":";;;;;;;;;;;AAYO,MAAMA,mBAAAA,GAAoB,CAAC,EAAEC,MAAM,EAAsB,GAAA;IAC9D,MAAM,EAAEC,MAAM,EAAE,GAAGC,OAAAA,EAAAA;AACnB,IAAA,MAAM,EAAEC,IAAAA,EAAMC,mBAAmB,EAAE,GAAGC,QAAQ,eAAA,EAAiB,QAAA,CAAA;AAC/D,IAAA,MAAM,EAAEF,IAAAA,EAAMG,mBAAmB,EAAE,GAAGD,QAAQ,eAAA,EAAiB,QAAA,CAAA;AAE/D,IAAA,MAAM,EAAEF,IAAAA,EAAMI,iBAAiB,EAAE,GAAGF,QAAQ,aAAA,EAAe,QAAA,CAAA;AAE3D,IAAA,MAAMG,SAAAA,GAAYF,mBAAAA,IAAwBC,iBAAAA,IAAqBN,MAAAA,CAAOD,OAAOS,SAAS,CAAA;AACtF,IAAA,MAAMC,SAAAA,GAAYN,mBAAAA;IAElB,MAAMO,eAAAA,GAAkBX,MAAAA,CAAOY,MAAM,KAAK,SAAA;IAC1C,MAAMC,sBAAAA,GAAyBb,OAAOc,sBAAsB;IAE5D,MAAMC,gBAAAA,GAAmBJ,kBAAkBD,SAAAA,GAAYF,SAAAA;AAEvD,IAAA,MAAM,EAAEQ,SAAS,EAAEC,KAAK,EAAE,GAAGC,mBAAAA,EAAAA;AAC7B,IAAA,MAAMC,aAAaC,aAAAA,CAAc;AAAER,QAAAA,MAAAA,EAAQZ,OAAOY,MAAM;AAAES,QAAAA,eAAAA,EAAiBrB,OAAOc;AAAuB,KAAA,CAAA;AAEzG,IAAA,MAAMQ,oBAAoBC,CAAAA,CAAY,IAAA;QACpCP,SAAAA,CAAUhB,MAAAA,CAAAA;IACZ,CAAA,EAAG;AAACA,QAAAA,MAAAA;AAAQgB,QAAAA;AAAU,KAAA,CAAA;IAEtB,MAAM,EAAEQ,kBAAkB,EAAE,GAAGC,mCAAAA,EAAAA;AAE/B,IAAA,OAAOV,iCACLW,EAAA,CAAA,aAAA,CAACC,iBAAAA,EAAAA;QAAkBC,KAAAA,EAAM,aAAA;QAAcJ,kBAAAA,EAAoBA;qBACzDE,EAAA,CAAA,aAAA,CAACG,OAAAA,EAAAA;QAAQC,aAAAA,EAAc,QAAA;QAASC,GAAAA,EAAK;AAClC,KAAA,EAAA,CAACpB,eAAAA,IAAmBE,sBAAAA,iBACnBa,EAAA,CAAA,aAAA,CAAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EACGT,KAAAA,gBACDS,EAAA,CAAA,aAAA,CAACM,UAAAA,EAAAA;QAAWC,OAAAA,EAAQ;OAASd,UAAAA,CAAWe,WAAW,iBACnDR,EAAA,CAAA,aAAA,CAACS,MAAAA,EAAAA;QAAOC,OAAAA,EAAAA,IAAAA;QAAQH,OAAAA,EAAQ,OAAA;QAAQI,OAAAA,EAAAA,IAAAA;QAAQC,OAAAA,EAAShB;OAC9CH,UAAAA,CAAWoB,MAAM,mBAItBb,EAAA,CAAA,aAAA,CAACM,UAAAA,EAAAA;QAAWC,OAAAA,EAAQ;OAAQ,0FAAA,CAAA,CAAA,CAAA,GAMhC,IAAA;AACN;;;;"}