@baqhub/sdk-react
Version:
The official React SDK for the BAQ federated app platform.
58 lines (57 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildAccessors = buildAccessors;
exports.buildHelpers = buildHelpers;
exports.buildProxyStoreContext = buildProxyStoreContext;
const react_1 = require("react");
const storeHelpers_js_1 = require("./storeHelpers.js");
//
// Helpers.
//
function buildAccessors(entity, proxyEntity) {
return {
recordByKey: (0, storeHelpers_js_1.recordByKey)(entity, proxyEntity),
findRecordByKey: (0, storeHelpers_js_1.findRecordByKey)(entity, proxyEntity),
findRecordByQuery: (0, storeHelpers_js_1.findRecordByQuery)(entity, proxyEntity),
findEntityRecord: (0, storeHelpers_js_1.findEntityRecord)(entity, proxyEntity),
findStandingDecision: (0, storeHelpers_js_1.findStandingDecision)(entity),
};
}
function buildHelpers(store, accessors, proxyEntity) {
const { isAuthenticated, entity } = store;
const { discover, downloadBlob, versions, getStateSnapshot } = store;
const { updateRecords, uploadBlob, buildBlobUrl, onDisconnectRequest } = store;
const updateStanding = (0, storeHelpers_js_1.updateStandingDecision)(entity);
return {
isAuthenticated,
entity,
proxyEntity,
discover,
downloadBlob,
recordByVersion: (0, storeHelpers_js_1.recordByVersion)(versions),
recordByKey: accessors.recordByKey(getStateSnapshot),
findRecordByKey: accessors.findRecordByKey(getStateSnapshot),
findRecordByQuery: accessors.findRecordByQuery(getStateSnapshot),
findEntityRecord: accessors.findEntityRecord(getStateSnapshot),
findStandingDecision: accessors.findStandingDecision(getStateSnapshot),
updateStandingDecision: updateStanding(getStateSnapshot, updateRecords),
updateRecords,
uploadBlob,
buildBlobUrl,
onDisconnectRequest,
};
}
function buildProxyStoreContext() {
const ProxyStoreContext = (0, react_1.createContext)(undefined);
function useProxyStoreContext() {
const context = (0, react_1.useContext)(ProxyStoreContext);
if (!context) {
throw new Error("Store entity provider is required.");
}
return context;
}
return {
ProxyStoreContext,
useProxyStoreContext,
};
}