UNPKG

@wwdrew/expo-spotify-sdk

Version:

Expo module wrapping the native Spotify iOS (v5) and Android (v4) SDKs for OAuth authentication and App Remote playback control

36 lines 1.16 kB
/** * Module-level store backing `useSyncExternalStore` hooks. Initialises lazily on * first subscription and notifies subscribers when `update` changes the snapshot. */ export function createSyncExternalStore(initialState, init) { let state = initialState; const listeners = new Set(); let initialised = false; const store = { getState: () => state, getSnapshot: () => state, update(next) { const resolved = typeof next === "function" ? next(state) : next; if (Object.is(resolved, state)) return; state = resolved; listeners.forEach((listener) => listener()); }, subscribe(listener) { if (!initialised) { initialised = true; try { init(store); } catch (error) { initialised = false; throw error; } } listeners.add(listener); return () => listeners.delete(listener); }, }; return store; } //# sourceMappingURL=sync-external-store.js.map