UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

78 lines (77 loc) • 2.63 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var handlerState_exports = {}; __export(handlerState_exports, { ForegroundHandler: () => ForegroundHandler, normalizeBehavior: () => normalizeBehavior, showAllBehavior: () => showAllBehavior, suppressBehavior: () => suppressBehavior }); module.exports = __toCommonJS(handlerState_exports); const showAllBehavior = { shouldShowBanner: true, shouldShowList: true, shouldPlaySound: true, shouldSetBadge: true }; const suppressBehavior = { shouldShowBanner: false, shouldShowList: false, shouldPlaySound: false, shouldSetBadge: false }; function normalizeBehavior(input) { if (!input || typeof input !== "object") return { ...suppressBehavior }; return { shouldShowBanner: "shouldShowBanner" in input && input.shouldShowBanner === true, shouldShowList: "shouldShowList" in input && input.shouldShowList === true, shouldPlaySound: "shouldPlaySound" in input && input.shouldPlaySound === true, shouldSetBadge: "shouldSetBadge" in input && input.shouldSetBadge === true }; } var ForegroundHandler = class { constructor(present) { this.present = present; } present; handler = null; nulled = false; pending = /* @__PURE__ */ new Set(); setHandler(handler) { this.handler = handler; this.nulled = handler === null; } receive(requestId, notification) { if (this.pending.has(requestId)) return false; if (!this.handler) { this.present(requestId, { ...this.nulled ? suppressBehavior : showAllBehavior }); return true; } const handler = this.handler; this.pending.add(requestId); Promise.resolve().then(() => handler.handleNotification(notification)).then((behavior) => this.settle(requestId, normalizeBehavior(behavior)), () => this.settle(requestId, showAllBehavior)); return true; } settle(requestId, behavior) { if (!this.pending.delete(requestId)) return; this.present(requestId, { ...behavior }); } };