@@ -439,12 +439,19 @@ async function fetchSamples() {
439439}
440440
441441function ctrlEnterListener ( e ) {
442- if ( ( e . metaKey || e . ctrlKey ) && event . key === "Enter" ) {
442+ if ( ( e . metaKey || e . ctrlKey ) && e . key === "Enter" ) {
443443 document . querySelector ( ".editor textarea" ) . blur ( )
444444 handleRun ( )
445445 }
446446}
447447
448+ function escListener ( e ) {
449+ if ( e . key === "Escape" ) {
450+ hideModal ( )
451+ hideSidebar ( )
452+ }
453+ }
454+
448455// --- UI: URL-hash change handling ------------------------------------
449456
450457// handleHashChange is triggered by browser back/forwards buttons, manual
@@ -1104,6 +1111,7 @@ function initModal() {
11041111function hideModal ( ) {
11051112 const el = document . querySelector ( "#modal" )
11061113 el . classList . add ( "hidden" )
1114+ document . removeEventListener ( "keydown" , escListener )
11071115}
11081116
11091117function showSamples ( ) {
@@ -1113,6 +1121,7 @@ function showSamples() {
11131121 modal . classList . remove ( "hidden" )
11141122 samples . querySelectorAll ( "a" ) . forEach ( ( a ) => a . classList . remove ( "highlight" ) )
11151123 samples . querySelector ( `a[href$="#${ currentSample } "]` ) ?. classList . add ( "highlight" )
1124+ document . addEventListener ( "keydown" , escListener )
11161125}
11171126
11181127function showPreviousSample ( ) {
@@ -1162,11 +1171,13 @@ function showSidebar() {
11621171 document . querySelector ( ".editor textarea" ) . style . pointerEvents = "none"
11631172 document . querySelector ( "#sidebar" ) . classList . remove ( "hidden" )
11641173 document . addEventListener ( "click" , handleOutsideSidebarClick )
1174+ document . addEventListener ( "keydown" , escListener )
11651175}
11661176function hideSidebar ( ) {
11671177 document . querySelector ( ".editor textarea" ) . style . pointerEvents = ""
11681178 document . querySelector ( "#sidebar" ) . classList . add ( "hidden" )
11691179 document . removeEventListener ( "click" , handleOutsideSidebarClick )
1180+ document . removeEventListener ( "keydown" , escListener )
11701181}
11711182function handleOutsideSidebarClick ( e ) {
11721183 const sidebar = document . querySelector ( "#sidebar" )
0 commit comments