-
Notifications
You must be signed in to change notification settings - Fork 65
Expand file tree
/
Copy pathContext.purs
More file actions
30 lines (22 loc) · 821 Bytes
/
Context.purs
File metadata and controls
30 lines (22 loc) · 821 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
module React.Context
( Context
, createContext
, getProvider
, getConsumer
) where
import Prelude
import Data.Function.Uncurried (Fn2, mkFn2, runFn2)
import Data.Maybe (Maybe)
import Data.Nullable (Nullable)
import Data.Nullable as Nullable
import React.Types (ReactElement, ReactClass, Children)
createContext :: forall a. a -> Maybe (a -> a -> Number) -> Context a
createContext a = runFn2 createContext_ a <<< Nullable.toNullable <<< map mkFn2
foreign import data Context :: Type -> Type
foreign import getProvider :: forall a. Context a -> ReactClass { children :: Children, value :: a }
foreign import getConsumer :: forall a. Context a -> ReactClass { children :: a -> ReactElement }
foreign import createContext_
:: forall a
. Fn2 a
(Nullable (Fn2 a a Number))
(Context a)