aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/collections/CollectionBaseView.tsx
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-04-03 20:12:06 -0400
committerTyler Schicke <tyler_schicke@brown.edu>2019-04-03 20:12:06 -0400
commitc10b9ca57e13c8de8b35f01e6c6ce82706319e4d (patch)
tree8309da408515969da55846b38a60aad724a30728 /src/client/views/collections/CollectionBaseView.tsx
parent5889bf159ee0a0f6567683b2bb8c2475feccf9ec (diff)
parentc406c8d123ce0aa9d63fb8a4dd90adfe83d2889d (diff)
Merge and it compiles
Diffstat (limited to 'src/client/views/collections/CollectionBaseView.tsx')
-rw-r--r--src/client/views/collections/CollectionBaseView.tsx23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/client/views/collections/CollectionBaseView.tsx b/src/client/views/collections/CollectionBaseView.tsx
index c9f640c4a..301467d99 100644
--- a/src/client/views/collections/CollectionBaseView.tsx
+++ b/src/client/views/collections/CollectionBaseView.tsx
@@ -21,8 +21,9 @@ export enum CollectionViewType {
export interface CollectionRenderProps {
addDocument: (document: Document, allowDuplicates?: boolean) => boolean;
removeDocument: (document: Document) => boolean;
- moveDocument: (document: Document, targetCollection: Document, addDocument: (document: Document) => void) => boolean;
+ moveDocument: (document: Document, targetCollection: Document, addDocument: (document: Document) => boolean) => boolean;
active: () => boolean;
+ onActiveChanged: (isActive: boolean) => void;
}
export interface CollectionViewProps extends FieldViewProps {
@@ -49,9 +50,15 @@ export class CollectionBaseView extends React.Component<CollectionViewProps> {
active = (): boolean => {
var isSelected = this.props.isSelected();
- var childSelected = SelectionManager.SelectedDocuments().some(view => view.props.ContainingCollectionView == this);
var topMost = this.props.isTopMost;
- return isSelected || childSelected || topMost;
+ return isSelected || this._isChildActive || topMost;
+ }
+
+ //TODO should this be observable?
+ private _isChildActive = false;
+ onActiveChanged = (isActive: boolean) => {
+ this._isChildActive = isActive;
+ this.props.onActiveChanged(isActive);
}
createsCycle(documentToAdd: Document, containerDocument: Document): boolean {
@@ -121,7 +128,7 @@ export class CollectionBaseView extends React.Component<CollectionViewProps> {
if (index !== -1) {
value.splice(index, 1)
- SelectionManager.DeselectAll()
+ // SelectionManager.DeselectAll()
ContextMenu.Instance.clearItems()
return true;
}
@@ -129,13 +136,12 @@ export class CollectionBaseView extends React.Component<CollectionViewProps> {
}
@action.bound
- moveDocument(doc: Document, targetCollection: Document, addDocument: (doc: Document) => void): boolean {
+ moveDocument(doc: Document, targetCollection: Document, addDocument: (doc: Document) => boolean): boolean {
if (this.props.Document === targetCollection) {
return false;
}
if (this.removeDocument(doc)) {
- addDocument(doc);
- return true;
+ return addDocument(doc);
}
return false;
}
@@ -145,7 +151,8 @@ export class CollectionBaseView extends React.Component<CollectionViewProps> {
addDocument: this.addDocument,
removeDocument: this.removeDocument,
moveDocument: this.moveDocument,
- active: this.active
+ active: this.active,
+ onActiveChanged: this.onActiveChanged,
}
return (
<div className={this.props.className || "collectionView-cont"} onContextMenu={this.props.onContextMenu} ref={this.props.contentRef}>