import React from 'react'
import { Card, Image } from 'react-bootstrap'
import { ReactTinyLink } from 'react-tiny-link'
import getUrls from 'get-urls'

function MM(props) {
    let { post, expanded = false, className } = props
    let style = {
        card: {
            maxHeight: !expanded ? '350' : 'fit-content',
            overflow: 'hidden',
        },
    }
    let { entities = {}, text } = post
    let {
        media: [photo] = [],
        urls: [url],
    } = entities
    if (photo) {
        photo = <Image fluid rounded={true} src={photo.media_url_https} alt="media preview" />
    }
    if (!url) {
        // TODO see if this even necessary
        let unparsed_urls = Array.from(getUrls(text))
        if (unparsed_urls.length) {
            url = {
                expanded_url: unparsed_urls[0], // just the first one
            }
        }
    }
    if (url) {
        url = (
            <ReactTinyLink
                width="100%"
                cardSize={expanded ? 'large' : 'small'}
                autoPlay={expanded}
                showGraphic={true}
                maxLine={2}
                minLine={1}
                url={url.expanded_url}
            />
        )
    }
    if (photo || url)
        return (
            <Card className={`${className} w-100 bg-transparent`} style={style.card}>
                {photo}
                <div className="mt-1">{url}</div>
            </Card>
        )
    else return <></>
}

export default MM