// Generated by purs version 0.13.6 "use strict"; var $foreign = require("./foreign.js"); var Data_Eq = require("../Data.Eq/index.js"); var Data_Function_Uncurried = require("../Data.Function.Uncurried/index.js"); var Data_Functor = require("../Data.Functor/index.js"); var Data_Nullable = require("../Data.Nullable/index.js"); var Data_Tuple = require("../Data.Tuple/index.js"); var Effect = require("../Effect/index.js"); var Effect_Uncurried = require("../Effect.Uncurried/index.js"); var React_Basic_Hooks_Internal = require("../React.Basic.Hooks.Internal/index.js"); var Unsafe_Coerce = require("../Unsafe.Coerce/index.js"); var useState = function (initialState) { return React_Basic_Hooks_Internal.unsafeHook(function () { return $foreign.useState_(Data_Function_Uncurried.mkFn2(Data_Tuple.Tuple.create), initialState); }); }; var useRef = function (initialValue) { return React_Basic_Hooks_Internal.unsafeHook(function () { return $foreign.useRef_(initialValue); }); }; var useLayoutEffect = function (dictEq) { return function (keys) { return function (effect) { return React_Basic_Hooks_Internal.unsafeHook(function () { return $foreign.useLayoutEffect_(Data_Function_Uncurried.mkFn2(Data_Eq.eq(dictEq)), keys, effect); }); }; }; }; var useEffect = function (dictEq) { return function (key) { return function (effect) { return React_Basic_Hooks_Internal.unsafeHook(function () { return $foreign.useEffect_(Data_Function_Uncurried.mkFn2(Data_Eq.eq(dictEq)), key, effect); }); }; }; }; var unsafeReactFunctionComponent = Unsafe_Coerce.unsafeCoerce; var unsafeDiscardRenderEffects = Unsafe_Coerce.unsafeCoerce; var unsafeComponent = function (dictLacks) { return function (dictLacks1) { return function (name) { return function (renderFn) { var c = unsafeReactFunctionComponent(function (props) { return unsafeDiscardRenderEffects(renderFn(props))(); }); return function () { return $foreign.unsafeSetDisplayName(name, c); }; }; }; }; }; var readRef = Effect_Uncurried.runEffectFn1($foreign.readRef_); var readRefMaybe = function (a) { return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)(readRef(a)); }; var component = function (dictLacks) { return function (dictLacks1) { return function (dictLacks2) { return unsafeComponent()(); }; }; }; module.exports = { component: component, useState: useState, useEffect: useEffect, useLayoutEffect: useLayoutEffect, readRef: readRef, readRefMaybe: readRefMaybe, useRef: useRef };