// Generated by purs version 0.13.6 "use strict"; var Control_Applicative = require("../Control.Applicative/index.js"); var Data_Eq = require("../Data.Eq/index.js"); var Data_Function = require("../Data.Function/index.js"); var Data_Newtype = require("../Data.Newtype/index.js"); var Data_Unit = require("../Data.Unit/index.js"); var React_Basic_Hooks = require("../React.Basic.Hooks/index.js"); var React_Basic_Hooks_Internal = require("../React.Basic.Hooks.Internal/index.js"); var Type_Equality = require("../Type.Equality/index.js"); var Web_Event_EventTarget = require("../Web.Event.EventTarget/index.js"); var Web_HTML = require("../Web.HTML/index.js"); var Yoga_Scroll_Listener = require("../Yoga.Scroll.Listener/index.js"); var UseScrollYPosition = function (x) { return x; }; var ntUseScrollYPosition = new Data_Newtype.Newtype(function (n) { return n; }, UseScrollYPosition); var makeListener = function (setPosition) { return Web_Event_EventTarget.eventListener(Data_Function["const"](function __do() { var win = Web_HTML.window(); return setPosition(win.scrollY)(); })); }; var useScrollYPosition = React_Basic_Hooks_Internal.coerceHook(ntUseScrollYPosition)(React_Basic_Hooks_Internal.bind(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useState(0.0))(function (v) { var setScrollY = function ($545) { return v.value1(Data_Function["const"]($545)); }; return React_Basic_Hooks_Internal.discard(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useLayoutEffect(Data_Eq.eqUnit)(Data_Unit.unit)(function __do() { var listener = makeListener(setScrollY)(); return Yoga_Scroll_Listener.registerListener(listener)(); }))(function ($dollar__unused) { return Control_Applicative.pure(React_Basic_Hooks_Internal.applicativeRender(Type_Equality.refl))(v.value0); }); })); module.exports = { UseScrollYPosition: UseScrollYPosition, useScrollYPosition: useScrollYPosition, makeListener: makeListener, ntUseScrollYPosition: ntUseScrollYPosition };