mirror of
https://github.com/eigent-ai/eigent.git
synced 2026-04-30 20:50:02 +00:00
Initial commit of eigent-main
This commit is contained in:
commit
723df5a03e
1144 changed files with 103478 additions and 0 deletions
110
package/@stackframe/react/dist/esm/components-page/team-invitation.js
vendored
Normal file
110
package/@stackframe/react/dist/esm/components-page/team-invitation.js
vendored
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
"use client";
|
||||
"use client";
|
||||
|
||||
// src/components-page/team-invitation.tsx
|
||||
import { KnownErrors } from "@stackframe/stack-shared";
|
||||
import { cacheFunction } from "@stackframe/stack-shared/dist/utils/caches";
|
||||
import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
|
||||
import { Typography } from "@stackframe/stack-ui";
|
||||
import React from "react";
|
||||
import { MessageCard, useStackApp, useUser } from "..";
|
||||
import { PredefinedMessageCard } from "../components/message-cards/predefined-message-card";
|
||||
import { useTranslation } from "../lib/translations";
|
||||
import { jsx, jsxs } from "react/jsx-runtime";
|
||||
var cachedVerifyInvitation = cacheFunction(async (stackApp, code) => {
|
||||
return await stackApp.verifyTeamInvitationCode(code);
|
||||
});
|
||||
var cachedGetInvitationDetails = cacheFunction(async (stackApp, code) => {
|
||||
return await stackApp.getTeamInvitationDetails(code);
|
||||
});
|
||||
function TeamInvitationInner(props) {
|
||||
const { t } = useTranslation();
|
||||
const stackApp = useStackApp();
|
||||
const [success, setSuccess] = React.useState(false);
|
||||
const [errorMessage, setErrorMessage] = React.useState(null);
|
||||
const details = React.use(cachedGetInvitationDetails(stackApp, props.searchParams.code || ""));
|
||||
if (errorMessage || details.status === "error") {
|
||||
return /* @__PURE__ */ jsx(PredefinedMessageCard, { type: "unknownError", fullPage: props.fullPage });
|
||||
}
|
||||
if (success) {
|
||||
return /* @__PURE__ */ jsx(
|
||||
MessageCard,
|
||||
{
|
||||
title: t("Team invitation"),
|
||||
fullPage: props.fullPage,
|
||||
primaryButtonText: "Go home",
|
||||
primaryAction: () => stackApp.redirectToHome(),
|
||||
children: /* @__PURE__ */ jsxs(Typography, { children: [
|
||||
"You have successfully joined ",
|
||||
details.data.teamDisplayName
|
||||
] })
|
||||
}
|
||||
);
|
||||
}
|
||||
return /* @__PURE__ */ jsx(
|
||||
MessageCard,
|
||||
{
|
||||
title: t("Team invitation"),
|
||||
fullPage: props.fullPage,
|
||||
primaryButtonText: t("Join"),
|
||||
primaryAction: () => runAsynchronouslyWithAlert(async () => {
|
||||
const result = await stackApp.acceptTeamInvitation(props.searchParams.code || "");
|
||||
if (result.status === "error") {
|
||||
setErrorMessage(result.error.message);
|
||||
} else {
|
||||
setSuccess(true);
|
||||
}
|
||||
}),
|
||||
secondaryButtonText: t("Ignore"),
|
||||
secondaryAction: () => stackApp.redirectToHome(),
|
||||
children: /* @__PURE__ */ jsxs(Typography, { children: [
|
||||
"You are invited to join ",
|
||||
details.data.teamDisplayName
|
||||
] })
|
||||
}
|
||||
);
|
||||
}
|
||||
function TeamInvitation({ fullPage = false, searchParams }) {
|
||||
const { t } = useTranslation();
|
||||
const user = useUser();
|
||||
const stackApp = useStackApp();
|
||||
const invalidJsx = /* @__PURE__ */ jsx(MessageCard, { title: t("Invalid Team Invitation Link"), fullPage, children: /* @__PURE__ */ jsx(Typography, { children: t("Please double check if you have the correct team invitation link.") }) });
|
||||
const expiredJsx = /* @__PURE__ */ jsx(MessageCard, { title: t("Expired Team Invitation Link"), fullPage, children: /* @__PURE__ */ jsx(Typography, { children: t("Your team invitation link has expired. Please request a new team invitation link ") }) });
|
||||
const usedJsx = /* @__PURE__ */ jsx(MessageCard, { title: t("Used Team Invitation Link"), fullPage, children: /* @__PURE__ */ jsx(Typography, { children: t("This team invitation link has already been used.") }) });
|
||||
const code = searchParams.code;
|
||||
if (!code) {
|
||||
return invalidJsx;
|
||||
}
|
||||
if (!user) {
|
||||
return /* @__PURE__ */ jsx(
|
||||
MessageCard,
|
||||
{
|
||||
title: t("Team invitation"),
|
||||
fullPage,
|
||||
primaryButtonText: t("Sign in"),
|
||||
primaryAction: () => stackApp.redirectToSignIn(),
|
||||
secondaryButtonText: t("Cancel"),
|
||||
secondaryAction: () => stackApp.redirectToHome(),
|
||||
children: /* @__PURE__ */ jsx(Typography, { children: t("Sign in or create an account to join the team.") })
|
||||
}
|
||||
);
|
||||
}
|
||||
const verificationResult = React.use(cachedVerifyInvitation(stackApp, searchParams.code || ""));
|
||||
if (verificationResult.status === "error") {
|
||||
const error = verificationResult.error;
|
||||
if (KnownErrors.VerificationCodeNotFound.isInstance(error)) {
|
||||
return invalidJsx;
|
||||
} else if (KnownErrors.VerificationCodeExpired.isInstance(error)) {
|
||||
return expiredJsx;
|
||||
} else if (KnownErrors.VerificationCodeAlreadyUsed.isInstance(error)) {
|
||||
return usedJsx;
|
||||
} else {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
return /* @__PURE__ */ jsx(TeamInvitationInner, { fullPage, searchParams });
|
||||
}
|
||||
export {
|
||||
TeamInvitation
|
||||
};
|
||||
//# sourceMappingURL=team-invitation.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue