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 => (
))}
);
}