UNPKG

react-native-animated-glow

Version:

A performant, highly-customizable animated glow effect for React Native, powered by Skia and Reanimated.

29 lines (28 loc) 1.19 kB
"use strict"; // src/animated-glow/SkiaWebLoader.web.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.ensureSkiaWebLoaded = exports.skiaWebState = void 0; const react_native_1 = require("react-native"); const web_1 = require("@shopify/react-native-skia/lib/module/web"); const package_json_1 = require("canvaskit-wasm/package.json"); // The state starts as 'idle' on web exports.skiaWebState = { status: 'idle', subscribers: new Set(), }; let hasBeenTriggered = false; const ensureSkiaWebLoaded = () => { if (react_native_1.Platform.OS !== 'web' || hasBeenTriggered || exports.skiaWebState.status !== 'idle') { return; } hasBeenTriggered = true; exports.skiaWebState.status = 'loading'; (0, web_1.LoadSkiaWeb)({ locateFile: (file) => `https://cdn.jsdelivr.net/npm/canvaskit-wasm@${package_json_1.version}/bin/full/${file}` }).then(() => { exports.skiaWebState.status = 'ready'; exports.skiaWebState.subscribers.forEach(callback => callback()); exports.skiaWebState.subscribers.clear(); // Clean up after notifying }).catch(console.error); }; exports.ensureSkiaWebLoaded = ensureSkiaWebLoaded;