import * as React from "react"; import { Story } from "./Story"; import { StoryFeedItemWrap, StoryElementsFlex } from "./StoryFeedStyledComponents"; import { StoryNewsroomData, OpenGraphData } from "./types"; import { StoryNewsroomStatus, ContributorCount, ContributorData, CommentsCount, FeatureFlag, } from "@joincivil/components"; import { PaymentButton, ShareButton, ShareStory, SharePanel } from "@joincivil/elements"; export interface StoryFeedItemProps { postId: string; activeChallenge: boolean; newsroom: StoryNewsroomData; openGraphData: OpenGraphData; displayedContributors: ContributorData[]; totalContributors: number; numComments: number; isListingPageFeed?: boolean; openStoryNewsroomDetails(postId: string): void; openStoryDetails(postId: string): void; openPayments(postId: string): void; } export interface StoryFeedItemStates { isShareModalOpen: boolean; } export class StoryFeedItem extends React.Component { public constructor(props: any) { super(props); this.state = { isShareModalOpen: false, }; } public render(): JSX.Element { return ( <> {!this.props.isListingPageFeed && ( this.props.openStoryNewsroomDetails(this.props.postId)} /> )} this.props.openStoryDetails(this.props.postId)} /> this.props.openPayments(this.props.postId)} /> ); } private openShare = () => { this.setState({ isShareModalOpen: true }); }; private handleCloseShare = () => { this.setState({ isShareModalOpen: false }); }; }