UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

313 lines (312 loc) 10.1 kB
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