aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/views/CollectionMulticolumnView.tsx18
-rw-r--r--src/client/views/collections/CollectionView.tsx1
2 files changed, 11 insertions, 8 deletions
diff --git a/src/client/views/CollectionMulticolumnView.tsx b/src/client/views/CollectionMulticolumnView.tsx
index da5b18155..ea1f0c189 100644
--- a/src/client/views/CollectionMulticolumnView.tsx
+++ b/src/client/views/CollectionMulticolumnView.tsx
@@ -1,11 +1,12 @@
import { observer } from 'mobx-react';
-import { makeInterface } from '../../new_fields/Schema';
+import { makeInterface, listSpec } from '../../new_fields/Schema';
import { documentSchema } from '../../new_fields/documentSchemas';
import { CollectionSubView, SubCollectionViewProps } from './collections/CollectionSubView';
import { DragManager } from '../util/DragManager';
import * as React from "react";
-import { Doc } from '../../new_fields/Doc';
-import { NumCast } from '../../new_fields/Types';
+import { Doc, DocListCast } from '../../new_fields/Doc';
+import { NumCast, Cast } from '../../new_fields/Types';
+import { List } from '../../new_fields/List';
type MulticolumnDocument = makeInterface<[typeof documentSchema]>;
const MulticolumnDocument = makeInterface(documentSchema);
@@ -13,11 +14,12 @@ const MulticolumnDocument = makeInterface(documentSchema);
@observer
export default class CollectionMulticolumnView extends CollectionSubView(MulticolumnDocument) {
private _dropDisposer?: DragManager.DragDropDisposer;
-
- constructor(props: Readonly<SubCollectionViewProps>) {
- super(props);
+ private get configuration() {
const { Document } = this.props;
- Document.multicolumnData = new Doc();
+ if (!Document.multicolumnData) {
+ Document.multicolumnData = new List<Doc>();
+ }
+ return DocListCast(this.Document.multicolumnData);
}
protected createDropTarget = (ele: HTMLDivElement) => {
@@ -33,7 +35,7 @@ export default class CollectionMulticolumnView extends CollectionSubView(Multico
return (
<div className={"collectionMulticolumnView_outer"}>
<div className={"collectionMulticolumnView_contents"}>
- {this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).map(({ layout, data }) => {
+ {this.configuration.map(config => ).filter(pair => this.isCurrent(pair.layout)).map(({ layout, data }) => {
})}
</div>
diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx
index 26df89796..21371dd39 100644
--- a/src/client/views/collections/CollectionView.tsx
+++ b/src/client/views/collections/CollectionView.tsx
@@ -218,6 +218,7 @@ export class CollectionView extends Touchable<FieldViewProps> {
}, icon: "ellipsis-v"
});
subItems.push({ description: "Staff", event: () => this.props.Document.viewType = CollectionViewType.Staff, icon: "music" });
+ subItems.push({ description: "Multicolumn", event: () => this.props.Document.viewType = CollectionViewType.Multicolumn, icon: "columns" });
subItems.push({ description: "Masonry", event: () => this.props.Document.viewType = CollectionViewType.Masonry, icon: "columns" });
subItems.push({ description: "Pivot", event: () => this.props.Document.viewType = CollectionViewType.Pivot, icon: "columns" });
switch (this.props.Document.viewType) {