Last active
November 8, 2017 02:00
-
-
Save dalaing/0bbd8c8a366434833b4c5e387d7229fa to your computer and use it in GitHub Desktop.
This file contains hidden or 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
app :: MonadWidget t m => m () | |
app = mdo | |
curRoute <- menu initialRoute | |
tool curRoute | |
modeMenu :: MonadWidget t m => Dynamic t Route -> Mode -> m (Dynamic t Mode) | |
modeMenu dRoute initial = do | |
eMode <- elClass "div" "Mode" $ do | |
toV <- menuItem View dCur dRoute | |
text " | " | |
toE <- menuItem Edit dCur dRoute | |
text " | " | |
toI <- menuItem Input dCur dRoute | |
pure $ leftmost [toV, toE, toI] | |
holdDyn initial eMode | |
levelMenu :: MonadWidget t m => Dynamic t Route -> Level -> m (Dynamic t Level) | |
levelMenu dRoute initial = do | |
eLevel <- elClass "div" "Level" $ do | |
toC <- menuItem Content dCur dRoute | |
text " | " | |
toU <- menuItem User dCur dRoute | |
pure $ leftmost [toC, toU] | |
holdDyn initial eLevel | |
menu :: MonadWidget t m => Route -> m (Dynamic t Route) | |
menu (Route mode level) = | |
elClass "div" "Menu" $ mdo | |
dMode <- modeMeny dRoute mode | |
dLevel <- levelMenu dRoute level | |
dRoute <- Route <$> dMode <*> dLevel | |
pure dRoute | |
menuItem :: (Eq a, Show a, MonadWidget t m) | |
=> a -> Dynamic t a -> Dynamic t Route -> m (Event t a) | |
menuItem option dCur dRoute = do | |
... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment