Sha256: cc175f19262788b723c2cb07c375d318f7f8039a2ec2aa828f454fd6dcff8307
Contents?: true
Size: 1.9 KB
Versions: 2
Compression:
Stored size: 1.9 KB
Contents
ALL_INSTANCES = [] class Lanes.React.Viewport extends Lanes.Models.State @all: -> ALL_INSTANCES @displayError: (msg) -> _.first(ALL_INSTANCES)?.displayError(msg) session: width: 'number' height: 'number' el: 'element' selector: 'string' domRoot: 'element' reactRoot: 'object' lanes: 'element' modalProps: 'object' constructor: -> super ALL_INSTANCES.push(this) return unless @selector @domRoot = document.body.querySelector(@selector) _.dom(@domRoot).addClass('lanes-root') Lanes.fatal("Root selector #{@selector} not found") unless root _.dom(@domRoot).html = "<div class='lanes'/>" this.lanes = @domRoot.querySelector('.lanes') Lanes.lib.ResizeSensor(@domRoot, _.debounce( => @_updateDimensions() , 250)) this._updateDimensions() onBoot: -> prev = _.dom(this.domRoot.previousElementSibling) prev.addClass('complete') if prev.hasClass('loading') _.delay(-> prev.remove() , 100) _updateDimensions: -> this.set width: @lanes.clientWidth height: @lanes.clientHeight displayError: (msg) -> @modalProps = { show: true, buttons: ['OK'], title: 'Error', body: -> React.createElement('h3', {}, msg) } hideModal: -> @modalProps = {show: false} displayModal: (props) -> @modalProps = _.extend(props, show: true) renderRoot: -> cntrl = Lanes.Extensions.controlling() component = cntrl?.rootComponent?(this) || Lanes.React.Root.DefaultComponentNotFound root = React.createElement(Lanes.React.Root, {viewport: @}, React.createElement(component, extension: cntrl) ) @reactRoot = Lanes.Vendor.ReactDOM.render(root, @lanes)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lanes-0.5.0 | client/lanes/react/Viewport.coffee |
lanes-0.4.0 | client/lanes/react/Viewport.coffee |