Fix video forwarding

This commit is contained in:
Josh Perez 2021-12-02 20:05:32 -05:00 committed by GitHub
parent 97d9069876
commit 13de35bea2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 41 additions and 44 deletions

View file

@ -6,6 +6,7 @@ import * as React from 'react';
import { action } from '@storybook/addon-actions';
import { storiesOf } from '@storybook/react';
import type { AttachmentDraftType } from '../../types/Attachment';
import type { Props } from './AttachmentList';
import { AttachmentList } from './AttachmentList';
import {
@ -24,7 +25,9 @@ const i18n = setupI18n('en', enMessages);
const story = storiesOf('Components/Conversation/AttachmentList', module);
const createProps = (overrideProps: Partial<Props> = {}): Props => ({
const createProps = (
overrideProps: Partial<Props<AttachmentDraftType>> = {}
): Props<AttachmentDraftType> => ({
attachments: overrideProps.attachments || [],
i18n,
onAddAttachment: action('onAddAttachment'),

View file

@ -7,7 +7,10 @@ import { Image } from './Image';
import { StagedGenericAttachment } from './StagedGenericAttachment';
import { StagedPlaceholderAttachment } from './StagedPlaceholderAttachment';
import type { LocalizerType } from '../../types/Util';
import type { AttachmentDraftType } from '../../types/Attachment';
import type {
AttachmentType,
AttachmentDraftType,
} from '../../types/Attachment';
import {
areAllAttachmentsVisual,
canDisplayImage,
@ -15,14 +18,14 @@ import {
isVideoAttachment,
} from '../../types/Attachment';
export type Props = Readonly<{
attachments: ReadonlyArray<AttachmentDraftType>;
export type Props<T extends AttachmentType | AttachmentDraftType> = Readonly<{
attachments: ReadonlyArray<T>;
canEditImages?: boolean;
i18n: LocalizerType;
onAddAttachment?: () => void;
onClickAttachment?: (attachment: AttachmentDraftType) => void;
onClickAttachment?: (attachment: T) => void;
onClose?: () => void;
onCloseAttachment: (attachment: AttachmentDraftType) => void;
onCloseAttachment: (attachment: T) => void;
}>;
const IMAGE_WIDTH = 120;
@ -32,15 +35,21 @@ const IMAGE_HEIGHT = 120;
const BLANK_VIDEO_THUMBNAIL =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQAAAAA3bvkkAAAACklEQVR42mNiAAAABgADm78GJQAAAABJRU5ErkJggg==';
function getUrl(attachment: AttachmentDraftType): string | undefined {
function getUrl(
attachment: AttachmentType | AttachmentDraftType
): string | undefined {
if (attachment.pending) {
return undefined;
}
if ('screenshot' in attachment) {
return attachment.screenshot?.url || attachment.url;
}
return attachment.url;
}
export const AttachmentList = ({
export const AttachmentList = <T extends AttachmentType | AttachmentDraftType>({
attachments,
canEditImages,
i18n,
@ -48,7 +57,7 @@ export const AttachmentList = ({
onClickAttachment,
onCloseAttachment,
onClose,
}: Props): JSX.Element | null => {
}: Props<T>): JSX.Element | null => {
if (!attachments.length) {
return null;
}