// External imports import * as React from "react" import { AdvancedDataType, AdvancedData, Varchar, Boolean, DateTime, Float, Integer, StupidDate, Text, Lookup, advancedObjectHelper } from "fawkes-server/build/support" // Internal imports import * as ce from "../../../../helpers/componentEnhancer" import AdvancedTableBodyCellBoolean from "./bodyCells/advancedTableBodyCellBoolean" import AdvancedTableBodyCellVarchar from "./bodyCells/advancedTableBodyCellVarchar" import AdvancedTableBodyCellText from "./bodyCells/advancedTableBodyCellText" import AdvancedTableBodyCellInteger from "./bodyCells/advancedTableBodyCellInteger" import AdvancedTableBodyCellFloat from "./bodyCells/advancedTableBodyCellFloat" import AdvancedTableBodyCellDateTime from "./bodyCells/advancedTableBodyCellDateTime" import AdvancedTableBodyCellStupidDate from "./bodyCells/advancedTableBodyCellStupidDate" import AdvancedTableBodyCellLookup from "./bodyCells/advancedTableBodyCellLookup" import { AdvancedTablePropertyToDisplay } from "../../../../helpers/advancedTable" import { findAdvancedRecordProperty } from "../../../../helpers/stateTools" export interface ParentProps { advancedObject: advancedObjectHelper.AdvancedObject advancedRecordId: string listRetrievedAt: Date propertyName: string displayProperties: AdvancedTablePropertyToDisplay } interface StateProps { value: AdvancedData } interface DispatchProps {} interface LocalState {} class AdvancedTableBodyCell extends React.Component< ParentProps & StateProps & DispatchProps & ce.EnhancedPropsPrivate, LocalState > { render() { if (!this.props.value) return switch (this.props.value.type) { case AdvancedDataType.Varchar: return ( ) case AdvancedDataType.Text: return case AdvancedDataType.Integer: return ( ) case AdvancedDataType.Float: return ( ) case AdvancedDataType.Boolean: return ( ) case AdvancedDataType.DateTime: return ( ) case AdvancedDataType.StupidDate: return ( ) case AdvancedDataType.Lookup: return ( ) } } } const stateMappings: ce.StateMappings = (s, props) => ({ value: findAdvancedRecordProperty( s.advancedRecordDetails, props.advancedObject.objectName, props.advancedRecordId, props.propertyName, props.listRetrievedAt ) }) const dispatchMappings: ce.DispatchMappings = (d, props) => ({}) export default ((): React.ComponentType => ce.enhance(AdvancedTableBodyCell, { stateMappings, dispatchMappings }))()