aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/DocumentView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/DocumentView.tsx')
-rw-r--r--src/client/views/nodes/DocumentView.tsx29
1 files changed, 11 insertions, 18 deletions
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 4e13b0ccb..444c300f3 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -89,6 +89,9 @@ export enum OpenWhere {
addRightKeyvalue = 'add:right:keyValue',
}
+export function returnEmptyDocViewList() {
+ return [] as DocumentView[];
+}
export interface DocFocusOptions {
willPan?: boolean; // determines whether to pan to target document
willZoomCentered?: boolean; // determines whether to zoom in on target document. if zoomScale is 0, this just centers the document
@@ -148,6 +151,7 @@ export interface DocComponentView {
* */
export interface DocumentViewSharedProps {
Document: Doc;
+ LayoutTemplateString?: string;
TemplateDataDocument?: Doc;
renderDepth: number;
scriptContext?: any; // can be assigned anything and will be passed as 'scriptContext' to any OnClick script that executes on this document
@@ -161,6 +165,7 @@ export interface DocumentViewSharedProps {
ignoreAutoHeight?: boolean;
disableBrushing?: boolean; // should highlighting for this view be disabled when same document in another view is hovered over.
CollectionFreeFormDocumentView?: () => CollectionFreeFormDocumentView;
+ containerViewPath?: () => DocumentView[];
fitContentsToBox?: () => boolean; // used by freeformview to fit its contents to its panel. corresponds to _freeform_fitContentsToBox property on a Document
isGroupActive?: () => string | undefined; // is this document part of a group that is active
setContentView?: (view: DocComponentView) => any;
@@ -206,7 +211,6 @@ export interface DocumentViewProps extends DocumentViewSharedProps {
hideLinkButton?: boolean;
hideCaptions?: boolean;
contentPointerEvents?: 'none' | 'all' | undefined; // pointer events allowed for content of a document view. eg. set to "none" in menuSidebar for sharedDocs so that you can select a document, but not interact with its contents
- LayoutTemplateString?: string;
dontCenter?: 'x' | 'y' | 'xy';
childHideDecorationTitle?: boolean;
childHideResizeHandles?: boolean;
@@ -218,7 +222,6 @@ export interface DocumentViewProps extends DocumentViewSharedProps {
NativeWidth?: () => number;
NativeHeight?: () => number;
LayoutTemplate?: () => Opt<Doc>;
- containerViewPath?: () => DocumentView[];
contextMenuItems?: () => { script: ScriptField; filter?: ScriptField; label: string; icon: string }[];
onClick?: () => ScriptField;
onDoubleClick?: () => ScriptField;
@@ -235,13 +238,13 @@ export interface DocumentViewProps extends DocumentViewSharedProps {
* these props correspond to things that the DocumentView creates and thus doesn't need to receive as a prop
*/
export interface DocumentViewInternalSharedProps {
- DocumentView: () => DocumentView;
select: (ctrlPressed: boolean, shiftPress?: boolean) => void;
isSelected: () => boolean;
+ docViewPath: () => DocumentView[];
NativeDimScaling?: () => number; // scaling the DocumentView does to transform its contents into its panel & needed by ScreenToLocal
}
export interface DocumentViewInternalProps extends DocumentViewProps, DocumentViewInternalSharedProps {
- docViewPath: () => DocumentView[];
+ docViewPublic: () => DocumentView;
}
@observer
@@ -276,7 +279,7 @@ export class DocumentViewInternal extends DocComponent<DocumentViewInternalProps
} // this makes mobx trace() statements more descriptive
public get DocumentView() {
- return this._props.DocumentView;
+ return this._props.docViewPublic;
}
public get ContentDiv() {
@@ -426,15 +429,6 @@ export class DocumentViewInternal extends DocComponent<DocumentViewInternalProps
}
}
- defaultRestoreTargetView = (docView: DocumentView, anchor: Doc, focusSpeed: number, options: DocFocusOptions) => {
- const targetMatch =
- Doc.AreProtosEqual(anchor, this.Document) || // anchor is this document, so anchor's properties apply to this document
- (DocCast(anchor)?.layout_unrendered && Doc.AreProtosEqual(DocCast(anchor.annotationOn), this.Document)) // the anchor is an layout_unrendered annotation on this document, so anchor properties apply to this document
- ? true
- : false;
- return targetMatch && PresBox.restoreTargetDocView(docView, anchor, focusSpeed) ? focusSpeed : undefined;
- };
-
// switches text input focus to the title bar of the document (and displays the title bar if it hadn't been)
setTitleFocus = () => {
if (!StrCast(this.layoutDoc._layout_showTitle)) this.layoutDoc._layout_showTitle = 'title';
@@ -923,8 +917,8 @@ export class DocumentViewInternal extends DocComponent<DocumentViewInternalProps
}}>
<DocumentContentsView
key={1}
- {...this._props}
- fieldKey=""
+ {...this.styleProps}
+ fieldKey={this.finalLayoutKey}
pointerEvents={this.contentPointerEvents}
setContentView={this.setContentView}
childFilters={this.childFilters}
@@ -935,7 +929,6 @@ export class DocumentViewInternal extends DocComponent<DocumentViewInternalProps
rootSelected={this.rootSelected}
onClick={this.onClickFunc}
setTitleFocus={this.setTitleFocus}
- layout_fieldKey={this.finalLayoutKey}
/>
{this.layoutDoc.layout_hideAllLinks ? null : this.allLinkEndpoints}
</div>
@@ -1699,7 +1692,7 @@ export class DocumentView extends ObservableReactComponent<DocumentViewProps> {
}}>
<DocumentViewInternal
{...this._props}
- DocumentView={this.selfView}
+ docViewPublic={this.selfView}
docViewPath={this.docViewPath}
PanelWidth={this.PanelWidth}
PanelHeight={this.PanelHeight}