// Generated by purs version 0.13.6 "use strict"; var Control_Applicative = require("../Control.Applicative/index.js"); var Control_Bind = require("../Control.Bind/index.js"); var Data_Eq = require("../Data.Eq/index.js"); var Data_Foldable = require("../Data.Foldable/index.js"); var Data_Function = require("../Data.Function/index.js"); var Data_Functor = require("../Data.Functor/index.js"); var Data_Maybe = require("../Data.Maybe/index.js"); var Data_Newtype = require("../Data.Newtype/index.js"); var Data_Nullable = require("../Data.Nullable/index.js"); var Data_Tuple = require("../Data.Tuple/index.js"); var Data_Unit = require("../Data.Unit/index.js"); var Effect = require("../Effect/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 Unsafe_Coerce = require("../Unsafe.Coerce/index.js"); var Web_HTML_HTMLElement = require("../Web.HTML.HTMLElement/index.js"); var UseBoundingBox = function (x) { return x; }; var ntUseBoundingBox = new Data_Newtype.Newtype(function (n) { return n; }, UseBoundingBox); var useBoundingBox = React_Basic_Hooks_Internal.coerceHook(ntUseBoundingBox)(React_Basic_Hooks_Internal.bind(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useRef(Data_Nullable["null"]))(function (v) { return React_Basic_Hooks_Internal.bind(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useState(Data_Maybe.Nothing.value))(function (v1) { return React_Basic_Hooks_Internal.discard(React_Basic_Hooks_Internal.ixBindRender)(React_Basic_Hooks.useLayoutEffect(Data_Eq.eqUnit)(Data_Unit.unit)(function __do() { var maybeRef = React_Basic_Hooks.readRefMaybe(v)(); return Control_Bind.discard(Control_Bind.discardUnit)(Effect.bindEffect)(Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Data_Functor.mapFlipped(Data_Maybe.functorMaybe)(maybeRef)(Unsafe_Coerce.unsafeCoerce))(function (elem) { return function __do() { var rect = Web_HTML_HTMLElement.getBoundingClientRect(elem)(); return v1.value1(Data_Function["const"](new Data_Maybe.Just(rect)))(); }; }))(function ($dollar__unused) { return Control_Applicative.pure(Effect.applicativeEffect)(Control_Applicative.pure(Effect.applicativeEffect)(Data_Unit.unit)); })(); }))(function ($dollar__unused) { return Control_Applicative.pure(React_Basic_Hooks_Internal.applicativeRender(Type_Equality.refl))(new Data_Tuple.Tuple(v1.value0, v)); }); }); })); module.exports = { UseBoundingBox: UseBoundingBox, useBoundingBox: useBoundingBox, ntUseBoundingBox: ntUseBoundingBox };