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

171 lines (170 loc) 4.87 kB
import * as p from "../../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 { Direction as S, SortByType as d } from "@sage-bionetworks/synapse-types"; import "../../utils/functions/EntityTypeUtils.js"; import "../../utils/SynapseConstants.js"; import { isEmpty as g } from "lodash-es"; import "@sage-bionetworks/synapse-client/util/synapseClientFetch"; import "../../utils/PermissionLevelToAccessType.js"; import { useCallback as f } from "react"; import { useSynapseContext as a } from "../../utils/context/SynapseContext.js"; import "use-deep-compare-effect"; import { useQueryClient as m, useInfiniteQuery as Q, useQuery as l, useMutation as b } from "@tanstack/react-query"; import "@tanstack/query-core"; import "lodash-es/isEmpty"; import "lodash-es/isEqual"; import "lodash-es/xorWith"; import "@mui/material"; import "@sage-bionetworks/synapse-client"; import "../../utils/types/IsType.js"; import "react/jsx-runtime"; 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 '../../style/components/_spinner.css';/* empty css */ import "react-router"; function Z(e, t) { const { accessToken: i, keyFactory: s } = a(); return l({ ...t, queryKey: s.getSubscribersQueryKey( e.objectId, e.objectType ), queryFn: () => p.getSubscribers(i, e) }); } function K(e, t, i) { const { accessToken: s, keyFactory: o } = a(), r = async () => { const n = { objectType: t, idList: [e], sortByType: d.OBJECT_ID, sortDirection: S.ASC }, u = await p.postSubscriptionList( s, n ); return g(u.results) ? null : u.results[0]; }; return l({ ...i, queryKey: o.getSubscriptionQueryKey(e, t), queryFn: r }); } function $(e, t, i) { const { accessToken: s, keyFactory: o } = a(), r = m(); return Q({ ...t, queryKey: i ?? o.getAllSubscriptionsQueryKey(e), queryFn: async (n) => { const u = n.pageParam, c = await p.getAllSubscriptions( s, 10, u, e ); return c.results.forEach((y) => { r.setQueryData( o.getSubscriptionQueryKey( y.objectId, y.objectType ), y ); }), c; }, initialPageParam: void 0, getNextPageParam: (n, u) => { const c = u.flatMap( (y) => y.results ).length; if (n.totalNumberOfResults > c) return c; } }); } function q(e) { const t = m(), { accessToken: i, keyFactory: s } = a(); return b({ ...e, mutationFn: (o) => p.postSubscription(i, o), onSuccess: async (o, r, n) => { await Promise.all([ t.invalidateQueries({ queryKey: s.getAllSubscriptionsQueryKey() }), t.invalidateQueries({ queryKey: s.getSubscriptionQueryKey( r.objectId, r.objectType ) }), t.invalidateQueries({ queryKey: s.getSubscribersQueryKey( r.objectId, r.objectType ) }) ]), e?.onSuccess && await e.onSuccess(o, r, n); } }); } function P(e) { const t = m(), { accessToken: i, keyFactory: s } = a(); return b({ ...e, mutationFn: (o) => p.deleteSubscription( i, o.subscriptionId ), onSuccess: async (o, r, n) => { await Promise.all([ t.invalidateQueries({ queryKey: s.getAllSubscriptionsQueryKey() }), t.invalidateQueries({ queryKey: s.getSubscriptionQueryKey( r.objectId, r.objectType ) }), t.invalidateQueries({ queryKey: s.getSubscribersQueryKey( r.objectId, r.objectType ) }) ]), e?.onSuccess && await e.onSuccess(o, r, n); } }); } const ee = (e, t) => { const { data: i, isLoading: s } = K( e, t ), { mutate: o, isPending: r } = q(), { mutate: n, isPending: u } = P(), c = s || r || u, y = f(() => { i ? n(i) : o({ objectId: e, objectType: t }); }, [n, e, t, o, i]); return { isLoading: c, subscription: i, toggleSubscribed: y, isSubscribed: !!i }; }; export { P as useDeleteSubscription, $ as useGetAllSubscriptions, Z as useGetSubscribers, K as useGetSubscription, q as usePostSubscription, ee as useSubscription }; //# sourceMappingURL=useSubscription.js.map