RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/components/message/content/attachments/file/AudioAttachment.tsx

Summary

Maintainability
A
1 hr
Test Coverage
import type { AudioAttachmentProps } from '@rocket.chat/core-typings';
import { AudioPlayer } from '@rocket.chat/fuselage';
import { useMediaUrl } from '@rocket.chat/ui-contexts';
import React from 'react';

import MarkdownText from '../../../../MarkdownText';
import MessageCollapsible from '../../../MessageCollapsible';
import MessageContentBody from '../../../MessageContentBody';

const AudioAttachment = ({
    title,
    audio_url: url,
    audio_type: type,
    audio_size: size,
    description,
    descriptionMd,
    title_link: link,
    title_link_download: hasDownload,
    collapsed,
}: AudioAttachmentProps) => {
    const getURL = useMediaUrl();
    return (
        <>
            {descriptionMd ? <MessageContentBody md={descriptionMd} /> : <MarkdownText parseEmoji content={description} />}
            <MessageCollapsible title={title} hasDownload={hasDownload} link={getURL(link || url)} size={size} isCollapsed={collapsed}>
                <AudioPlayer src={getURL(url)} type={type} />
            </MessageCollapsible>
        </>
    );
};

export default AudioAttachment;