Port MIME module to TypeScript

This commit is contained in:
Daniel Gasienica
2018-04-09 19:24:24 -04:00
parent 6a63e427c8
commit df2e6e7864
7 changed files with 25 additions and 24 deletions

View File

@@ -1,8 +1,7 @@
import React from 'react';
import classnames from 'classnames';
// @ts-ignore
import Mime from '../../../js/modules/types/mime';
import * as MIME from '../../../ts/types/MIME';
interface Props {
@@ -92,17 +91,17 @@ export class Quote extends React.Component<Props, {}> {
const { contentType, thumbnail } = first;
const objectUrl = getObjectUrl(thumbnail);
if (Mime.isVideo(contentType)) {
if (MIME.isVideo(contentType)) {
return objectUrl
? this.renderImage(objectUrl, 'play')
: this.renderIcon('movie');
}
if (Mime.isImage(contentType)) {
if (MIME.isImage(contentType)) {
return objectUrl
? this.renderImage(objectUrl)
: this.renderIcon('image');
}
if (Mime.isAudio(contentType)) {
if (MIME.isAudio(contentType)) {
return this.renderIcon('microphone');
}
@@ -123,16 +122,16 @@ export class Quote extends React.Component<Props, {}> {
const first = attachments[0];
const { contentType, fileName, isVoiceMessage } = first;
if (Mime.isVideo(contentType)) {
if (MIME.isVideo(contentType)) {
return <div className="type-label">{i18n('video')}</div>;
}
if (Mime.isImage(contentType)) {
if (MIME.isImage(contentType)) {
return <div className="type-label">{i18n('photo')}</div>;
}
if (Mime.isAudio(contentType) && isVoiceMessage) {
if (MIME.isAudio(contentType) && isVoiceMessage) {
return <div className="type-label">{i18n('voiceMessage')}</div>;
}
if (Mime.isAudio(contentType)) {
if (MIME.isAudio(contentType)) {
return <div className="type-label">{i18n('audio')}</div>;
}

View File

@@ -20,8 +20,7 @@ export { BackboneWrapper } from '../components/utility/BackboneWrapper';
import { Quote } from '../components/conversation/Quote';
import * as HTML from '../html';
// @ts-ignore
import MIME from '../../js/modules/types/mime';
import * as MIME from '../../ts/types/MIME';
// TypeScript wants two things when you import:
// 1) a normal typescript file

View File

@@ -1 +1,14 @@
export type MIMEType = string & { _mimeTypeBrand: any };
export const isVideo = (value: MIMEType): boolean =>
value.startsWith('video/') && value !== 'video/wmv';
export const isImage = (value: MIMEType): boolean =>
value.startsWith('image/') && value !== 'image/tiff';
export const isAudio = (value: MIMEType): boolean =>
value.startsWith('audio/');
export const isJPEG = (value: MIMEType): boolean =>
value === 'image/jpeg';