import React, { useState } from 'react'; import { ApiUrlConsumer, LinksConsumer } from '../utils/contexts/'; import { PageStore } from '../utils/stores/'; import { MediaListRow } from '../components/MediaListRow'; import { MediaMultiListWrapper } from '../components/MediaMultiListWrapper'; import { ItemListAsync } from '../components/item-list/ItemListAsync.jsx'; import { InlineSliderItemListAsync } from '../components/item-list/InlineSliderItemListAsync.jsx'; import { Page } from './Page'; const EmptyMedia: React.FC = ({}) => { return ( {(links) => ( Welcome to MediaCMS! Start uploading media and sharing your work! UPLOAD MEDIA )} ); }; interface HomePageProps { id?: string; latest_title: string; featured_title: string; recommended_title: string; latest_view_all_link: boolean; featured_view_all_link: boolean; recommended_view_all_link: boolean; } export const HomePage: React.FC = ({ id = 'home', featured_title = PageStore.get('config-options').pages.home.sections.featured.title, recommended_title = PageStore.get('config-options').pages.home.sections.recommended.title, latest_title = PageStore.get('config-options').pages.home.sections.latest.title, latest_view_all_link = false, featured_view_all_link = true, recommended_view_all_link = true, }) => { const [zeroMedia, setZeroMedia] = useState(false); const [visibleLatest, setVisibleLatest] = useState(false); const [visibleFeatured, setVisibleFeatured] = useState(false); const [visibleRecommended, setVisibleRecommended] = useState(false); const onLoadLatest = (length: number) => { setVisibleLatest(0 < length); setZeroMedia(0 === length); }; const onLoadFeatured = (length: number) => { setVisibleFeatured(0 < length); }; const onLoadRecommended = (length: number) => { setVisibleRecommended(0 < length); }; return ( {(links) => ( {(apiUrl) => ( {PageStore.get('config-enabled').pages.featured && PageStore.get('config-enabled').pages.featured.enabled && ( )} {PageStore.get('config-enabled').pages.recommended && PageStore.get('config-enabled').pages.recommended.enabled && ( )} {zeroMedia && } )} )} ); };