Commit 7b710820 authored by James Laver's avatar James Laver

Rework R.Hooks adding a bunch of hooks

parent 49d8ddba
'use strict';
var React = require("react");
function _simple(prop) {
return function() { return React[prop].apply(React, arguments); };
}
function _memo(prop) {
return function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(args.pop());
return React[prop].apply(React, args);
}
}
exports._tuple = function tuple(ctor, v) { return ctor(v[0])(v[1]); };
exports._tupleCurrent = function tupleCurrent(ctor, ref) {
const set = function(v) { ref.current = v; };
return ctor(ref.current)(set);
};
exports._useContext = _simple('useContext');
exports._useDebugValue = _simple('useDebugValue');
exports._useDebugValuePrime = _simple('useDebugValue');
// exports._useImperativeHandle = _simple('useImperativeHandle');
exports._useMemo = _simple('useMemo');
exports._useMemo1 = _memo('useMemo');
exports._useMemo2 = _memo('useMemo');
exports._useMemo3 = _memo('useMemo');
exports._useMemo4 = _memo('useMemo');
exports._useMemo5 = _memo('useMemo');
This diff is collapsed.
'use strict';
exports._tuple = function tuple(ctor, v) { return ctor(v[0])(v[1]); };
module Reactix.Utils where
import Data.Unit (Unit, unit)
import Data.Tuple (Tuple(..))
import Data.Function.Uncurried (Fn2, runFn2)
import Effect (Effect)
import Effect.Uncurried (EffectFn1, runEffectFn1)
import FFI.Simple (delay)
import Reactix.React (Hooks, unsafeHooksEffect)
tuple :: forall a b c. a -> Tuple b c
tuple = runFn2 _tuple Tuple
foreign import _tuple :: forall a b c. Fn2 (a -> b -> Tuple a b) c (Tuple a b)
currySecond :: forall a b c. Tuple a (EffectFn1 b c) -> Tuple a (b -> Effect c)
currySecond (Tuple a b) = Tuple a (runEffectFn1 b)
hook :: forall v. (Unit -> Effect v) -> Hooks v
hook f = unsafeHooksEffect (delay unit f)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment