// External imports import * as React from "react" import { advancedObjectHelper } from "fawkes-server/build/support" // Internal imports import * as ce from "../../../../helpers/componentEnhancer" import * as stl from "../../../../store/types" import * as AdvancedRecordDetailsActions from "../../../../actions/advancedRecordDetails" import AdvancedTableBodyCell from "./advancedTableBodyCell" import AdvancedTableHeadCell from "./advancedTableHeadCell" import { AdvancedTablePropertyToDisplay } from "../../../../helpers/advancedTable" import Button from "../../button" export interface ParentProps { advancedObject: advancedObjectHelper.AdvancedObject advancedRecordList: stl.AdvancedRecordList propertiesToDisplay: Array loadList: ( queryOptions: advancedObjectHelper.AdvancedObjectGetRecordListOptions ) => void } interface StateProps {} interface DispatchProps { loadDetails: () => void } interface LocalState {} class AdvancedTableCore extends React.Component< ParentProps & StateProps & DispatchProps & ce.EnhancedPropsPrivate, LocalState > { componentDidMount() { this.props.loadDetails() } componentDidUpdate(prevProps, prevState) { if ( this.props.advancedRecordList.retrievedAt > prevProps.advancedRecordList.retrievedAt ) this.props.loadDetails() } render() { return ( {this.props.advancedRecordList.data.records.map(recordId => ( {this.props.propertiesToDisplay.map((fdof, fieldIndex) => { return ( ) })} ))}
{this.props.propertiesToDisplay.map(fdof => { const property = this.props.advancedRecordList.data.properties.find( srf => srf.name === fdof.propertyName ) return ( this.props.loadList({ orderBy, pageIndex: 0 }) } /> ) })}
) } } const stateMappings: ce.StateMappings = (s, props) => ({}) const dispatchMappings: ce.DispatchMappings = (d, props) => ({ loadDetails: () => { d( AdvancedRecordDetailsActions.select( props.module.api, props.advancedObject, props.advancedRecordList.data.records ) ) } }) export default ((): React.ComponentType => ce.enhance(AdvancedTableCore, { stateMappings, dispatchMappings }))()