synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
313 lines (312 loc) • 10.1 kB
JavaScript
import { jsx as e, Fragment as r, jsxs as s } from "react/jsx-runtime";
import "../../synapse-client/SynapseClient.js";
import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
import "@sage-bionetworks/synapse-client/util/SynapseClientError";
import "@sage-bionetworks/synapse-types";
import "../../utils/functions/EntityTypeUtils.js";
import "../../utils/SynapseConstants.js";
import { noop as Z } from "lodash-es";
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
import "@tanstack/react-query";
import "../../utils/PermissionLevelToAccessType.js";
import { useState as S, useRef as F, useCallback as q, useMemo as _ } from "react";
import { useSynapseContext as $ } from "../../utils/context/SynapseContext.js";
import "use-deep-compare-effect";
import { Button as T, Alert as R, Typography as w, Tooltip as ee, Box as te } from "@mui/material";
import "../../utils/hooks/useCookiePreferences.js";
import "../../utils/hooks/useSourceAppConfigs.js";
import "universal-cookie";
import "../../utils/AppUtils/session/ApplicationSessionContext.js";
import "../../utils/context/FullContextProvider.js";
import "../../utils/context/DocumentMetadataContext.js";
import { SynapseSpinner as x } from "../LoadingScreen/LoadingScreen.js";
import "@tanstack/query-core";
import "lodash-es/isEmpty";
import "lodash-es/isEqual";
import "lodash-es/xorWith";
import "react-router";
import "@sage-bionetworks/synapse-client";
import "../../utils/types/IsType.js";
import { useGetEntityChallenge as re } from "../../synapse-queries/entity/useGetEntityChallenge.js";
import { useAddMemberToTeam as ne, useGetMembershipStatus as oe } from "../../synapse-queries/team/useTeamMembers.js";
import { useGetUserSubmissionTeams as ie } from "../../synapse-queries/user/useGetUserTeams.js";
import { useGetCurrentUserProfile as ae } from "../../synapse-queries/user/useUserBundle.js";
import { DialogBase as se } from "../DialogBase.js";
import { SignInPrompt as me, SynapseErrorBoundary as ce } from "../error/ErrorBanner.js";
import { CreateChallengeTeam as le } from "./CreateChallengeTeam.js";
import { MembershipRequestForm as de } from "./MembershipRequestForm.js";
import { AcceptMembershipInvitationButton as Te, OpenMembershipInvitation as ue } from "./OpenMembershipInvitation.js";
import { RegistrationSuccessful as Ee } from "./RegistrationSuccessful.js";
import { SelectChallengeTeam as pe } from "./SelectChallengeTeam.js";
function Se(C) {
switch (C) {
case "SELECT_YOUR_CHALLENGE_TEAM":
return "Select Your Challenge Team";
case "ACCEPT_INVITATION":
return "Invitation to Join Team";
case "JOIN_REQUEST_FORM":
return "Request Team Membership";
case "JOIN_REQUEST_SENT":
return "Request Sent";
case "CREATE_NEW_TEAM":
return "Create Team";
case "REGISTRATION_SUCCESSFUL":
return "Registration Successful!";
}
}
function ot(C) {
const { projectId: P, isShowingModal: k = !1, onClose: u } = C, { isAuthenticated: c } = $(), [l, n] = S(
"SELECT_YOUR_CHALLENGE_TEAM"
/* SELECT_YOUR_CHALLENGE_TEAM */
), [t, E] = S(), [g, B] = S(!1), [N, A] = S(!1), b = F(null), O = F(null), { data: d, isLoading: Q } = ae({
enabled: c
}), { data: m, isLoading: Y } = re(P), {
mutateAsync: U,
isPending: h,
error: H
} = ne(), { data: M, error: V } = ie(m?.id, 1, 0, {
enabled: !!(c && m)
}), I = M && M.results.length > 0, {
data: o,
isLoading: L,
error: W
} = oe(t, String(d?.ownerId), {
enabled: c && !!t && !!d
}), v = q(async () => {
!t || !d || (await U({
teamId: t,
userId: d.ownerId
}), n(
"REGISTRATION_SUCCESSFUL"
/* REGISTRATION_SUCCESSFUL */
));
}, [U, n, t, d]), j = q(() => {
A(!1), E(void 0), u();
}, [u]), D = Q || Y, a = _(() => {
switch (l) {
case "SELECT_YOUR_CHALLENGE_TEAM":
case "JOIN_REQUEST_SENT":
case "REGISTRATION_SUCCESSFUL":
return /* @__PURE__ */ e(r, {});
default:
return /* @__PURE__ */ e(
T,
{
variant: "outlined",
onClick: () => {
n(
"SELECT_YOUR_CHALLENGE_TEAM"
/* SELECT_YOUR_CHALLENGE_TEAM */
), E(void 0);
},
children: "Back"
}
);
}
}, [l]), f = _(() => /* @__PURE__ */ e(
T,
{
variant: "contained",
onClick: () => {
u();
},
children: "Close"
}
), [u]), { actions: z = /* @__PURE__ */ e(r, {}), content: K = /* @__PURE__ */ e(r, {}) } = _(() => {
if (!c)
return {
content: /* @__PURE__ */ e(R, { severity: "error", children: /* @__PURE__ */ e(me, {}) })
};
if (I)
return {
content: /* @__PURE__ */ e(R, { severity: "error", children: /* @__PURE__ */ e(w, { children: "You are already a member of a registered submission team for this Challenge." }) })
};
switch (l) {
case "SELECT_YOUR_CHALLENGE_TEAM": {
let i = "Join Team", J = !1, p = Z, G = "";
return o && o.hasOpenInvitation ? (i = "View Invitation to Join Team", p = () => {
n(
"ACCEPT_INVITATION"
/* ACCEPT_INVITATION */
);
}) : o && o.hasOpenRequest ? (i = "Join Request Pending", J = !0, G = "You have already submitted a request to join this team.") : o && o.membershipApprovalRequired ? (i = "Request to Join Team", p = () => {
n(
"JOIN_REQUEST_FORM"
/* JOIN_REQUEST_FORM */
);
}) : o && o.canJoin && (i = "Join Team", p = () => {
v();
}), {
content: m && !I && /* @__PURE__ */ e(
pe,
{
challengeId: m.id,
onCreateTeam: () => n(
"CREATE_NEW_TEAM"
/* CREATE_NEW_TEAM */
),
selectedTeamId: t,
onSelectTeam: (X) => E(X)
}
),
actions: /* @__PURE__ */ s(r, { children: [
a,
/* @__PURE__ */ e(ee, { title: G, children: /* @__PURE__ */ e("span", { children: /* @__PURE__ */ e(
T,
{
onClick: p,
startIcon: h ? /* @__PURE__ */ e(x, {}) : void 0,
disabled: !t || L || h || J,
variant: "contained",
children: i
}
) }) })
] })
};
}
case "ACCEPT_INVITATION":
return {
content: /* @__PURE__ */ e(ue, { teamId: t }),
actions: /* @__PURE__ */ s(r, { children: [
a,
/* @__PURE__ */ e(
Te,
{
teamId: t,
onSuccess: () => {
n(
"REGISTRATION_SUCCESSFUL"
/* REGISTRATION_SUCCESSFUL */
);
}
}
)
] })
};
case "JOIN_REQUEST_FORM":
return {
content: /* @__PURE__ */ e(
de,
{
ref: b,
teamId: t,
onRequestSubmitted: () => {
n(
"JOIN_REQUEST_SENT"
/* JOIN_REQUEST_SENT */
);
}
}
),
actions: /* @__PURE__ */ s(r, { children: [
a,
/* @__PURE__ */ e(
T,
{
variant: "contained",
onClick: () => {
b?.current?.submit();
},
children: "Send Request"
}
)
] })
};
case "JOIN_REQUEST_SENT":
return {
content: /* @__PURE__ */ e(w, { variant: "body1", sx: { lineHeight: "20px" }, children: "Team Manager(s) have received your request. Check your Synapse email address for status of your request." }),
actions: /* @__PURE__ */ s(r, { children: [
a,
f
] })
};
case "REGISTRATION_SUCCESSFUL":
return {
content: /* @__PURE__ */ e(
Ee,
{
createdNewTeam: N,
teamId: t
}
),
actions: /* @__PURE__ */ s(r, { children: [
a,
f
] })
};
case "CREATE_NEW_TEAM":
return {
content: /* @__PURE__ */ e(
le,
{
ref: O,
challengeId: m?.id,
onCanSubmitChange: (i) => B(i),
onFinished: (i) => {
A(!0), E(i), n(
"REGISTRATION_SUCCESSFUL"
/* REGISTRATION_SUCCESSFUL */
);
}
}
),
actions: /* @__PURE__ */ s(r, { children: [
a,
/* @__PURE__ */ e(
T,
{
variant: "contained",
disabled: !g,
onClick: () => {
O?.current?.submit();
},
children: "Create Team"
}
)
] })
};
}
}, [
c,
I,
l,
t,
a,
f,
N,
o,
m,
h,
L,
v,
g
]), y = H?.message || W?.message || V?.message;
return /* @__PURE__ */ e(
se,
{
onCancel: j,
open: k,
actions: z,
title: Se(l),
content: /* @__PURE__ */ e(ce, { children: /* @__PURE__ */ e(
te,
{
sx: {
display: "flex",
flexDirection: "column",
gap: 1
},
children: D ? /* @__PURE__ */ e(x, { size: 40 }) : /* @__PURE__ */ s(r, { children: [
K,
y && /* @__PURE__ */ e(R, { severity: "error", children: y })
] })
}
) })
}
);
}
export {
ot as default
};
//# sourceMappingURL=ChallengeTeamWizard.js.map