@@ -13,7 +13,6 @@ module WebSocket (websocketComponent) where
1313import Control.Monad (unless )
1414import Data.Bool
1515import GHC.Generics
16- import Language.Javascript.JSaddle hiding (create )
1716-----------------------------------------------------------------------------
1817import Miso hiding (on )
1918import Miso.Lens
@@ -36,11 +35,11 @@ instance ToMisoString Origin where
3635-----------------------------------------------------------------------------
3736data Action
3837 = OnOpen WebSocket
39- | OnMessage JSVal
38+ | OnMessage MisoString
4039 | OnClosed Closed
41- | OnError JSVal
40+ | OnError MisoString
4241 | Send
43- | SendMessage JSVal
42+ | SendMessage MisoString
4443 | Update MisoString
4544 | Append Message
4645 | Connect
@@ -84,19 +83,23 @@ websocketComponent box =
8483 where
8584 updateModel = \ case
8685 Send -> do
87- message <- use msg
88- unless (MS. null message ) $ do
89- io (SendMessage <$> toJSVal message )
86+ m <- use msg
87+ unless (MS. null m ) $ do
88+ issue (SendMessage m )
9089 io $ do
9190 date <- newDate
9291 dateString <- date & toLocaleString
93- pure $ Append (Message dateString message CLIENT )
94- SendMessage message -> do
92+ pure $ Append (Message dateString m CLIENT )
93+ SendMessage m -> do
9594 socket <- use websocket
96- send socket message
95+ sendText socket m
9796 Connect ->
98- connect " wss://echo.websocket.org"
99- OnOpen OnClosed OnMessage OnError
97+ connectText
98+ " wss://echo.websocket.org"
99+ OnOpen
100+ OnClosed
101+ OnMessage
102+ OnError
100103 OnOpen socket -> do
101104 websocket .= socket
102105 connected .= True
@@ -109,16 +112,15 @@ websocketComponent box =
109112 pure $ Append (Message dateString " Disconnected..." SYSTEM )
110113 OnMessage message ->
111114 io $ do
112- message_ <- fromJSValUnchecked message
113115 date <- newDate
114116 dateString <- date & toLocaleString
115- pure $ Append (Message dateString message_ SERVER )
117+ pure $ Append (Message dateString message SERVER )
116118 Append message ->
117119 received %= (message : )
118120 OnError err ->
119121 io_ $ do
120122 consoleLog " Error received"
121- consoleLog' err
123+ consoleLog err
122124 Update input ->
123125 msg .= input
124126 NoOp ->
0 commit comments