UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

152 lines (117 loc) 3.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.db = exports.OfflineOrganisationUnitDB = void 0; var _dexie = _interopRequireDefault(require("dexie")); var _lodash = require("lodash"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } const defaultCount = { orgUnits: { total: 0, page: 0 }, levels: { total: 0, page: 0 }, groups: { total: 0, page: 0 } }; class OfflineOrganisationUnitDB extends _dexie.default { constructor(name) { super(name !== null && name !== void 0 ? name : "ou"); _defineProperty(this, "organisationUnits", void 0); _defineProperty(this, "organisationUnitGroups", void 0); _defineProperty(this, "organisationUnitLevels", void 0); _defineProperty(this, "count", void 0); _defineProperty(this, "localStorageKey", "ou"); this.version(2).stores({ organisationUnits: "&id, displayName, parent.id, *organisationUnitGroups", organisationUnitGroups: "&id, displayName", organisationUnitLevels: "&id, displayName" }); this.getCount(); } getCount() { const count = localStorage.getItem(this.localStorageKey); if (count) { this.count = JSON.parse(count); } else { this.count = defaultCount; } } clearCount() { localStorage.setItem(this.localStorageKey, JSON.stringify(defaultCount)); } updateCount(_ref) { let { resource, key, value } = _ref; const updatedCount = this.count; (0, _lodash.set)(updatedCount, [resource, key], value); localStorage.setItem(this.localStorageKey, JSON.stringify(updatedCount)); } async addOrganisationUnits(organisationUnits) { return this.organisationUnits.bulkAdd(organisationUnits); } async clearOrgUnits() { return this.organisationUnits.clear(); } async addOrganisationUnitGroups(organisationUnitGroups) { return this.organisationUnitGroups.bulkAdd(organisationUnitGroups); } async clearOrgUnitGroups() { return this.organisationUnitGroups.clear(); } async addOrganisationUnitLevels(organisationUnitLevels) { return this.organisationUnitLevels.bulkAdd(organisationUnitLevels); } async clearOrgUnitLevels() { return this.organisationUnitLevels.clear(); } async hasOrganisationUnitLevels() { const { total, page } = this.count.orgUnits; if (total === 0) { return false; } return total === page; } async hasOrganisationUnitGroups() { const { total, page } = this.count.groups; if (total === 0) { return false; } return total === page; } async hasOrganisationUnits() { const { total, page } = this.count.orgUnits; if (total === 0) { return false; } return total === page; } async clear() { await this.organisationUnits.clear(); await this.organisationUnitLevels.clear(); await this.organisationUnitGroups.clear(); this.clearCount(); } } exports.OfflineOrganisationUnitDB = OfflineOrganisationUnitDB; const db = new OfflineOrganisationUnitDB(); exports.db = db;