1
0
Fork 0

Fix #114: Close autocomplete menu when pressing Esc. (#139)

This commit is contained in:
Nicolas Perriault 2017-05-06 16:00:00 +02:00 committed by GitHub
parent bda0a82f3f
commit 55cfab9976
3 changed files with 18 additions and 5 deletions

View File

@ -435,7 +435,7 @@ updateDraft draftMsg currentUser model =
let let
( newState, maybeMsg ) = ( newState, maybeMsg ) =
Autocomplete.update Autocomplete.update
updateAutocompleteConfig autocompleteUpdateConfig
autoMsg autoMsg
draft.autoMaxResults draft.autoMaxResults
draft.autoState draft.autoState
@ -451,6 +451,16 @@ updateDraft draftMsg currentUser model =
Just updateMsg -> Just updateMsg ->
update updateMsg newModel update updateMsg newModel
CloseAutocomplete ->
let
newDraft =
{ draft
| showAutoMenu = False
, autoState = Autocomplete.reset autocompleteUpdateConfig draft.autoState
}
in
{ model | draft = newDraft } ! []
ResetAutocomplete toTop -> ResetAutocomplete toTop ->
let let
newDraft = newDraft =
@ -458,13 +468,13 @@ updateDraft draftMsg currentUser model =
| autoState = | autoState =
if toTop then if toTop then
Autocomplete.resetToFirstItem Autocomplete.resetToFirstItem
updateAutocompleteConfig autocompleteUpdateConfig
(acceptableAccounts draft.autoQuery draft.autoAccounts) (acceptableAccounts draft.autoQuery draft.autoAccounts)
draft.autoMaxResults draft.autoMaxResults
draft.autoState draft.autoState
else else
Autocomplete.resetToLastItem Autocomplete.resetToLastItem
updateAutocompleteConfig autocompleteUpdateConfig
(acceptableAccounts draft.autoQuery draft.autoAccounts) (acceptableAccounts draft.autoQuery draft.autoAccounts)
draft.autoMaxResults draft.autoMaxResults
draft.autoState draft.autoState
@ -1015,8 +1025,8 @@ update msg model =
model ! [ Command.scrollColumnToBottom column ] model ! [ Command.scrollColumnToBottom column ]
updateAutocompleteConfig : Autocomplete.UpdateConfig Msg Account autocompleteUpdateConfig : Autocomplete.UpdateConfig Msg Account
updateAutocompleteConfig = autocompleteUpdateConfig =
Autocomplete.updateConfig Autocomplete.updateConfig
{ toId = .id >> toString { toId = .id >> toString
, onKeyDown = , onKeyDown =

View File

@ -22,6 +22,7 @@ type DraftMsg
| ToggleSpoiler Bool | ToggleSpoiler Bool
| UpdateInputInformation InputInformation | UpdateInputInformation InputInformation
| ResetAutocomplete Bool | ResetAutocomplete Bool
| CloseAutocomplete
| SetAutoState Autocomplete.Msg | SetAutoState Autocomplete.Msg

View File

@ -205,6 +205,8 @@ draftView ({ draft, currentUser } as model) =
(\code -> (\code ->
if code == 38 || code == 40 then if code == 38 || code == 40 then
Ok NoOp Ok NoOp
else if code == 27 then
Ok <| DraftEvent CloseAutocomplete
else else
Err "not handling that key" Err "not handling that key"
) )