UNPKG

@adapty/capacitor

Version:
80 lines 2.97 kB
import { parseOnboardingEvent } from '../shared/coders/parse'; import { BaseViewEmitter } from './base-view-emitter'; /** * OnboardingViewEmitter manages event handlers for onboarding view events. * Each event type can have only one handler - new handlers replace existing ones. */ export class OnboardingViewEmitter extends BaseViewEmitter { getEventConfig(event) { return HANDLER_TO_EVENT_CONFIG[event]; } parseEventData(rawEventData, ctx) { return parseOnboardingEvent(rawEventData, ctx); } getPossibleHandlers(nativeEvent) { return NATIVE_EVENT_TO_HANDLERS[nativeEvent] || []; } extractCallbackArgs(handlerName, eventData) { return extractCallbackArgs(handlerName, eventData); } getEventViewId(eventData) { var _a, _b; return (_b = (_a = eventData === null || eventData === void 0 ? void 0 : eventData.view) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null; } shouldCallHandler() { // Onboarding events don't use propertyMap filtering return true; } getEmitterName() { return 'OnboardingViewEmitter'; } } const ONBOARDING_EVENT_MAPPINGS = { onboarding_did_fail_with_error: [{ handlerName: 'onError' }], onboarding_on_analytics_action: [{ handlerName: 'onAnalytics' }], onboarding_did_finish_loading: [{ handlerName: 'onFinishedLoading' }], onboarding_on_close_action: [{ handlerName: 'onClose' }], onboarding_on_custom_action: [{ handlerName: 'onCustom' }], onboarding_on_paywall_action: [{ handlerName: 'onPaywall' }], onboarding_on_state_updated_action: [{ handlerName: 'onStateUpdated' }], }; const HANDLER_TO_EVENT_CONFIG = Object.entries(ONBOARDING_EVENT_MAPPINGS).reduce((acc, [nativeEvent, mappings]) => { mappings.forEach(({ handlerName }) => { acc[handlerName] = { nativeEvent, handlerName, }; }); return acc; }, {}); // Reverse mapping: nativeEvent -> EventName[] const NATIVE_EVENT_TO_HANDLERS = Object.entries(HANDLER_TO_EVENT_CONFIG).reduce((acc, [handlerName, config]) => { if (!acc[config.nativeEvent]) { acc[config.nativeEvent] = []; } acc[config.nativeEvent].push(handlerName); return acc; }, {}); function extractCallbackArgs(handlerName, eventArg) { const actionId = eventArg.id || ''; const meta = eventArg.meta; const event = eventArg.event; const action = eventArg.action; switch (handlerName) { case 'onClose': case 'onCustom': case 'onPaywall': return [actionId, meta]; case 'onStateUpdated': return [action, meta]; case 'onFinishedLoading': return [meta]; case 'onAnalytics': return [event, meta]; case 'onError': return [eventArg.error]; default: return []; } } //# sourceMappingURL=onboarding-view-emitter.js.map