Skip to content

Commit ffbadba

Browse files
authored
Merge pull request #4 from codingandcommunity/push-add-toggle-button
Added button that toggles plugin visibility
2 parents c2a59c0 + 3dbf630 commit ffbadba

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

lib/fast-forward-view.coffee

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,31 @@
11
module.exports =
22
class FastForwardView
3-
constructor: (serializedState) ->
3+
constructor: (serializedState, emitter) ->
4+
# Set Emitter field variable.
5+
@emitter = emitter
6+
47
# Create root element
58
@element = document.createElement('div')
69
@element.classList.add('fast-forward')
710

8-
# Create message element
9-
message = document.createElement('div')
10-
message.textContent = "The FastForward package is Alive! It's ALIVE!"
11-
message.classList.add('message')
12-
@element.appendChild(message)
11+
# Create button element
12+
@button = document.createElement('button')
13+
@button.textContent = "Toggle Fast Forward"
14+
@button.classList.add('btn-primary')
15+
@button.classList.add('btn')
16+
17+
# Event listening for button. Emits event to the FastForward module.
18+
@button.addEventListener('click', () =>
19+
@emitter.emit('toggle-button-event')
20+
)
21+
@element.appendChild(@button)
1322

1423
# Returns an object that can be retrieved when package is activated
1524
serialize: ->
1625

1726
# Tear down any state and detach
1827
destroy: ->
28+
@button.removeEventListener('click', 0)
1929
@element.remove()
2030

2131
getElement: ->

lib/fast-forward.coffee

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,39 @@
11
FastForwardView = require './fast-forward-view'
2-
{CompositeDisposable} = require 'atom'
2+
{CompositeDisposable, Emitter} = require 'atom'
33

44
module.exports = FastForward =
55
fastForwardView: null
66
modalPanel: null
77
subscriptions: null
8+
emitter: null
89

910
activate: (state) ->
10-
@fastForwardView = new FastForwardView(state.fastForwardViewState)
11+
# Construct Emitter, then pass Emitter into construct fastForwardView.
12+
@emitter = new Emitter()
13+
@fastForwardView = new FastForwardView(state.fastForwardViewState, @emitter)
14+
1115
# Create a panel for the plugin, visible by default
1216
@modalPanel = atom.workspace.addRightPanel(item: @fastForwardView.getElement(), visible: true)
1317

1418
# Events subscribed to in atom's system can be easily cleaned up with a CompositeDisposable
15-
@subscriptions = new CompositeDisposable
19+
@subscriptions = new CompositeDisposable()
1620

1721
# Register command that toggles this view
18-
@subscriptions.add atom.commands.add 'atom-workspace', 'fast-forward:toggle': => @toggle()
22+
@subscriptions.add(atom.commands.add('atom-workspace', {'fast-forward:toggle': () => @toggle()}))
23+
24+
@emitter.on 'toggle-button-event', => @toggle()
1925

2026
deactivate: ->
2127
@modalPanel.destroy()
2228
@subscriptions.dispose()
29+
@emitter.dispose()
2330
@fastForwardView.destroy()
2431

2532
serialize: ->
2633
fastForwardViewState: @fastForwardView.serialize()
2734

2835
toggle: ->
2936
console.log 'FastForward was toggled!'
30-
3137
if @modalPanel.isVisible()
3238
@modalPanel.hide()
3339
else

0 commit comments

Comments
 (0)