import * as React from 'react'; import { IObservableArray, computed } from 'mobx'; import { PageItems } from 'tonva-tools'; import {List} from './index'; export abstract class ListBase { protected list: List; constructor(list: List) { this.list = list; } get isPaged():boolean { let items = this.list.props.items; return (items !== null && items !== undefined && Array.isArray(items) === false); } get items():any[]|IObservableArray { let items = this.list.props.items; if (items === null) return null; if (items === undefined) return undefined; if (Array.isArray(items) === true) return items as IObservableArray; else return (items as PageItems).items; } @computed get loading():boolean { let items = this.list.props.items; if (items === null) return false; if (items === undefined) return true; let pageItems = items as PageItems; if (pageItems.items === undefined) return false; return pageItems.loading; } get selectedItems():any[] { return; } updateProps(nextProps:any) {} abstract render(item:any, index:number):JSX.Element; protected renderContent(item:any, index:number) { let {render} = this.list.props.item; if (render === undefined) return
{JSON.stringify(item)}
; return render(item, index); } }