FilesystemObjectThumbnail.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * Copyright (C) 2015 - present Instructure, Inc.
  3. *
  4. * This file is part of Canvas.
  5. *
  6. * Canvas is free software: you can redistribute it and/or modify it under
  7. * the terms of the GNU Affero General Public License as published by the Free
  8. * Software Foundation, version 3 of the License.
  9. *
  10. * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
  11. * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  12. * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
  13. * details.
  14. *
  15. * You should have received a copy of the GNU Affero General Public License along
  16. * with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. import React from 'react'
  19. import Folder from 'compiled/models/Folder'
  20. import mimeClass from 'compiled/util/mimeClass'
  21. import FilesystemObjectThumbnail from 'compiled/react_files/components/FilesystemObjectThumbnail'
  22. FilesystemObjectThumbnail.render = function () {
  23. var additionalClassName = this.props.className ? this.props.className : '';
  24. if (this.state.thumbnail_url) {
  25. return (
  26. <span
  27. className={`media-object ef-thumbnail FilesystemObjectThumbnail ${additionalClassName}`}
  28. style = { {backgroundImage: `url('${this.state.thumbnail_url}')`} }
  29. ></span>
  30. );
  31. } else {
  32. var thumbnailClassName = (this.props.model instanceof Folder) ?
  33. (this.props.model.get('for_submissions') ? 'folder-locked' : 'folder') :
  34. mimeClass(this.props.model.get('content-type'));
  35. return (
  36. <i
  37. className={`media-object ef-big-icon FilesystemObjectThumbnail mimeClass-${thumbnailClassName} ${additionalClassName}`}
  38. ></i>
  39. );
  40. }
  41. };
  42. export default React.createClass(FilesystemObjectThumbnail)