import * as React from 'react'; import * as _ from 'lodash'; import { Label, Form } from 'semantic-ui-react'; const { Flex, Box } = require('reflexbox'); import { Input, Dropdown, Image } from 'semantic-ui-react'; class LexSingleInput extends React.Component { public render() { return (
{this.props.label} {this.props.children}
); } } function changedLabel(changed: boolean, text: string) { let labelClass = changed ? 'olive' : ''; return ( ); } function textInput(params: any) { let { field, sh, value, changed } = params; return ( { sh(d.value); }} value={value} placeholder={field} type="text" dir="auto" style={{ width: '10em' }} /> ); } function selectInput(params: any) { let { field, sh, value, options, langSelOpts, changed } = params; let staticOpts = options; let fieldOpts = _.get(langSelOpts, field, []); let selOpts = staticOpts ? staticOpts : fieldOpts; let dropOptions = selOpts.map((k: any, i: any, c: any) => { return { key: i, value: k, text: k }; }); return ( { sh(d.value); }} value={value} compact={true} selection={true} search={true} style={{ width: '10em' }} /> ); } function imagePreview(params: any) { let { field, value, changed } = params; let imageSrc = '/png/' + value; return value !== '' ? ( ) : textInput(params); } function listInput(params: any) { let { field, sh, langSelOpts, value, changed } = params; let fieldOpts = _.get(langSelOpts, field, []); let renderLabel = (label: any) => ({ content: `${label.value}`, }); let dropOptions = fieldOpts.map((k: any, i: any, c: any) => { return { key: i, value: k, text: k, }; }); return ( { sh(d.value); }} value={value} compact={true} selection={true} search={true} multiple={true} fluid={true} style={{ width: '10em' }} renderLabel={renderLabel} /> ); } export function componentForType(type: string, params: any) { switch (type) { case 'text': { return textInput(params); } case 'select': { return selectInput(params); } case 'preview': { return imagePreview(params); } case 'list': { // return (); return listInput(params); } default: { // console.log('type discarded :', type); // console.log('values discarded :', fieldMeta.get(li)); return null; } } }