summaryrefslogtreecommitdiff
path: root/Hero/App.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2020-07-12 22:47:03 -0700
committerBen Sima <ben@bsima.me>2020-07-12 22:48:39 -0700
commit5d89c729aed9df6dd96e3880a91897ae5dfabbca (patch)
tree5fcd382629553830dbc16232dc71e238084ce9ce /Hero/App.hs
parenteae8ebdaa33fc17050703c4251e90a8a313739a3 (diff)
hero: put app routes behind auth
Diffstat (limited to 'Hero/App.hs')
-rw-r--r--Hero/App.hs42
1 files changed, 26 insertions, 16 deletions
diff --git a/Hero/App.hs b/Hero/App.hs
index 56289f8..6f7a8c4 100644
--- a/Hero/App.hs
+++ b/Hero/App.hs
@@ -295,29 +295,32 @@ data Action
| DumpModel
deriving (Show, Eq)
-type ClientRoutes =
- Home
- :<|> ComicCover
+type AppRoutes =
+ ComicCover
:<|> ComicReaderSpread
:<|> ComicReaderFull
:<|> ComicVideo
- :<|> Login
:<|> Discover
:<|> ChooseExperience
handlers =
- home
- :<|> comicCover
+ comicCover
:<|> comicReader
:<|> comicReader
:<|> comicReader
- :<|> login
:<|> discover
:<|> comicReader
-routes :: Proxy ClientRoutes
+routes :: Proxy AppRoutes
routes = Proxy
+type PubRoutes =
+ Home
+ :<|> Login
+
+pubRoutes :: Proxy PubRoutes
+pubRoutes = Proxy
+
-- * pages
--
-- TODO: consider making a typeclass, something like:
@@ -330,6 +333,8 @@ routes = Proxy
-- link :: Api.URI
-- * home
+--
+-- this is the unauthenticated page that you see when you first visit
type Home =
View Action
@@ -337,12 +342,14 @@ type Home =
homeProxy :: Proxy Home
homeProxy = Proxy
+homeLink :: Api.URI
+homeLink = linkURI $ Api.safeLink front homeProxy
+ where
+ front = Proxy :: Proxy Home
+
home :: Model -> View Action
home = login
-homeLink :: Api.URI
-homeLink = linkURI $ Api.safeLink routes homeProxy
-
-- * login
data LoginForm = LoginForm {loginEmail :: String, loginPass :: String}
@@ -359,7 +366,7 @@ loginProxy :: Proxy Login
loginProxy = Proxy
loginLink :: Api.URI
-loginLink = linkURI $ Api.safeLink routes loginProxy
+loginLink = linkURI $ Api.safeLink pubRoutes loginProxy
login :: Model -> View Action
login _ =
@@ -807,11 +814,12 @@ appmenu :: View Action
appmenu = aside_ [id_ "appmenu"] $ btn </ links
where
links =
+ -- these extra 'discoverLink's are just dummies
[ (discoverLink, "discover.svg", "discover"),
- (homeLink, "save.svg", "library"),
- (homeLink, "watch.svg", "videos"),
+ (discoverLink, "save.svg", "library"),
+ (discoverLink, "watch.svg", "videos"),
(comicLink "1", "read.svg", "comics"),
- (homeLink, "listen.svg", "music")
+ (discoverLink, "listen.svg", "music")
]
btn (lnk, img, label) =
a_
@@ -899,7 +907,9 @@ topbar =
header_
[id_ "app-head", class_ "is-black", css euro]
[ a_
- [class_ "button is-medium is-black", onClick $ ChangeURI homeLink]
+ [ class_ "button is-medium is-black",
+ onClick $ ChangeURI discoverLink
+ ]
[img_ [src_ $ ms $ Assets.icon <> "hero-logo.svg"]],
div_
[id_ "app-head-right"]