@@ -10,11 +10,30 @@ import Frontend.API
1010import Frontend.Route
1111import Page.Deployment
1212import Page.Deployments
13+import Frontend.GHCJS
14+
15+import Data.Text (pack)
1316
1417main :: IO ()
1518main = mainWidgetWithHead headWidget $ do
16− headerWidget
17− routeWidget
19+ initConfigWidget
20+
21+
22+initConfigWidget :: (MonadWidget t m, Prerender js t m) => m ()
23+initConfigWidget = do
24+ pb <- getPostBuild
25+ x <- performEvent (initConfig <$ pb)
26+ widgetHold_ loadingWidget $ leftmost
27+ [ (headerWidget >> routeWidget) <$ ffilter id x
28+ , errorWidget <$ ffilter not x ]
29+
30+tstW :: MonadWidget t m => m ()
31+tstW = do
32+ pb <- getPostBuild
33+ x <- performEvent (initConfig <$ pb)
34+ xd <- holdDyn False x
35+ dynText $ pack . show <$> xd
36+ blank
1837
1938wsUpdate :: forall t m . MonadWidget t m => m (Event t ())
2039wsUpdate = do
@@ -25,7 +44,8 @@ wsUpdate = do
2544 , _webSocketConfig_reconnect = True
2645 , _webSocketConfig_protocols = []
2746 }
28− ws <- webSocket "wss://dm-genfly-ws.stage.thebestagent.pro/event" wsConfig
47+ wsUrl <- getWsUrl
48+ ws <- webSocket wsUrl wsConfig
2949 pure $ () <$ _webSocket_recv ws
3050
3151routeWidget
@@ -74,3 +94,25 @@ headerWidget =
7494 respEv <- projectName pb
7595 nameDyn <- holdDyn "" $ uProjectName <$> fmapMaybe reqSuccess respEv
7696 dynText nameDyn
97+
98+emptyHeaderWidget :: MonadWidget t m => m ()
99+emptyHeaderWidget =
100+ elClass "header" "header" $
101+ divClass "header__wrap container" $ do
102+ elClass "b" "header__logo" $
103+ text "Deployment Manager"
104+ elClass "div" "header__project" blank
105+
106+loadingWidget :: MonadWidget t m => m ()
107+loadingWidget =
108+ divClass "no-page" $
109+ divClass "no-page__inner" $
110+ divClass "loading loading--enlarged loading--alternate" blank
111+
112+errorWidget :: MonadWidget t m => m ()
113+errorWidget =
114+ divClass "no-page" $
115+ divClass "no-page__inner" $
116+ divClass "null null--data" $ do
117+ elClass "b" "null__heading" $ text "Cannot retrieve the data"
118+ divClass "null__message" $ text "Try to reload page"