@@ -13,22 +13,35 @@ const RELEASE_NOTE_DIR = path.join(__dirname, '..', '..', 'release-notes')
13
13
export function activate ( startupNoteVersion ) {
14
14
subs = new CompositeDisposable ( )
15
15
const view = document . createElement ( 'div' )
16
- view . classList . add ( 'julia-client-release-note' )
17
16
const panel = atom . workspace . addModalPanel ( { item : view } )
18
- const showNote = ( version ) => {
17
+
18
+ const inner = document . createElement ( 'div' )
19
+ inner . classList . add ( 'julia-client-release-note' )
20
+ inner . setAttribute ( 'tabindex' , "1" )
21
+
22
+ const closeButton = document . createElement ( 'button' )
23
+ closeButton . classList . add ( 'btn' , 'icon' , 'icon-remove-close' , 'release-note-close-button' )
24
+
25
+ view . appendChild ( closeButton )
26
+ view . appendChild ( inner )
27
+
28
+ closeButton . onclick = ( ) => panel . hide ( )
29
+
30
+ const showNote = ( version , versions ) => {
19
31
const p = path . join ( RELEASE_NOTE_DIR , version + '.md' )
20
32
const markdown = readCode ( p )
21
- view . innerHTML = marked ( markdown )
33
+ inner . innerHTML = marked ( markdown )
22
34
panel . show ( )
35
+ view . focus ( )
23
36
}
24
37
const close = ( ) => {
25
38
panel . hide ( )
26
39
}
27
40
const panelView = panel . getElement ( )
28
41
panelView . style [ 'max-width' ] = '75em'
29
- panelView . addEventListener ( 'blur' , close ) // BUG: doesn't work
42
+
30
43
subs . add (
31
- atom . commands . add ( 'atom-workspace' , 'julia-client:open-release-note' , ( ) => {
44
+ atom . commands . add ( 'atom-workspace' , 'julia-client:open-release-note' , ( ) => {
32
45
const versions = fs . readdirSync ( RELEASE_NOTE_DIR )
33
46
. filter ( path => path !== 'README.md' )
34
47
. map ( path => path . replace ( / ( .+ ) \. m d / , 'v $1' ) )
@@ -38,9 +51,17 @@ export function activate (startupNoteVersion) {
38
51
} ) ,
39
52
new Disposable ( ( ) => {
40
53
panel . destroy ( )
54
+ } ) ,
55
+ atom . commands . add ( panelView , 'julia-client:cancel-release-note' , ( event ) => {
56
+ console . log ( event ) ;
57
+ panel . hide ( )
58
+ event . stopPropagation ( )
41
59
} )
42
60
)
43
- if ( startupNoteVersion ) showNote ( startupNoteVersion ) // BUG: doesn't work
61
+
62
+ if ( startupNoteVersion ) {
63
+ setTimeout ( ( ) => showNote ( startupNoteVersion ) , 500 )
64
+ }
44
65
}
45
66
46
67
export function deactivate ( ) {
0 commit comments