import { Iterable } from 'ix'; import * as React from 'react'; import { Observable } from 'rxjs'; import { BaseView, BaseViewProps } from '../../React'; import { PanelItemContext, PanelItemProps, PanelRenderProps } from '../Panel'; import { ItemsPresenter, ItemsPresenterTemplateProps } from './ItemsPresenter'; import { ItemsViewModel } from './ItemsViewModel'; export interface ItemsProps< T = {}, TContext extends PanelItemContext = PanelItemContext > extends ItemsPresenterTemplateProps, PanelItemProps, PanelRenderProps {} export interface ItemsViewProps extends BaseViewProps>, ItemsProps { fill?: boolean; } export class ItemsView extends BaseView> { public static displayName = 'ItemsView'; updateOn(viewModel: Readonly>) { return [viewModel.getItemsSourceProperty().changed]; } render() { const { className, children, props, rest } = this.restProps(x => { const { viewTemplate, itemsPanelTemplate, itemTemplate, itemClassName, itemStyle, itemProps, compact, emptyContent, fill, } = x; return { viewTemplate, itemsPanelTemplate, itemTemplate, itemClassName, itemStyle, itemProps, compact, emptyContent, fill, }; }); return (
{children}
); } }