import { Inline, Stack, useContainerSize } from "@front10/base-elements"; import * as React from "react"; import { BaseCard } from "./BaseCard"; import { QuotedTweet } from "./QuotedTweet"; import { TweetContent } from "./TweetContent"; import { TweetFooter } from "./TweetFooter"; import { TweetHeader } from "./TweetHeader"; import { TwitterCardProps } from "./TwitterCard"; import { TwitterImages } from "./TwitterImages"; import { TwitterLike } from "./TwitterLike"; import { TwitterRetweet } from "./TwitterRetweet"; import { TwitterVideo } from "./TwitterVideo"; function TwitterB( { data = {}, showText1 = true, showText2 = false, showText3 = true, imageCover = "cover", onCardClick, onCallToActionClick, tabIndex, showFullPost, isLoading, ...props }: TwitterCardProps, ref: React.Ref ) { const isRetweet = Boolean(data.isRetweet && !data.isQuote); const { text1: retweets, text2: likes, text3: tweetText, link, text5: userHandle = "", text6: avatar = "", text7: createdAt, text8: userName = "", tweetImage, tweetVideo, userVerified, } = data.retweet && isRetweet ? data.retweet : data; const innerTweet = data.retweet; const isQuoteTweet = Boolean(data.retweet && data.isQuote); const showMedia = !isQuoteTweet || showFullPost; const twitterImageLayout = showMedia && tweetImage && tweetImage.length > 0 ? ( ) : null; const twitterVideoLayout = showMedia && tweetVideo && tweetVideo.length === 1 ? ( ) : null; const cardWidth = useContainerSize(ref as any); const hasMedia = showMedia && (tweetImage?.length || tweetVideo?.length); let lineClamp: number | undefined; if (!showFullPost) { lineClamp = hasMedia || isQuoteTweet ? 5 : 10; if (isRetweet) { lineClamp -= 1; } } return ( 140} userName={userName} userVerified={userVerified} avatar={avatar} userHandle={userHandle} imageCover={imageCover} retweetUserName={data.text8} retweetUserHandle={data.text5} isRetweet={isRetweet} showCreatedAt={cardWidth > 230} createdAt={createdAt} link={link} isLoading={isLoading} /> {tweetText} {twitterImageLayout} {twitterVideoLayout} {cardWidth > 145 && isQuoteTweet && innerTweet ? ( ) : null} {cardWidth > 145 ? ( {retweets} {likes} ) : null} ); } const TwitterBWithRef = React.forwardRef(TwitterB); export { TwitterBWithRef as TwitterB };