import * as React from "react"; import * as Constants from "~/common/constants"; import * as Validations from "~/common/validations"; import { css } from "@emotion/core"; const STYLES_FAILURE = css` background-color: ${Constants.system.pitchBlack}; color: ${Constants.system.white}; display: flex; align-items: center; justify-content: center; font-size: 88px; margin: 0; padding: 0; width: 100%; min-height: 10%; height: 100%; `; const STYLES_OBJECT = css` display: block; margin: 0; padding: 0; width: 100%; min-height: 10%; height: 100%; user-select: none; `; const STYLES_ASSET = css` user-select: none; width: 100%; margin: 0; padding: 0; min-height: 10%; height: 100%; display: flex; align-items: center; justify-content: center; position: relative; `; const STYLES_IMAGE = css` user-select: none; display: block; max-width: 100%; max-height: 100%; `; const typeMap = { "video/quicktime": "video/mp4", }; export default class SlateMediaObject extends React.Component { render() { // NOTE(jim): // This is a hack to catch this undefined case I don't want to track down yet. const url = this.props.data.url.replace("https://undefined", "https://"); const type = this.props.data.type ? this.props.data.type : "LEGACY_NO_TYPE"; const playType = typeMap[type] ? typeMap[type] : type; let element =
No Preview
; if (type.startsWith("application/pdf")) { return ; } if (type.startsWith("video/")) { return ( ); } if (type.startsWith("audio/")) { return (
); } if (Validations.isPreviewableImage(type)) { return (
); } return element; } }