import {InfiniteScrollSentinel} from '@common/ui/infinite-scroll/infinite-scroll-sentinel'; import React, {Fragment} from 'react'; import {ChannelContentProps} from '@app/channels/channel-content'; import {useInfiniteChannelContent} from '@common/channels/requests/use-infinite-channel-content'; import {ChannelHeader} from '@app/channels/channel-header/channel-header'; import { ContentGridLayout, ContentGridProps, } from '@app/channels/content-grid/content-grid-layout'; import {ChannelContentGridItem} from '@app/channels/content-grid/channel-content-grid-item'; import {ChannelContentModel} from '@app/admin/channels/channel-content-config'; import {useChannelContent} from '@common/channels/requests/use-channel-content'; import clsx from 'clsx'; import { PaginationControls, PaginationControlsType, } from '@common/ui/navigation/pagination-controls'; interface ChannelContentGridProps extends ChannelContentProps { variant?: ContentGridProps['variant']; } export function ChannelContentGrid(props: ChannelContentGridProps) { const isInfiniteScroll = !props.isNested && (!props.channel.config.paginationType || props.channel.config.paginationType === 'infiniteScroll'); return ( {isInfiniteScroll ? ( ) : ( )} ); } function InfiniteScrollGrid({channel, variant}: ChannelContentGridProps) { const query = useInfiniteChannelContent(channel); return (
); } function PaginatedGrid({channel, variant, isNested}: ChannelContentGridProps) { const shouldPaginate = !isNested; const query = useChannelContent(channel, null, {paginate: shouldPaginate}); return (
{shouldPaginate && ( )} {shouldPaginate && ( )}
); } interface ContentProps { content: ChannelContentModel[] | undefined; variant: ContentGridProps['variant']; } export function ContentGrid({content = [], variant}: ContentProps) { return ( {content.map(item => ( ))} ); }