synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
39 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useSynapseContext = exports.SynapseContextConsumer = exports.SynapseContextProvider = exports.SynapseContext = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importStar)(require("react"));
var react_query_1 = require("react-query");
var defaultQueryClient = new react_query_1.QueryClient({
defaultOptions: {
queries: {
staleTime: 60 * 1000,
retry: false, // SynapseClient knows which queries to retry
},
},
});
/**
* This must be exported to use the context in class components.
*/
exports.SynapseContext = react_1.default.createContext(undefined);
/**
* Provides context necessary for most components in SRC
* @param param0
* @returns
*/
var SynapseContextProvider = function (_a) {
var children = _a.children, synapseContext = _a.synapseContext, queryClient = _a.queryClient;
return (react_1.default.createElement(exports.SynapseContext.Provider, { value: synapseContext },
react_1.default.createElement(react_query_1.QueryClientProvider, { client: queryClient !== null && queryClient !== void 0 ? queryClient : defaultQueryClient }, children)));
};
exports.SynapseContextProvider = SynapseContextProvider;
exports.SynapseContextConsumer = exports.SynapseContext.Consumer;
function useSynapseContext() {
var context = (0, react_1.useContext)(exports.SynapseContext);
if (context === undefined) {
throw new Error('useSynapseContext must be used within a SynapseContextProvider');
}
return context;
}
exports.useSynapseContext = useSynapseContext;
//# sourceMappingURL=SynapseContext.js.map