mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-17 17:47:03 +00:00
ui: Make message & list scroll within viewport
This commit is contained in:
@@ -475,7 +475,17 @@ view session model =
|
|||||||
{ title = model.mailboxName ++ " - Inbucket"
|
{ title = model.mailboxName ++ " - Inbucket"
|
||||||
, content =
|
, content =
|
||||||
div [ class "page mailbox" ]
|
div [ class "page mailbox" ]
|
||||||
[ viewMessageList session model
|
[ aside [ class "message-list-controls" ]
|
||||||
|
[ input
|
||||||
|
[ type_ "search"
|
||||||
|
, placeholder "search"
|
||||||
|
, onInput OnSearchInput
|
||||||
|
, value model.searchInput
|
||||||
|
]
|
||||||
|
[]
|
||||||
|
, button [ onClick PurgeMailbox ] [ text "Purge" ]
|
||||||
|
]
|
||||||
|
, viewMessageList session model
|
||||||
, main_
|
, main_
|
||||||
[ class "message" ]
|
[ class "message" ]
|
||||||
[ case model.state of
|
[ case model.state of
|
||||||
@@ -500,29 +510,16 @@ view session model =
|
|||||||
|
|
||||||
viewMessageList : Session -> Model -> Html Msg
|
viewMessageList : Session -> Model -> Html Msg
|
||||||
viewMessageList session model =
|
viewMessageList session model =
|
||||||
aside [ class "message-list" ]
|
aside [ class "message-list" ] <|
|
||||||
[ div []
|
case model.state of
|
||||||
[ input
|
|
||||||
[ type_ "search"
|
|
||||||
, placeholder "search"
|
|
||||||
, onInput OnSearchInput
|
|
||||||
, value model.searchInput
|
|
||||||
]
|
|
||||||
[]
|
|
||||||
, button [ onClick PurgeMailbox ] [ text "Purge" ]
|
|
||||||
]
|
|
||||||
, case model.state of
|
|
||||||
LoadingList _ ->
|
LoadingList _ ->
|
||||||
div [] []
|
[]
|
||||||
|
|
||||||
ShowingList list _ ->
|
ShowingList list _ ->
|
||||||
div []
|
list
|
||||||
(list
|
|
||||||
|> filterMessageList
|
|> filterMessageList
|
||||||
|> List.reverse
|
|> List.reverse
|
||||||
|> List.map (messageChip model list.selected)
|
|> List.map (messageChip model list.selected)
|
||||||
)
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
messageChip : Model -> Maybe MessageID -> MessageHeader -> Html Msg
|
messageChip : Model -> Maybe MessageID -> MessageHeader -> Html Msg
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ header {
|
|||||||
|
|
||||||
.page {
|
.page {
|
||||||
grid-area: page;
|
grid-area: page;
|
||||||
|
min-height: 0; /* Allows scrolling in nested flex/grids. */
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
@@ -284,28 +285,34 @@ li.navbar-active span,
|
|||||||
.mailbox {
|
.mailbox {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-area: page;
|
grid-area: page;
|
||||||
grid-gap: 20px;
|
grid-gap: 1px 20px;
|
||||||
grid-template-areas:
|
grid:
|
||||||
"list mesg";
|
"ctrl mesg" auto
|
||||||
grid-template-columns:
|
"list mesg" 1fr / minmax(200px, 300px) minmax(650px, 1000px);
|
||||||
minmax(200px, 300px)
|
|
||||||
minmax(650px, 1000px);
|
|
||||||
grid-template-rows: 1fr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 999px) {
|
.message-list-controls {
|
||||||
.mailbox {
|
grid-area: ctrl;
|
||||||
grid-template-areas:
|
|
||||||
"list"
|
|
||||||
"mesg";
|
|
||||||
grid-template-columns: none;
|
|
||||||
grid-template-rows: none;
|
|
||||||
justify-self: center;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-list {
|
.message-list {
|
||||||
grid-area: list;
|
grid-area: list;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 999px) {
|
||||||
|
.mailbox {
|
||||||
|
grid:
|
||||||
|
"ctrl" auto
|
||||||
|
"list" auto
|
||||||
|
"mesg" auto / 1fr;
|
||||||
|
justify-self: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-list {
|
||||||
|
overflow-y: visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-list-entry {
|
.message-list-entry {
|
||||||
@@ -343,6 +350,7 @@ li.navbar-active span,
|
|||||||
|
|
||||||
.message {
|
.message {
|
||||||
grid-area: mesg;
|
grid-area: mesg;
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-header {
|
.message-header {
|
||||||
|
|||||||
Reference in New Issue
Block a user