File tree Expand file tree Collapse file tree 2 files changed +25
-11
lines changed Expand file tree Collapse file tree 2 files changed +25
-11
lines changed Original file line number Diff line number Diff line change 1
1
module UI.ModalOverlay exposing (modalOverlay )
2
2
3
3
import Html exposing (Html , node )
4
+ import Html.Attributes exposing (attribute )
4
5
import Html.Events exposing (on )
5
6
import Json.Decode as Decode
6
- import Maybe.Extra as MaybeE
7
7
8
8
9
9
modalOverlay : Maybe msg -> Maybe msg -> Html msg -> Html msg
10
10
modalOverlay onEscape onEnter content =
11
11
let
12
+ escHandler =
13
+ onEscape
14
+ |> Maybe . map
15
+ ( \ onEsc ->
16
+ [ on " escape" ( Decode . succeed onEsc)
17
+ , attribute " has-escape-handler" " true"
18
+ ]
19
+ )
20
+ |> Maybe . withDefault []
21
+
22
+ enterHandler =
23
+ onEnter
24
+ |> Maybe . map
25
+ ( \ onEnt ->
26
+ [ on " enter" ( Decode . succeed onEnt)
27
+ , attribute " has-enter-handler" " true"
28
+ ]
29
+ )
30
+ |> Maybe . withDefault []
31
+
12
32
attrs =
13
- [ onEscape |> Maybe . map ( \ onEsc -> on " escape" ( Decode . succeed onEsc))
14
- , onEnter |> Maybe . map ( \ onEnt -> on " enter" ( Decode . succeed onEnt))
15
- ]
33
+ escHandler ++ enterHandler
16
34
in
17
- node " modal-overlay" ( MaybeE . values attrs) [ content ]
35
+ node " modal-overlay" attrs [ content ]
Original file line number Diff line number Diff line change @@ -26,18 +26,14 @@ class ModalOverlay extends HTMLElement {
26
26
return ;
27
27
}
28
28
29
- if ( ev . key === "Escape" ) {
29
+ if ( this . hasAttribute ( "has-esc-handler" ) && ev . key === "Escape" ) {
30
30
ev . preventDefault ( ) ;
31
31
ev . stopPropagation ( ) ;
32
32
33
33
this . dispatchEvent ( new CustomEvent ( "escape" ) ) ;
34
34
}
35
35
36
- debugger ;
37
- console . log ( '---' ) ;
38
- console . log ( this . events ) ;
39
-
40
- if ( ev . key === "Enter" ) {
36
+ if ( this . hasAttribute ( "has-enter-handler" ) && ev . key === "Enter" ) {
41
37
ev . preventDefault ( ) ;
42
38
ev . stopPropagation ( ) ;
43
39
You can’t perform that action at this time.
0 commit comments