hydrogen-sanity
Version:
Sanity.io toolkit for Hydrogen
35 lines (32 loc) • 841 B
JavaScript
import { useSyncExternalStore } from 'react';
const listeners = /* @__PURE__ */ new Set();
const activeQueries = /* @__PURE__ */ new Set();
function registerQuery(id) {
activeQueries.add(id);
for (const listener of listeners) {
listener();
}
return function unregisterQuery() {
activeQueries.delete(id);
for (const listener of listeners) {
listener();
}
};
}
function subscribe(onStoreChange) {
listeners.add(onStoreChange);
return function unsubscribe() {
listeners.delete(onStoreChange);
};
}
function getSnapshot() {
return activeQueries.size > 0;
}
function getServerSnapshot() {
return false;
}
function useHasActiveLoaders() {
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
}
export { registerQuery, useHasActiveLoaders };
//# sourceMappingURL=registry.js.map