diff options
| author | Mohammad Amoush <mohammad_amoush@brown.edu> | 2019-07-03 18:30:09 -0400 |
|---|---|---|
| committer | Mohammad Amoush <mohammad_amoush@brown.edu> | 2019-07-03 18:30:09 -0400 |
| commit | 118ca303bb18648451fe9c349c79594833d95001 (patch) | |
| tree | cd324c5f650773170923e66adbbc081eba9fae07 /src | |
| parent | 66e4851757894dcb43fb9baada0fa21fbd43164a (diff) | |
Reordering Done, Back-up protecting should be added
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/views/presentationview/PresentationElement.tsx | 51 | ||||
| -rw-r--r-- | src/client/views/presentationview/PresentationView.scss | 8 |
2 files changed, 48 insertions, 11 deletions
diff --git a/src/client/views/presentationview/PresentationElement.tsx b/src/client/views/presentationview/PresentationElement.tsx index 79a27b4e9..23031f02c 100644 --- a/src/client/views/presentationview/PresentationElement.tsx +++ b/src/client/views/presentationview/PresentationElement.tsx @@ -98,6 +98,10 @@ export default class PresentationElement extends React.Component<PresentationEle //Lifecycle function that makes sure button BackUp is received when not re-mounted bu re-rendered. async componentDidUpdate() { this.receiveButtonBackUp(); + if (this.presElRef.current) { + this.header = this.presElRef.current; + this.createListDropTarget(this.presElRef.current); + } } receiveButtonBackUp = async () => { @@ -385,9 +389,9 @@ export default class PresentationElement extends React.Component<PresentationEle } ScreenToLocalListTransform = (xCord: number, yCord: number) => { - let scrollLeft = window.pageXOffset || document.documentElement.scrollLeft; - let scrollTop = window.pageYOffset || document.documentElement.scrollTop; - return [yCord + scrollTop, xCord + scrollLeft]; + // let scrollLeft = window.pageXOffset || document.documentElement.scrollLeft; + // let scrollTop = window.pageYOffset || document.documentElement.scrollTop; + return [xCord, yCord]; } @@ -401,25 +405,46 @@ export default class PresentationElement extends React.Component<PresentationEle e.stopPropagation(); //where does treeViewId come from let movedDocs = (de.data.options === this.props.mainDocument[Id] ? de.data.draggedDocuments : de.data.droppedDocuments); + document.removeEventListener("pointermove", this.onDragMove, true); return (de.data.dropAction || de.data.userDropAction) ? de.data.droppedDocuments.reduce((added: boolean, d: Doc) => Doc.AddDocToList(this.props.mainDocument, "data", d, this.props.document, before) || added, false) : (de.data.moveDocument) ? movedDocs.reduce((added: boolean, d: Doc) => de.data.moveDocument(d, this.props.document, addDoc) || added, false) : de.data.droppedDocuments.reduce((added: boolean, d: Doc) => Doc.AddDocToList(this.props.mainDocument, "data", d, this.props.document, before), false); } + document.removeEventListener("pointermove", this.onDragMove, true); + return false; } onPointerEnter = (e: React.PointerEvent): void => { - //this.props.document.libraryBrush = true; + this.props.document.libraryBrush = true; if (e.buttons === 1 && SelectionManager.GetIsDragging()) { - //this.header!.className = "treeViewItem-header"; + let selected = NumCast(this.props.mainDocument.selectedDoc, 0); + + this.header!.className = "presentationView-item"; + + + if (selected === this.props.index) { + //this doc is selected + this.header!.className = "presentationView-item presentationView-selected"; + } document.addEventListener("pointermove", this.onDragMove, true); } } onPointerLeave = (e: React.PointerEvent): void => { this.props.document.libraryBrush = false; - //this.header!.className = "treeViewItem-header"; + //to get currently selected presentation doc + let selected = NumCast(this.props.mainDocument.selectedDoc, 0); + + this.header!.className = "presentationView-item"; + + + if (selected === this.props.index) { + //this doc is selected + this.header!.className = "presentationView-item presentationView-selected"; + + } document.removeEventListener("pointermove", this.onDragMove, true); } @@ -429,9 +454,13 @@ export default class PresentationElement extends React.Component<PresentationEle let rect = this.header!.getBoundingClientRect(); let bounds = this.ScreenToLocalListTransform(rect.left, rect.top + rect.height / 2); let before = x[1] < bounds[1]; - this.header!.className = "treeViewItem-header"; - // if (before) this.header!.className += " treeViewItem-header-above"; - // else if (!before) this.header!.className += " treeViewItem-header-below"; + this.header!.className = "presentationView-item"; + if (before) { + this.header!.className += " presentationView-item-above"; + } + else if (!before) { + this.header!.className += " presentationView-item-below"; + } e.stopPropagation(); } @@ -449,7 +478,7 @@ export default class PresentationElement extends React.Component<PresentationEle //to get currently selected presentation doc let selected = NumCast(p.mainDocument.selectedDoc, 0); - let className = "presentationView-item"; + let className = " presentationView-item"; if (selected === p.index) { //this doc is selected className += " presentationView-selected"; @@ -461,7 +490,7 @@ export default class PresentationElement extends React.Component<PresentationEle return ( <div className={className} key={p.document[Id] + p.index} ref={this.presElRef} - onPointerEnter={onEnter} onPointerLeave={onLeave} + onPointerEnter={this.onPointerEnter} onPointerLeave={this.onPointerLeave} onPointerDown={onItemDown} style={{ outlineColor: "maroon", diff --git a/src/client/views/presentationview/PresentationView.scss b/src/client/views/presentationview/PresentationView.scss index a35a5849b..2bb0ec8c8 100644 --- a/src/client/views/presentationview/PresentationView.scss +++ b/src/client/views/presentationview/PresentationView.scss @@ -21,6 +21,14 @@ transition: all .1s; } +.presentationView-item-above { + border-top: black 2px solid; +} + +.presentationView-item-below { + border-bottom: black 2px solid; +} + .presentationView-listCont { padding-left: 10px; padding-right: 10px; |
