From 8a34cc822c2c508472fe29ab2be1b74ba06e59e6 Mon Sep 17 00:00:00 2001
From: Alexander Foremny <aforemny@posteo.de>
Date: Fri, 7 Jun 2024 16:14:52 +0200
Subject: add collections

---
 frontend/app/Page/NewCollection.hs | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

(limited to 'frontend/app/Page')

diff --git a/frontend/app/Page/NewCollection.hs b/frontend/app/Page/NewCollection.hs
index b105689..282d36e 100644
--- a/frontend/app/Page/NewCollection.hs
+++ b/frontend/app/Page/NewCollection.hs
@@ -7,9 +7,12 @@ module Page.NewCollection
   )
 where
 
+import Api
+import Data.Aeson qualified as A
 import Data.Text qualified as T
 import Form qualified as F
 import Miso
+import Miso.String (toMisoString)
 
 data Model = Model
   { input :: T.Text
@@ -24,19 +27,29 @@ data Action
   = NoOp
   | FormChanged T.Text
   | FormSubmitted T.Text
+  | CollectionCreated (Either String ())
   deriving (Eq, Show)
 
 updateModel :: Action -> Model -> Effect Action Model
 updateModel NoOp m = noEff m
 updateModel (FormChanged input) m = noEff m {input}
-updateModel (FormSubmitted _) m = noEff m
+updateModel (FormSubmitted collection) m =
+  m <# do
+    CollectionCreated <$> createCollection (T.unpack collection)
+updateModel (CollectionCreated (Left err)) m =
+  m <# do
+    pure NoOp <* consoleLog (toMisoString err)
+-- TODO reload collections in main app
+updateModel (CollectionCreated (Right _)) m = noEff m
 
 viewModel :: Model -> View Action
 viewModel m = do
   div_ [] $
     [ h3_ [] [text "new collection"],
       either FormChanged FormSubmitted
-        <$> F.runForm collectionForm m.input
+        <$> F.runForm collectionForm m.input,
+      pre_ [] [text (toMisoString (A.encode m.input))],
+      pre_ [] [text (toMisoString (A.encode (collectionForm.fill m.input)))]
     ]
 
 collectionForm :: F.Form T.Text T.Text
-- 
cgit v1.2.3