Last active
July 17, 2020 08:14
-
-
Save andrevdm/5ed971293f8d042201a401f6d9e2c0c6 to your computer and use it in GitHub Desktop.
Concur-Replica with static middleware and CSS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Protolude | |
import qualified Concur.Core as CC | |
import qualified Concur.Replica as CR | |
import qualified Data.Map.Strict as Map | |
import qualified Data.Text as Txt | |
import qualified Network.Wai.Handler.Replica as WR | |
import qualified Network.Wai.Handler.Warp as Wa | |
import Network.Wai.Middleware.Static ((>->)) | |
import qualified Network.Wai.Middleware.Static as MwS | |
import qualified Network.WebSockets.Connection as Wsc | |
import Replica.VDOM.Types as Rt | |
main :: IO () | |
main = do | |
-- Find static files in ./static | |
let middleware = MwS.staticPolicy (MwS.noDots >-> MwS.addBase "static") | |
CR.run 8080 myIndex Wsc.defaultConnectionOptions middleware (counter 0) | |
where | |
-- Add a custom header with CSS and favicon | |
myIndex = CR.defaultIndex "Counter" myHeader | |
myHeader = [ Rt.VNode "link" (fl [ ("rel", Rt.AText "stylesheet") | |
, ("type", Rt.AText "text/css") | |
, ("href", Rt.AText "site.css") | |
]) Nothing [] | |
, Rt.VNode "meta" (fl [ ("name", Rt.AText "viewport") | |
, ("content", Rt.AText "width=device-width") | |
, ("initial-scale", Rt.AText "1") | |
, ("maximum-scale", Rt.AText "1") | |
, ("minimum-scale", Rt.AText "1") | |
, ("user-scalable", Rt.AText "no") | |
, ("minimal-ui", Rt.AText "minimal-ui") | |
]) Nothing [] | |
] | |
fl = Map.fromList | |
counter :: Int -> WR.Context -> CC.Widget HTML a | |
counter x ctx = do | |
click <- | |
CR.div | |
[] | |
[ Left <$> CR.div [ CR.onClick ] [ CR.text "-" ] | |
, CR.text $ show x | |
, Right <$> CR.div [ CR.onClick ] [ CR.text "+" ] | |
] | |
case click of | |
Left _ -> counter (x - 1) ctx | |
Right _ -> counter (x + 1) ctx | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--.... | |
build-depends: base >= 4.10.1.0 && < 5 | |
, protolude | |
, text | |
, containers | |
, replica | |
, concur-core | |
, concur-replica | |
, wai | |
, wai-extra | |
, wai-websockets | |
, wai-middleware-static | |
, warp | |
, websockets |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#..... | |
extra-deps: | |
- natural-transformation-0.4 | |
- git: https://github.com/pkamenarsky/replica.git | |
commit: 46d2fd3b2c236d573f1d6002eb58cc95b2ba03b9 | |
- git: https://github.com/pkamenarsky/concur.git | |
commit: dc5347b35c79654d58fa95716f425ee7248504fb | |
subdirs: | |
- concur-core | |
- git: https://github.com/pkamenarsky/concur-replica.git | |
commit: 7d16bcc93114c62252e3e22c208dc2a819f02435 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment