summaryrefslogtreecommitdiff
path: root/Hero/Client.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2020-06-05 22:27:14 -0700
committerBen Sima <ben@bsima.me>2020-06-05 22:29:30 -0700
commit37062e1ca6c479b7cf773931aa0e797ebcfafe8b (patch)
tree56a2262621f85dc3aabe6983da1da689837b7836 /Hero/Client.hs
parent99c0a806be7fa502394cc3b3634ce7eb43f97024 (diff)
Add user datatype to keep
I also restructured some types so that I could grab a handle on the keep to close it on shutdown, otherwise the database would be locked and I can't do anything about it. This might mean I have to delete and start the database from scratch when I deploy, but that's okay because I haven't stored anything yet. I also renamed some stuff like 'deck' and 'beam' just for fun. I could make these into more general interfaces like I always planned to. Also I haven't really tested this yet, so... next commit will implement the user login.
Diffstat (limited to 'Hero/Client.hs')
-rw-r--r--Hero/Client.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/Hero/Client.hs b/Hero/Client.hs
index a513dcd..4189fd8 100644
--- a/Hero/Client.hs
+++ b/Hero/Client.hs
@@ -28,6 +28,7 @@ import Hero.App
ComicReaderState (..),
ComicReaderView (..),
Model (..),
+ User (..),
audioId,
chooseExperienceLink,
comicPlayerFullLink,
@@ -130,12 +131,13 @@ move (ToggleZoom c pg) m = m {cpState = newState} <# pure act
Reading Full _ _ -> (reading Spread, goto comicPlayerSpreadLink)
Reading Spread _ _ -> (reading Full, goto comicPlayerFullLink)
x -> (x, NoOp)
-move (ToggleInLibrary c) model = model {userLibrary = newLib} <# pure NoOp
+move (ToggleInLibrary c) model = model {user = newUser} <# pure NoOp
where
+ newUser = (user model) { userLibrary = newLib }
newLib
- | c `elem` userLibrary model =
- Protolude.filter (/= c) $ userLibrary model
- | otherwise = c : userLibrary model
+ | c `elem` (userLibrary $ user model) =
+ Protolude.filter (/= c) $ userLibrary $ user model
+ | otherwise = c : (userLibrary $ user model)
move (HandleURI u) model = model {uri = u} <# pure NoOp
move (ChangeURI u) model = model <# do
pushURI u