diff options
author | William Carroll <wpcarro@gmail.com> | 2020-04-18T13·58+0100 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-04-18T13·58+0100 |
commit | 441fe3e32eb9c041515178f74564ede9fd24db72 (patch) | |
tree | 8264b2cdf597cf0063214818467f6f849661220a /website/sandbox/learnpianochords/src/Practice.elm | |
parent | ddbd7e2ef5eb52bf125480bad80ee753275d9827 (diff) |
Tidy app
Now that I have a deployed an MVP of my app, I am tidying things up to support the next phase of development. TL;DR: - Moved application Model-related code into State module - Moved each View into its own module - Deleted unused ChordInspector component - Deleted unused Msg's, {Increase,Decrease}Tempo - Deleted misc unused code
Diffstat (limited to 'website/sandbox/learnpianochords/src/Practice.elm')
-rw-r--r-- | website/sandbox/learnpianochords/src/Practice.elm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/website/sandbox/learnpianochords/src/Practice.elm b/website/sandbox/learnpianochords/src/Practice.elm new file mode 100644 index 000000000000..229f019aa030 --- /dev/null +++ b/website/sandbox/learnpianochords/src/Practice.elm @@ -0,0 +1,44 @@ +module Practice exposing (render) + +import Html exposing (..) +import Html.Attributes exposing (..) +import Html.Events exposing (..) +import Icon +import Piano +import State +import Theory +import UI + + +openPreferences : Html State.Msg +openPreferences = + button + [ class "w-48 h-48 absolute left-0 top-0 z-40" + , onClick (State.SetView State.Preferences) + ] + [ Icon.cog ] + + +render : State.Model -> Html State.Msg +render model = + let + ( handleClick, buttonText ) = + if model.isPaused then + ( State.Play, "Press to practice" ) + + else + ( State.Pause, "" ) + in + div [] + [ openPreferences + , UI.overlayButton + { label = buttonText + , handleClick = handleClick + , isVisible = model.isPaused + } + , Piano.render + { highlight = model.selectedChord |> Maybe.andThen Theory.notesForChord |> Maybe.withDefault [] + , start = model.firstNote + , end = model.lastNote + } + ] |