@primer/react-brand
Version:
Primer Brand is a GitHub's design system for creating React-based marketing websites and digital experiences.
33 lines (32 loc) • 1.04 kB
JavaScript
import { createContext as e, useContext as t, useState as n } from "react";
import { jsx as r } from "react/jsx-runtime";
//#region src/river/RiverStoryScroll/RiverStoryScrollProvider.tsx
var i = e({
visibilityStates: [],
setVisibilityStates: () => {
throw Error("setVisibilityStates function must be implemented.");
}
}), a = () => t(i);
function o({ children: e, className: t, initialStates: a }) {
let [o, s] = n(a), [, c] = n(/* @__PURE__ */ new Set()), [l, u] = n(null);
return /* @__PURE__ */ r("div", {
className: t,
children: /* @__PURE__ */ r(i.Provider, {
value: {
visibilityStates: o,
setVisibilityStates: (e, t) => {
c((n) => {
let r = new Set(n);
t ? r.add(e) : r.delete(e);
let i = r.size > 0 ? Math.max(...Array.from(r)) : l;
return i !== null && (u(i), s((e) => e.map((e, t) => t === i))), r;
});
}
},
children: e
})
});
}
//#endregion
export { o as RiverStoryScrollProvider, a as useStoryScrollContext };
//# sourceMappingURL=RiverStoryScrollProvider.js.map