diff options
Diffstat (limited to 'src/views/nodes/FieldView.tsx')
-rw-r--r-- | src/views/nodes/FieldView.tsx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/views/nodes/FieldView.tsx b/src/views/nodes/FieldView.tsx new file mode 100644 index 000000000..1c4164089 --- /dev/null +++ b/src/views/nodes/FieldView.tsx @@ -0,0 +1,31 @@ +import React = require("react") +import { DocumentFieldViewProps } from "./DocumentView"; +import { observer } from "mobx-react"; +import { computed } from "mobx"; +import { Field, Opt } from "../../fields/Field"; +import { TextField } from "../../fields/TextField"; +import { NumberField } from "../../fields/NumberField"; + +@observer +export class FieldView extends React.Component<DocumentFieldViewProps> { + @computed + get field(): Opt<Field> { + const { doc, fieldKey } = this.props; + return doc.GetField(fieldKey); + } + render() { + const field = this.field; + if (!field) { + return <p>{'<null>'}</p> + } + if (field instanceof TextField) { + return <p>{field.Data}</p> + } + else if (field instanceof NumberField) { + return <p>{field.Data}</p> + } else { + return <p>{field.GetValue}</p> + } + } + +}
\ No newline at end of file |