{"version":3,"sources":["../../../src/lib/logout-all-sessions-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Flex } from \"@radix-ui/themes\";\nimport { type ReactNode } from \"react\";\nimport { AlertDialog, Button } from \"./elements.js\";\nimport { getSessionsQueryKey, useRevokeAllSessions } from \"../api/endpoint.js\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { SaveButton } from \"./save-button.js\";\nimport { Translation } from \"./i18n/translation.js\";\n\ninterface LogoutAllSessionsDialogProps extends AlertDialog.RootProps {\n  children?: ReactNode;\n  currentSessionId: string;\n}\n\nexport function LogoutAllSessionsDialog({\n  open,\n  onOpenChange,\n  children,\n  currentSessionId,\n  ...props\n}: LogoutAllSessionsDialogProps) {\n  const client = useQueryClient();\n\n  const revokeAllSessions = useRevokeAllSessions();\n\n  const onSubmitForm = () => {\n    revokeAllSessions.mutate({ data: { currentSessionId } });\n  };\n\n  const handleDone = React.useCallback(() => {\n    onOpenChange?.(false);\n\n    client.invalidateQueries({\n      queryKey: getSessionsQueryKey(),\n    });\n  }, [client, onOpenChange]);\n\n  return (\n    <AlertDialog.Root open={open} onOpenChange={onOpenChange} {...props}>\n      <AlertDialog.Content maxWidth=\"480px\">\n        <AlertDialog.Title>\n          <Translation\n            defaultMessage=\"Sign out of all other devices?\"\n            id=\"x//BWg\"\n            description=\"Dialog title asking to confirm signing out of all other devices\"\n          />\n        </AlertDialog.Title>\n        <AlertDialog.Description>\n          <Translation\n            defaultMessage=\"You will be logged out of all other active sessions on other devices, except this one.\"\n            id=\"GftsX9\"\n            description=\"Description explaining all other sessions will be logged out\"\n          />\n        </AlertDialog.Description>\n\n        <Flex gap=\"3\" justify=\"end\" mt=\"5\" asChild>\n          <form\n            onSubmit={(event) => {\n              event.preventDefault();\n              onSubmitForm();\n            }}\n          >\n            <AlertDialog.Cancel>\n              <Button\n                variant=\"secondary\"\n                disabled={\n                  revokeAllSessions.isPending || revokeAllSessions.isSuccess\n                }\n              >\n                <Translation\n                  defaultMessage=\"Cancel\"\n                  id=\"Pnmy4H\"\n                  description=\"Button to cancel signing out of all devices\"\n                />\n              </Button>\n            </AlertDialog.Cancel>\n\n            <SaveButton\n              asChild\n              loading={revokeAllSessions.isPending}\n              done={revokeAllSessions.isSuccess}\n              onDone={handleDone}\n            >\n              <Button variant=\"destructive\" type=\"submit\">\n                <Translation\n                  defaultMessage=\"Sign out\"\n                  id=\"1Fb48o\"\n                  description=\"Button to confirm signing out of all other devices\"\n                />\n              </Button>\n            </SaveButton>\n          </form>\n        </Flex>\n      </AlertDialog.Content>\n    </AlertDialog.Root>\n  );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CU;AAzCV,YAAuB;AACvB,oBAAqB;AAErB,sBAAoC;AACpC,sBAA0D;AAC1D,yBAA+B;AAC/B,yBAA2B;AAC3B,yBAA4B;AAOrB,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAiC;AAC/B,QAAM,aAAS,mCAAe;AAE9B,QAAM,wBAAoB,sCAAqB;AAE/C,QAAM,eAAe,MAAM;AACzB,sBAAkB,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;AAAA,EACzD;AAEA,QAAM,aAAa,MAAM,YAAY,MAAM;AACzC,mBAAe,KAAK;AAEpB,WAAO,kBAAkB;AAAA,MACvB,cAAU,qCAAoB;AAAA,IAChC,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,YAAY,CAAC;AAEzB,SACE,4CAAC,4BAAY,MAAZ,EAAiB,MAAY,cAA6B,GAAG,OAC5D,uDAAC,4BAAY,SAAZ,EAAoB,UAAS,SAC5B;AAAA,gDAAC,4BAAY,OAAZ,EACC;AAAA,MAAC;AAAA;AAAA,QACC,gBAAe;AAAA,QACf,IAAG;AAAA,QACH,aAAY;AAAA;AAAA,IACd,GACF;AAAA,IACA,4CAAC,4BAAY,aAAZ,EACC;AAAA,MAAC;AAAA;AAAA,QACC,gBAAe;AAAA,QACf,IAAG;AAAA,QACH,aAAY;AAAA;AAAA,IACd,GACF;AAAA,IAEA,4CAAC,sBAAK,KAAI,KAAI,SAAQ,OAAM,IAAG,KAAI,SAAO,MACxC;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,CAAC,UAAU;AACnB,gBAAM,eAAe;AACrB,uBAAa;AAAA,QACf;AAAA,QAEA;AAAA,sDAAC,4BAAY,QAAZ,EACC;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,UACE,kBAAkB,aAAa,kBAAkB;AAAA,cAGnD;AAAA,gBAAC;AAAA;AAAA,kBACC,gBAAe;AAAA,kBACf,IAAG;AAAA,kBACH,aAAY;AAAA;AAAA,cACd;AAAA;AAAA,UACF,GACF;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC,SAAO;AAAA,cACP,SAAS,kBAAkB;AAAA,cAC3B,MAAM,kBAAkB;AAAA,cACxB,QAAQ;AAAA,cAER,sDAAC,0BAAO,SAAQ,eAAc,MAAK,UACjC;AAAA,gBAAC;AAAA;AAAA,kBACC,gBAAe;AAAA,kBACf,IAAG;AAAA,kBACH,aAAY;AAAA;AAAA,cACd,GACF;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF,GACF;AAAA,KACF,GACF;AAEJ;","names":[]}