import { computed } from 'mobx'; import { observer } from 'mobx-react'; import * as React from 'react'; import { Doc } from '../../../../fields/Doc'; import { BoolCast, NumCast, StrCast } from '../../../../fields/Types'; import { EditableView } from '../../EditableView'; import { DimUnit } from './CollectionMulticolumnView'; interface WidthLabelProps { layout: Doc; collectionDoc: Doc; } @observer export default class WidthLabel extends React.Component { @computed private get contents() { const { layout } = this.props; const getUnit = () => StrCast(layout.dimUnit); const getMagnitude = () => String(+NumCast(layout.dimMagnitude).toFixed(3)); return (
{ const converted = Number(value); if (!isNaN(converted) && converted > 0) { layout.dimMagnitude = converted; return true; } return false; }} contents={getMagnitude()} /> { if (Object.values(DimUnit).includes(value)) { layout.dimUnit = value; return true; } return false; }} contents={getUnit()} />
); } render() { return BoolCast(this.props.collectionDoc.showWidthLabels) ? this.contents : null; } }