diff options
| author | Sam Wilkins <samwilkins333@gmail.com> | 2020-01-18 17:33:24 -0500 |
|---|---|---|
| committer | Sam Wilkins <samwilkins333@gmail.com> | 2020-01-18 17:33:24 -0500 |
| commit | ca7faa46af2bcbc6651891c8f1430dedea55b8be (patch) | |
| tree | 1bbfb0ae75f5f7cc4457a5ff0acb6e8d5e29ff43 /src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx | |
| parent | 9e90f5cb1d481889def9fe22b7e5d152777ea95d (diff) | |
switched mcview labels to editable views
Diffstat (limited to 'src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx')
| -rw-r--r-- | src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx b/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx index e33d4c169..b394fed62 100644 --- a/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx +++ b/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx @@ -3,6 +3,8 @@ import { observer } from "mobx-react"; import { computed } from "mobx"; import { Doc } from "../../../../new_fields/Doc"; import { NumCast, StrCast, BoolCast } from "../../../../new_fields/Types"; +import { EditableView } from "../../EditableView"; +import { WidthUnit } from "./CollectionMulticolumnView"; interface WidthLabelProps { layout: Doc; @@ -16,9 +18,35 @@ export default class WidthLabel extends React.Component<WidthLabelProps> { @computed private get contents() { const { layout, decimals } = this.props; - const magnitude = +NumCast(layout.widthMagnitude).toFixed(decimals ?? 3); - const unit = StrCast(layout.widthUnit); - return <span className={"display"}>{magnitude} {unit}</span>; + const getUnit = () => StrCast(layout.widthUnit); + const getMagnitude = () => String(+NumCast(layout.widthMagnitude).toFixed(decimals ?? 3)); + return ( + <div className={"label-wrapper"}> + <EditableView + GetValue={getMagnitude} + SetValue={value => { + const converted = Number(value); + if (!isNaN(converted) && converted > 0) { + layout.widthMagnitude = converted; + return true; + } + return false; + }} + contents={getMagnitude()} + /> + <EditableView + GetValue={getUnit} + SetValue={value => { + if (Object.values(WidthUnit).includes(value)) { + layout.widthUnit = value; + return true; + } + return false; + }} + contents={getUnit()} + /> + </div> + ); } render() { |
