aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/DocumentView.tsx
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2024-01-22 21:45:28 -0500
committerbobzel <zzzman@gmail.com>2024-01-22 21:45:28 -0500
commit001127c07f95173d7036db19d07dcfb1135f3caa (patch)
tree6489446110038835536f1916791cfe6faa793bc3 /src/client/views/nodes/DocumentView.tsx
parent953a298b49c2345741fd7989f9b62cadd76eea52 (diff)
fixed schema rows to render, fix for resizing docs from left side. all locking docs in non freeform view. fix for labelBox with multiple rows to keep top rows. cleaned up docViewPath/containerViewPath &
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}