Files
Bubberstation/tgui/scripts/components/button.ract
2016-01-01 17:47:44 -06:00

37 lines
976 B
Plaintext

<script type='text/coffeescript'>
byond = require "../byond"
constants = require "../constants"
component.exports =
computed:
clickable: ->
if @get("enabled") && not @get "state" then true
else false
enabled: ->
if @get("config.status") is constants.UI_INTERACTIVE then true
else false
styles: ->
enabled = @get "enabled"
state = @get "state"
style = @get "style"
if enabled
if not state then "normal #{[style]}"
else "#{state}"
else "disabled"
oninit: ->
@on "act", (event) ->
event.node.blur()
{action, params} = @get()
byond.act @get("config.ref"), action, params if action?
</script>
<span class='button {{styles}} {{#grid}}gridable{{/}}'
unselectable='true'
{{#clickable}}tabindex='0'{{/}}
on-click-enter='{{#clickable}}act{{/}}'>
{{#if icon}}
<i class='fa fa-{{icon}}'></i>
{{/if}}
{{yield}}
</span>