import * as React from "react"; import { CivilContext, ICivilContext, Contributors, ContributorCount, ContributorData, StoryNewsroomStatus, storyPlaceholderImgUrl, FeatureFlag, } from "@joincivil/components"; import { PaymentButton, ShareButton, ShareStory, SharePanel, OpenInNewIcon, colors } from "@joincivil/elements"; import { getTimeSince } from "@joincivil/utils"; import { OpenGraphData } from "./types"; import { StoryLink, StoryTitle, TimeStamp, TimeStampDot, StoryDetailsFlex, StoryDetailsFlexLeft, StoryDescription, StoryPostedAt, StoryImgWide, StoryDetailsFullBleedHeader, StoryDetailsContent, StoryDetailsFooter, StoryDetailsFooterFlex, BlueLinkBtn, } from "./StoryFeedStyledComponents"; import { PostComments } from "./PostComments"; export interface StoryDetailsProps { postId: string; activeChallenge: boolean; createdAt: string; newsroomName: string; title: string; url: string; openGraphData: OpenGraphData; displayedContributors: ContributorData[]; sortedContributors: ContributorData[]; totalContributors: number; children: any; numChildren: any; isListingPageFeed?: boolean; handlePayments(): void; handleOpenNewsroom(): void; } export const StoryDetails: React.FunctionComponent = props => { const context = React.useContext(CivilContext); const [shareModalOpen, setShareModalOpen] = React.useState(false); const { openGraphData } = props; return ( <> {openGraphData.images ? : } context.fireAnalyticsEvent("story boost", "story details: story title clicked", props.postId) } href={openGraphData.url} target="_blank" > {openGraphData.title} setShareModalOpen(true)} textBottom={true}> {!props.isListingPageFeed && ( )} {openGraphData.article && openGraphData.article.published_time && ( · {getTimeSince(openGraphData.article.published_time)} )} {openGraphData.description && {openGraphData.description}} Posted on Civil {getTimeSince(props.createdAt)} {props.totalContributors !== 0 ? ( ) : ( <> )} context.fireAnalyticsEvent("story boost", "story details: read more clicked", props.postId)} href={openGraphData.url} target="_blank" > Read More setShareModalOpen(false)}> ); };