import * as React from "react"; import styled, { ThemeProvider } from "styled-components/macro"; import { Query } from "react-apollo"; import { LoadingMessage, Payments, PaymentsModal, CivilContext, ICivilContext, RENDER_CONTEXT, DEFAULT_BUTTON_THEME, DEFAULT_CHECKBOX_THEME, } from "@joincivil/components"; import { StoryDetails } from "./StoryDetails"; import { StoryNewsroomDetails } from "./StoryNewsroomDetails"; import { StoryModal } from "./StoryModal"; import { StoryBoostData } from "./types"; import { STORY_BOOST } from "./queries"; export interface StoryBoostProps { postId: string; payment?: boolean; newsroom?: boolean; isListingPageFeed?: boolean; openStoryNewsroomDetails(): void; openStoryDetails(): void; openPayments(): void; closeStoryBoost(): void; handlePaymentSuccess(): void; } export const StoryBoost: React.FunctionComponent = props => { const id = props.postId; const isStoryModalOpen = props.payment || props.newsroom ? false : true; const isStoryNewsroomModalOpen = props.newsroom || false; const isPaymentsModalOpen = props.payment || false; const civilContext = React.useContext(CivilContext); civilContext.renderContext = RENDER_CONTEXT.DAPP; const theme = { ...DEFAULT_CHECKBOX_THEME, ...DEFAULT_BUTTON_THEME, renderContext: RENDER_CONTEXT.DAPP, }; return ( {({ loading, error, data, refetch }) => { if (loading) { return Loading Boost; } else if (error || !data || !data.postsGet) { console.error("error loading Story Boost data. error:", error, "data:", data); return "Error loading Story Boost."; } const storyBoostData = data.postsGet as StoryBoostData; const activeChallenge = storyBoostData.channel.listing.challenge && storyBoostData.channel.listing.challenge.challengeID ? true : false; return ( <> {!props.isListingPageFeed && ( )} ); }} ); };