-
-
Save prikhi/1f2fa08231b9bb959772453cfd0c042a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type FilterMsg | |
= UpdateTitleFilter String | |
| UpdateDescriptionFilter String | |
| UpdateTagFilter String | |
type Msg | |
= Filter FilterMsg | |
| DoSomethingElse | |
| DoAnotherThing | |
update : Msg -> Model -> ( Model, Cmd Msg ) | |
update msg model = | |
case msg of | |
Filter subMsg -> | |
updateFilter subMsg model | |
DoSomethingElse -> | |
-- ... | |
DoAnotherThing -> | |
-- ... | |
updateFilter : FilterMsg -> Model -> ( Model, Cmd Msg ) | |
updateFilter msg model = | |
let | |
setFilters m = | |
{ m | filters = | |
createFilters m.currentTitleSearchField | |
m.currentDescriptionSearchField | |
m.currentFilteredTags | |
} | |
addTag tag = | |
{ model | currentFilteredTags = tag :: model.currentFilteredTags } | |
removeTag tag = | |
{ model | currentFilteredTags = List.filter (\t -> t /= tag) model.currentFilteredTags } | |
in | |
case msg of | |
UpdateTitleFilter titleSearch -> | |
( setFilters { model | currentTitleSearchField = titleSearch }, Cmd.none ) | |
UpdateDescriptionFilter descSearch -> | |
( setFilters { model | currentDescriptionSearchField = descSearch } , Cmd.none ) | |
UpdateTagFilter tagSearch -> | |
( { model | currentTagSearchField = tagSearch }, Cmd.none ) | |
SubmitTagFilter -> | |
( setFilters <| addTag model.currentTagSearchField, Cmd.none ) | |
AddTagFilter tag -> | |
( setFilters <| addTag tag, Cmd.none ) | |
RemoveTagFilter tag -> | |
( setFilters <| removeTag tag, Cmd.none ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment