diff options
Diffstat (limited to 'src/views/nodes')
| -rw-r--r-- | src/views/nodes/CollectionFreeFormDocumentView.tsx | 4 | ||||
| -rw-r--r-- | src/views/nodes/DocumentView.tsx | 14 | ||||
| -rw-r--r-- | src/views/nodes/FieldView.tsx | 7 | ||||
| -rw-r--r-- | src/views/nodes/FormattedTextBox.tsx | 14 | ||||
| -rw-r--r-- | src/views/nodes/ImageBox.tsx | 7 |
5 files changed, 28 insertions, 18 deletions
diff --git a/src/views/nodes/CollectionFreeFormDocumentView.tsx b/src/views/nodes/CollectionFreeFormDocumentView.tsx index ebe6d411c..08068b384 100644 --- a/src/views/nodes/CollectionFreeFormDocumentView.tsx +++ b/src/views/nodes/CollectionFreeFormDocumentView.tsx @@ -10,6 +10,7 @@ import { ContextMenu } from "../ContextMenu"; import "./NodeView.scss"; import React = require("react"); import { DocumentView, DocumentViewProps } from "./DocumentView"; +import { WAITING } from "../../fields/Field"; @observer @@ -84,7 +85,8 @@ export class CollectionFreeFormDocumentView extends DocumentView { @computed get active(): boolean { - return SelectionManager.IsSelected(this) || this.props.ContainingCollectionView === undefined || this.props.ContainingCollectionView!.active; + return SelectionManager.IsSelected(this) || this.props.ContainingCollectionView === undefined || + (this.props.ContainingCollectionView != WAITING && this.props.ContainingCollectionView!.active); } @computed diff --git a/src/views/nodes/DocumentView.tsx b/src/views/nodes/DocumentView.tsx index a1262e2ba..334ea1cb2 100644 --- a/src/views/nodes/DocumentView.tsx +++ b/src/views/nodes/DocumentView.tsx @@ -1,7 +1,7 @@ import { action, computed } from "mobx"; import { observer } from "mobx-react"; import { Document } from "../../fields/Document"; -import { Opt } from "../../fields/Field"; +import { Opt, WAITING } from "../../fields/Field"; import { Key, KeyStore } from "../../fields/Key"; import { ListField } from "../../fields/ListField"; import { NumberField } from "../../fields/NumberField"; @@ -49,7 +49,8 @@ export class DocumentView extends React.Component<DocumentViewProps> { // @computed public get ScalingToScreenSpace(): number { - if (this.props.ContainingCollectionView != undefined && this.props.ContainingCollectionView.props.ContainingDocumentView != undefined) { + if (this.props.ContainingCollectionView != undefined && this.props.ContainingCollectionView != WAITING && + this.props.ContainingCollectionView.props.ContainingDocumentView != undefined && this.props.ContainingCollectionView.props.ContainingDocumentView != WAITING) { let ss = this.props.ContainingCollectionView.props.DocumentForCollection.GetFieldValue(KeyStore.Scale, NumberField, Number(1)); return this.props.ContainingCollectionView.props.ContainingDocumentView.ScalingToScreenSpace * ss; } @@ -62,7 +63,8 @@ export class DocumentView extends React.Component<DocumentViewProps> { public TransformToLocalPoint(screenX: number, screenY: number) { // if this collection view is nested within another collection view, then // first transform the screen point into the parent collection's coordinate space. - let { LocalX: parentX, LocalY: parentY } = this.props.ContainingCollectionView != undefined && this.props.ContainingCollectionView.props.ContainingDocumentView != undefined ? + let { LocalX: parentX, LocalY: parentY } = this.props.ContainingCollectionView != undefined && this.props.ContainingCollectionView != WAITING && + this.props.ContainingCollectionView.props.ContainingDocumentView != undefined && this.props.ContainingCollectionView.props.ContainingDocumentView != WAITING ? this.props.ContainingCollectionView.props.ContainingDocumentView.TransformToLocalPoint(screenX, screenY) : { LocalX: screenX, LocalY: screenY }; let ContainerX: number = parentX - COLLECTION_BORDER_WIDTH; @@ -111,8 +113,8 @@ export class DocumentView extends React.Component<DocumentViewProps> { // if this collection view is nested within another collection view, then // first transform the local point into the parent collection's coordinate space. - let containingDocView = this.props.ContainingCollectionView != undefined ? this.props.ContainingCollectionView.props.ContainingDocumentView : undefined; - if (containingDocView != undefined) { + let containingDocView = this.props.ContainingCollectionView != undefined && this.props.ContainingCollectionView != WAITING ? this.props.ContainingCollectionView.props.ContainingDocumentView : undefined; + if (containingDocView != undefined && containingDocView != WAITING) { let ss = containingDocView.props.Document.GetFieldValue(KeyStore.Scale, NumberField, Number(1)); let panxx = containingDocView.props.Document.GetFieldValue(KeyStore.PanX, NumberField, Number(0)) + COLLECTION_BORDER_WIDTH * ss; let panyy = containingDocView.props.Document.GetFieldValue(KeyStore.PanY, NumberField, Number(0)) + COLLECTION_BORDER_WIDTH * ss; @@ -134,7 +136,7 @@ export class DocumentView extends React.Component<DocumentViewProps> { bindings.DocumentView = this; for (const key of this.layoutFields) { let field = doc.GetField(key); - if (field) { + if (field && field != WAITING) { bindings[key.Name] = field.GetValue(); } } diff --git a/src/views/nodes/FieldView.tsx b/src/views/nodes/FieldView.tsx index 2a2355a23..7c81ac55e 100644 --- a/src/views/nodes/FieldView.tsx +++ b/src/views/nodes/FieldView.tsx @@ -2,7 +2,7 @@ import React = require("react") import { Document } from "../../fields/Document"; import { observer } from "mobx-react"; import { computed } from "mobx"; -import { Field, Opt } from "../../fields/Field"; +import { Field, Opt, WAITING } from "../../fields/Field"; import { TextField } from "../../fields/TextField"; import { NumberField } from "../../fields/NumberField"; import { RichTextField } from "../../fields/RichTextField"; @@ -47,9 +47,10 @@ export class FieldView extends React.Component<FieldViewProps> { } else if (field instanceof NumberField) { return <p>{field.Data}</p> - } else { + } else if (field != WAITING) { return <p>{field.GetValue}</p> - } + } else + return <p> {"Waiting for server..."} </p> } }
\ No newline at end of file diff --git a/src/views/nodes/FormattedTextBox.tsx b/src/views/nodes/FormattedTextBox.tsx index 9c4b24226..f0385c096 100644 --- a/src/views/nodes/FormattedTextBox.tsx +++ b/src/views/nodes/FormattedTextBox.tsx @@ -5,7 +5,7 @@ import { keymap } from "prosemirror-keymap"; import { schema } from "prosemirror-schema-basic"; import { EditorState, Transaction } from "prosemirror-state"; import { EditorView } from "prosemirror-view"; -import { Opt } from "../../fields/Field"; +import { Opt, WAITING } from "../../fields/Field"; import { SelectionManager } from "../../util/SelectionManager"; import "./FormattedTextBox.scss"; import React = require("react") @@ -46,7 +46,7 @@ export class FormattedTextBox extends React.Component<FieldViewProps> { } dispatchTransaction = (tx: Transaction) => { - if (this._editorView) { + if (this._editorView && this._editorView != WAITING) { const state = this._editorView.state.apply(tx); this._editorView.updateState(state); const { doc, fieldKey } = this.props; @@ -67,7 +67,7 @@ export class FormattedTextBox extends React.Component<FieldViewProps> { }; let field = doc.GetFieldT(fieldKey, RichTextField); - if (field) { + if (field && field != WAITING) { // bcz: don't think this works state = EditorState.fromJSON(config, JSON.parse(field.Data)); } else { state = EditorState.create(config); @@ -81,19 +81,19 @@ export class FormattedTextBox extends React.Component<FieldViewProps> { this._reactionDisposer = reaction(() => { const field = this.props.doc.GetFieldT(this.props.fieldKey, RichTextField); - return field ? field.Data : undefined; + return field && field != WAITING ? field.Data : undefined; }, (field) => { - if (field && this._editorView) { + if (field && this._editorView && this._editorView != WAITING) { this._editorView.updateState(EditorState.fromJSON(config, JSON.parse(field))); } }) } componentWillUnmount() { - if (this._editorView) { + if (this._editorView && this._editorView != WAITING) { this._editorView.destroy(); } - if (this._reactionDisposer) { + if (this._reactionDisposer && this._reactionDisposer != WAITING) { this._reactionDisposer(); } } diff --git a/src/views/nodes/ImageBox.tsx b/src/views/nodes/ImageBox.tsx index dd201f20f..65a3b7437 100644 --- a/src/views/nodes/ImageBox.tsx +++ b/src/views/nodes/ImageBox.tsx @@ -7,6 +7,7 @@ import React = require("react") import { ImageField } from '../../fields/ImageField'; import { FieldViewProps, FieldView } from './FieldView'; import { CollectionFreeFormDocumentView } from './CollectionFreeFormDocumentView'; +import { WAITING } from '../../fields/Field'; interface ImageBoxState { photoIndex: number, @@ -62,7 +63,11 @@ export class ImageBox extends React.Component<FieldViewProps, ImageBoxState> { let field = this.props.doc.GetFieldT(this.props.fieldKey, ImageField); let path = ""; if (field) { - path = field.Data.href; + if (field === WAITING) { + path = "https://image.flaticon.com/icons/svg/66/66163.svg" + } else { + path = field.Data.href; + } } const images = [path,]; var lightbox = () => { |
