import React, {Component} from 'react'; import styled from 'styled-components'; import * as _ from 'lodash'; import {Button, Dialog, Intent} from '@blueprintjs/core'; import MasterDetailView, {MasterDetailViewProps} from './MasterDetailView'; import GenericDialog from "./GenericDialog"; import {EntityInfoKey, Entity, EntityRenderProps} from 'react-entity-plane'; const OuterContainer = styled.div` > div { width: 900px; } `; const Container = styled.div` display: grid; `; const PickerDetailContainer = styled.div` display: grid; grid-template-rows: 1fr auto; `; const PickerDetailFooterContainer = styled.div` display: grid; grid-template-columns: 1fr auto auto; grid-gap: 8px; `; export interface EntityPickerProps { name?: EntityInfoKey; relation?: string; onPick: (picked: object) => void value: object isOpen: boolean onClose: () => void renderMasterView: MasterDetailViewProps['renderMasterView'] renderDetailView?: MasterDetailViewProps['renderDetailView'] } class EntityPicker extends Component { componentDidUpdate(): void { } render() { return {(entity: EntityRenderProps) => { let display = entity.entityInfo.display; const handleClose = () => { this.props.onClose(); }; const handleSelect = (item) => { this.props.onPick(item); }; return {this.props.children} this.props.renderMasterView({entity})} renderDetailView={({entity}) => { return {this.props.renderDetailView && this.props.renderDetailView({entity})} ; }} /> ; }} ; } } export default EntityPicker;