aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/views/collections/collectionSchema/CollectionSchemaView.tsx12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx b/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
index bdf04f47b..033bc74d2 100644
--- a/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
+++ b/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
@@ -1,7 +1,7 @@
/* eslint-disable no-restricted-syntax */
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { IconButton, Popup, PopupTrigger, Size, Type } from 'browndash-components';
-import { ObservableMap, action, autorun, computed, makeObservable, observable, observe, override, runInAction } from 'mobx';
+import { IReactionDisposer, ObservableMap, action, autorun, computed, makeObservable, observable, observe, override, reaction, runInAction } from 'mobx';
import { observer } from 'mobx-react';
import * as React from 'react';
import { returnEmptyDoclist, returnEmptyString, returnFalse, returnIgnore, returnNever, returnTrue, setupMoveUpEvents, smoothScroll } from '../../../../ClientUtils';
@@ -38,6 +38,7 @@ import { CollectionView } from '../CollectionView';
import { listSpec } from '../../../../fields/Schema';
import { GetEffectiveAcl } from '../../../../fields/util';
import { ContextMenuProps } from '../../ContextMenuItem';
+import { truncate } from 'lodash';
const { SCHEMA_NEW_NODE_HEIGHT } = require('../../global/globalCssVariables.module.scss'); // prettier-ignore
@@ -56,6 +57,7 @@ const defaultColumnKeys: string[] = ['title', 'type', 'author', 'author_date', '
@observer
export class CollectionSchemaView extends CollectionSubView() {
private _keysDisposer: any;
+ private _disposers: { [name: string]: IReactionDisposer } = {};
private _previewRef: HTMLDivElement | null = null;
private _makeNewColumn: boolean = false;
private _documentOptions: DocumentOptions = new DocumentOptions();
@@ -96,7 +98,7 @@ export class CollectionSchemaView extends CollectionSubView() {
@observable _colBeingDragged: boolean = false;
@observable _colKeysFiltered: boolean = false;
@observable _cellTags: ObservableMap = new ObservableMap<Doc, Array<string>>();
- @observable _docs: Doc[] = this.childDocs;
+ @observable _docs: Doc[] = [];
// target HTMLelement portal for showing a popup menu to edit cell values.
public get MenuTarget() {
@@ -186,10 +188,16 @@ export class CollectionSchemaView extends CollectionSubView() {
},
true
);
+ this._disposers.docdata = reaction(
+ () => DocListCast(this.dataDoc[this.fieldKey]),
+ (docs) => this._docs = docs,
+ {fireImmediately: true}
+ )
}
componentWillUnmount() {
this._keysDisposer?.();
+ Object.values(this._disposers).forEach(disposer => disposer?.());
document.removeEventListener('keydown', this.onKeyDown);
}