add new collection page

This commit is contained in:
Alexander Foremny
2024-06-06 23:05:41 +02:00
parent 3add980b73
commit 378e007141
5 changed files with 64 additions and 1 deletions

View File

@@ -0,0 +1,44 @@
module Page.NewCollection
( Model,
initialModel,
Action,
updateModel,
viewModel,
)
where
import Data.Text qualified as T
import Form qualified as F
import Miso
data Model = Model
{ input :: T.Text
}
deriving (Show, Eq)
initialModel :: JSM (Either String Model)
initialModel = do
pure (Right (Model {input = ""}))
data Action
= NoOp
| FormChanged T.Text
| FormSubmitted T.Text
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
viewModel :: Model -> View Action
viewModel m = do
div_ [] $
[ h3_ [] [text "new collection"],
either FormChanged FormSubmitted
<$> F.runForm collectionForm m.input
]
collectionForm :: F.Form T.Text T.Text
collectionForm =
F.input "name"