Allow to hide the search menu

This is more convenient on small screens
This commit is contained in:
Eike Kettner 2020-05-17 15:03:31 +02:00
parent f45b40342c
commit 62111e5f93
4 changed files with 54 additions and 17 deletions

View File

@ -79,16 +79,13 @@ view model =
viewGroup : ItemLightGroup -> Html Msg viewGroup : ItemLightGroup -> Html Msg
viewGroup group = viewGroup group =
div [] <| div [ class "item-group" ]
List.concat [ div [ class "ui horizontal divider" ]
[ [ div [ class "ui horizontal divider" ] [ text group.name
[ text group.name
]
]
, [ div [ class "ui one column grid" ]
(List.map viewItem group.items)
]
] ]
, div [ class "ui one column grid" ]
(List.map viewItem group.items)
]
viewItem : ItemLight -> Html Msg viewItem : ItemLight -> Html Msg

View File

@ -17,6 +17,7 @@ type alias Model =
, itemListModel : Comp.ItemCardList.Model , itemListModel : Comp.ItemCardList.Model
, searchInProgress : Bool , searchInProgress : Bool
, viewMode : ViewMode , viewMode : ViewMode
, menuCollapsed : Bool
} }
@ -26,6 +27,7 @@ emptyModel =
, itemListModel = Comp.ItemCardList.init , itemListModel = Comp.ItemCardList.init
, searchInProgress = False , searchInProgress = False
, viewMode = Listing , viewMode = Listing
, menuCollapsed = False
} }
@ -36,6 +38,7 @@ type Msg
| ItemCardListMsg Comp.ItemCardList.Msg | ItemCardListMsg Comp.ItemCardList.Msg
| ItemSearchResp (Result Http.Error ItemLightList) | ItemSearchResp (Result Http.Error ItemLightList)
| DoSearch | DoSearch
| ToggleSearchMenu
type ViewMode type ViewMode

View File

@ -68,6 +68,11 @@ update key flags msg model =
DoSearch -> DoSearch ->
doSearch flags model doSearch flags model
ToggleSearchMenu ->
( { model | menuCollapsed = not model.menuCollapsed }
, Cmd.none
)
doSearch : Flags -> Model -> ( Model, Cmd Msg ) doSearch : Flags -> Model -> ( Model, Cmd Msg )
doSearch flags model = doSearch flags model =

View File

@ -12,21 +12,33 @@ import Page.Home.Data exposing (..)
view : Model -> Html Msg view : Model -> Html Msg
view model = view model =
div [ class "home-page ui padded grid" ] div [ class "home-page ui padded grid" ]
[ div [ class "four wide column" ] [ div
[ div [ class "ui top attached ablue-comp menu" ] [ classList
[ h4 [ class "header item" ] [ ( "sixteen wide mobile six wide tablet four wide computer column", True )
[ text "Search" , ( "invisible hidden", model.menuCollapsed )
]
]
[ div
[ class "ui top attached ablue-comp menu"
]
[ a
[ class "item"
, href "#"
, onClick ToggleSearchMenu
]
[ i [ class "ui angle down icon" ] []
, text "Search"
] ]
, div [ class "right floated menu" ] , div [ class "right floated menu" ]
[ a [ a
[ class "item" [ class "icon item"
, onClick ResetSearch , onClick ResetSearch
, href "#" , href "#"
] ]
[ i [ class "undo icon" ] [] [ i [ class "undo icon" ] []
] ]
, a , a
[ class "item" [ class "icon item"
, onClick DoSearch , onClick DoSearch
, href "" , href ""
] ]
@ -38,8 +50,28 @@ view model =
[ Html.map SearchMenuMsg (Comp.SearchMenu.view model.searchMenuModel) [ Html.map SearchMenuMsg (Comp.SearchMenu.view model.searchMenuModel)
] ]
] ]
, div [ class "twelve wide column" ] , div
[ case model.viewMode of [ classList
[ ( "sixteen wide mobile ten wide tablet twelve wide computer column", not model.menuCollapsed )
, ( "sixteen wide column", model.menuCollapsed )
]
]
[ div
[ classList
[ ( "invisible hidden", not model.menuCollapsed )
, ( "ui segment container", True )
]
]
[ a
[ class "ui basic large circular label"
, onClick ToggleSearchMenu
, href "#"
]
[ i [ class "search icon" ] []
, text "Search Menu"
]
]
, case model.viewMode of
Listing -> Listing ->
if model.searchInProgress then if model.searchInProgress then
resultPlaceholder resultPlaceholder