Mailspring/internal_packages/file-list/lib/file-frame.cjsx
Evan Morikawa e3dfbe59be refactor(react): convert to class-based React components
Summary: Fix react upgrade errors

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1456
2015-04-30 13:08:29 -07:00

39 lines
1 KiB
CoffeeScript

React = require 'react'
_ = require "underscore-plus"
{Utils, FileDownloadStore, Actions} = require 'inbox-exports'
{Spinner, EventedIFrame} = require 'ui-components'
FileFrameStore = require './file-frame-store'
class FileFrame extends React.Component
@displayName: 'FileFrame'
render: =>
src = if @state.ready then @state.filepath else ''
if @state.file
<div className="file-frame-container">
<EventedIFrame src={src} />
<Spinner visible={!@state.ready} />
</div>
else
<div></div>
constructor: (@props) ->
@state = @getStateFromStores()
componentDidMount: =>
@_unsubscribers = []
@_unsubscribers.push FileFrameStore.listen @_onChange
componentWillUnmount: =>
unsubscribe() for unsubscribe in @_unsubscribers
getStateFromStores: =>
file: FileFrameStore.file()
filepath: FileDownloadStore.pathForFile(FileFrameStore.file())
ready: FileFrameStore.ready()
_onChange: =>
@setState(@getStateFromStores())
module.exports = FileFrame