@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
66 lines (64 loc) • 3.06 kB
JavaScript
const require_contexts = require('../contexts.js');
const require_keep_previous_data = require('../query/keep-previous-data.js');
const require_use_clerk_query_client = require('../query/use-clerk-query-client.js');
const require_useQuery = require('../query/useQuery.js');
const require_useClearQueriesOnSignOut = require('./useClearQueriesOnSignOut.js');
const require_useOrganizationBase = require('./base/useOrganizationBase.js');
const require_useOrganizationEnterpriseConnections_shared = require('./useOrganizationEnterpriseConnections.shared.js');
let react = require("react");
//#region src/react/hooks/useOrganizationEnterpriseConnections.tsx
/**
* Enterprise connections for the active organization
*
* @internal
*/
function useOrganizationEnterpriseConnections(params = {}) {
const { keepPreviousData = true, enabled = true, withOrganizationAccountLinking = false } = params;
const clerk = require_contexts.useClerkInstanceContext();
const organization = require_useOrganizationBase.useOrganizationBase();
const [queryClient] = require_use_clerk_query_client.useClerkQueryClient();
const { queryKey, stableKey, authenticated } = require_useOrganizationEnterpriseConnections_shared.useOrganizationEnterpriseConnectionsCacheKeys({
organizationId: organization?.id ?? null,
withOrganizationAccountLinking
});
const queryEnabled = enabled && clerk.loaded && Boolean(organization);
require_useClearQueriesOnSignOut.useClearQueriesOnSignOut({
isSignedOut: organization === null,
authenticated,
stableKeys: stableKey
});
const query = require_useQuery.useClerkQuery({
queryKey,
queryFn: () => organization?.getEnterpriseConnections({ withOrganizationAccountLinking }),
enabled: queryEnabled,
placeholderData: require_keep_previous_data.defineKeepPreviousDataFn(keepPreviousData)
});
const revalidate = (0, react.useCallback)(() => queryClient.invalidateQueries({ queryKey: [stableKey] }), [queryClient, stableKey]);
const createEnterpriseConnection = (0, react.useCallback)(async (createParams) => {
const created = await organization?.createEnterpriseConnection(createParams);
await revalidate();
return created;
}, [organization, revalidate]);
const updateEnterpriseConnection = (0, react.useCallback)(async (enterpriseConnectionId, updateParams) => {
const updated = await organization?.updateEnterpriseConnection(enterpriseConnectionId, updateParams);
await revalidate();
return updated;
}, [organization, revalidate]);
const deleteEnterpriseConnection = (0, react.useCallback)(async (enterpriseConnectionId) => {
const deleted = await organization?.deleteEnterpriseConnection(enterpriseConnectionId);
await revalidate();
return deleted;
}, [organization, revalidate]);
return {
data: query.data,
error: query.error ?? null,
isLoading: query.isLoading,
isFetching: query.isFetching,
createEnterpriseConnection,
updateEnterpriseConnection,
deleteEnterpriseConnection,
revalidate
};
}
//#endregion
exports.useOrganizationEnterpriseConnections = useOrganizationEnterpriseConnections;