File tree 3 files changed +52
-2
lines changed
3 files changed +52
-2
lines changed Original file line number Diff line number Diff line change @@ -3,22 +3,25 @@ module Test.Hello where
3
3
import Prelude
4
4
5
5
import Concur.Core (Widget )
6
+ import Concur.Core.DevTools (connectDevTools , sendToDevTools )
6
7
import Concur.React (HTML )
7
8
import Concur.React.DOM (button , text , div' )
8
9
import Concur.React.Props (onClick )
9
- import Effect.Class (liftEffect )
10
- import Effect.Console (log )
11
10
import Control.Monad.State.Class (get , put )
12
11
import Control.Monad.State.Trans (StateT , runStateT )
13
12
import Control.Monad.Trans.Class (lift )
14
13
import Data.Tuple (snd )
14
+ import Effect.Class (liftEffect )
15
+ import Effect.Console (log )
15
16
16
17
helloWidget :: Widget HTML Int
17
18
helloWidget = snd <$> runStateT helloWidgetS 0
18
19
19
20
helloWidgetS :: forall a . StateT Int (Widget HTML ) a
20
21
helloWidgetS = do
22
+ conn <- liftEffect connectDevTools
21
23
count <- get
24
+ liftEffect $ sendToDevTools conn " Increment" count
22
25
e <- lift $ div'
23
26
[ but " Say Hello!"
24
27
, but $ " For the " <> show count <> " time, hello sailor!"
Original file line number Diff line number Diff line change
1
+ "use strict" ;
2
+
3
+ function hasDevTools ( ) {
4
+ return ( process . env . NODE_ENV === 'development' && window . __REDUX_DEVTOOLS_EXTENSION__ ) ;
5
+ }
6
+
7
+ exports . connectDevTools = function ( ) {
8
+ if ( hasDevTools ( ) ) {
9
+ return window . __REDUX_DEVTOOLS_EXTENSION__ . connect ( ) ;
10
+ } else {
11
+ // ??
12
+ return null ;
13
+ }
14
+ } ;
15
+
16
+ exports . disconnectDevTools = function ( ) {
17
+ if ( hasDevTools ( ) ) {
18
+ return window . __REDUX_DEVTOOLS_EXTENSION__ . disconnect ( ) ;
19
+ } else {
20
+ // ??
21
+ return null ;
22
+ }
23
+ } ;
24
+
25
+ exports . sendToDevTools = function ( connection ) {
26
+ return function ( action ) {
27
+ return function ( state ) {
28
+ return function ( ) {
29
+ if ( hasDevTools ( ) ) {
30
+ return window . __REDUX_DEVTOOLS_EXTENSION__ . send ( action , state ) ;
31
+ } else {
32
+ // ??
33
+ return null ;
34
+ }
35
+ } ;
36
+ } ;
37
+ } ;
38
+ } ;
Original file line number Diff line number Diff line change
1
+ module Concur.Core.DevTools where
2
+
3
+ import Data.Unit (Unit )
4
+ import Effect (Effect )
5
+
6
+ data DevToolsConnection
7
+ foreign import connectDevTools :: Effect DevToolsConnection
8
+ foreign import disconnectDevTools :: Effect Unit
9
+ foreign import sendToDevTools :: forall action state . DevToolsConnection -> action -> state -> Effect Unit
You can’t perform that action at this time.
0 commit comments