aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
diff options
context:
space:
mode:
authorGeireann Lindfield Roberts <60007097+geireann@users.noreply.github.com>2020-08-13 08:38:45 +0800
committerGeireann Lindfield Roberts <60007097+geireann@users.noreply.github.com>2020-08-13 08:38:45 +0800
commit55460c79ddc12b44907979053058e04987f7e4c0 (patch)
tree0d28f68821c624ed3460f060065bcdf8d5004b2f /src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
parent998e549f6a713c92c66218322c53f2fba8d94706 (diff)
bug fixes, small UI changes, import in left sidebar
Diffstat (limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx188
1 files changed, 36 insertions, 152 deletions
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 162713c3b..b15bda87d 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1496,82 +1496,22 @@ interface CollectionFreeFormViewPannableContentsProps {
@observer
class CollectionFreeFormViewPannableContents extends React.Component<CollectionFreeFormViewPannableContentsProps>{
- private _isDraggingTL = false;
- private _isDraggingTR = false;
- private _isDraggingBR = false;
- private _isDraggingBL = false;
- private _isDragging = false;
- // private _drag = "";
-
- // onPointerDown = (e: React.PointerEvent): void => {
- // e.stopPropagation();
- // e.preventDefault();
- // if (e.button === 0) {
- // this._drag = e.currentTarget.id;
- // console.log(this._drag);
- // }
- // document.removeEventListener("pointermove", this.onPointerMove);
- // document.addEventListener("pointermove", this.onPointerMove);
- // document.removeEventListener("pointerup", this.onPointerUp);
- // document.addEventListener("pointerup", this.onPointerUp);
- // }
-
-
- // //Adds event listener so knows pointer is down and moving
- // onPointerMid = (e: React.PointerEvent): void => {
- // e.stopPropagation();
- // e.preventDefault();
- // this._isDragging = true;
- // const dragData = new DragManager.DocumentDragData([]);
- // console.log(DragManager.StartDocumentDrag([], dragData, e.clientX, e.clientY));
- // }
+ @observable private _drag: string = '';
//Adds event listener so knows pointer is down and moving
onPointerDown = (e: React.PointerEvent): void => {
e.stopPropagation();
e.preventDefault();
- const corner = document.elementFromPoint(e.clientX, e.clientY)?.id;
- if (corner) this._drag = corner;
- const rect = document.getElementById('resizable');
+ const corner = e.target as any;
+ console.log(corner.id);
+ if (corner) this._drag = corner.id;
+ const rect = document.getElementById(this._drag);
if (rect) {
console.log(this._drag);
setupMoveUpEvents(e.target, e, this.onPointerMove, (e) => { }, (e) => { });
}
}
- // //Adds event listener so knows pointer is down and moving
- // onPointerBL = (e: React.PointerEvent): void => {
- // e.stopPropagation();
- // e.preventDefault();
- // this._isDraggingBL = true;
- // document.removeEventListener("pointermove", this.onPointerMove);
- // document.addEventListener("pointermove", this.onPointerMove);
- // document.removeEventListener("pointerup", this.onPointerUp);
- // document.addEventListener("pointerup", this.onPointerUp);
- // }
-
- // //Adds event listener so knows pointer is down and moving
- // onPointerTR = (e: React.PointerEvent): void => {
- // e.stopPropagation();
- // e.preventDefault();
- // this._isDraggingTR = true;
- // document.removeEventListener("pointermove", this.onPointerMove);
- // document.addEventListener("pointermove", this.onPointerMove);
- // document.removeEventListener("pointerup", this.onPointerUp);
- // document.addEventListener("pointerup", this.onPointerUp);
- // }
-
- // //Adds event listener so knows pointer is down and moving
- // onPointerTL = (e: React.PointerEvent): void => {
- // e.stopPropagation();
- // e.preventDefault();
- // this._isDraggingTL = true;
- // document.removeEventListener("pointermove", this.onPointerMove);
- // document.addEventListener("pointermove", this.onPointerMove);
- // document.removeEventListener("pointerup", this.onPointerUp);
- // document.addEventListener("pointerup", this.onPointerUp);
- // }
-
//Removes all event listeners
onPointerUp = (e: PointerEvent): void => {
e.stopPropagation();
@@ -1581,26 +1521,13 @@ class CollectionFreeFormViewPannableContents extends React.Component<CollectionF
document.removeEventListener("pointerup", this.onPointerUp);
}
- // @action
- // pan = (e: PointerEvent | React.Touch | { moveX: number, moveY: number }): void => {
- // const scale = this.props.getLocalTransform().inverse().Scale;
- // const newPanX = Math.min((1 - 1 / scale) * this.props.nativeWidth, Math.max(0, moveX));
- // const newPanY = Math.min((1 - 1 / scale) * this.nativeHeight), Math.max(0, panY));
- // }
-
- @observable private _drag: string = '';
-
//Adjusts the value in NodeStore
@action
onPointerMove = (e: PointerEvent) => {
- const activeItem = Cast(PresBox.Instance.childDocs[PresBox.Instance.itemIndex], Doc, null);
- const targetDoc = Cast(activeItem?.presentationTargetDoc, Doc, null);
const doc = document.getElementById('resizable');
- const rect = (e.target as any).getBoundingClientRect();
- const toNumber = (screen_delta: number, wh: number): number => {
- // console.log(screen_delta);
- // console.log(wh);
- return screen_delta + wh;
+ const rect = doc!.getBoundingClientRect();
+ const toNumber = (original: number, delta: number): number => {
+ return original + (delta * this.props.zoomScaling());
};
if (doc) {
let height = doc.offsetHeight;
@@ -1610,84 +1537,41 @@ class CollectionFreeFormViewPannableContents extends React.Component<CollectionF
switch (this._drag) {
case "": break;
case "resizer-br":
- doc.style.width = toNumber(e.clientX - rect.x, width) + 'px';
- doc.style.height = toNumber(e.clientY - rect.y, height) + 'px';
+ doc.style.width = toNumber(width, e.movementX) + 'px';
+ doc.style.height = toNumber(height, e.movementY) + 'px';
break;
case "resizer-bl":
- doc.style.width = toNumber(e.clientX - rect.x, width) + 'px';
- doc.style.height = toNumber(e.clientY - rect.y, height) + 'px';
- doc.style.left = toNumber(e.clientY - rect.y, height) + 'px';
+ doc.style.width = toNumber(width, -e.movementX) + 'px';
+ doc.style.height = toNumber(height, e.movementY) + 'px';
+ doc.style.left = toNumber(left, e.movementX) + 'px';
break;
case "resizer-tr":
- doc.style.width = toNumber(e.clientX - rect.x, width) + 'px';
- doc.style.height = toNumber(e.clientY - rect.y, height) + 'px';
- doc.style.top = toNumber(e.clientY - rect.y, top) + 'px';
+ doc.style.width = toNumber(width, -e.movementX) + 'px';
+ doc.style.height = toNumber(height, -e.movementY) + 'px';
+ doc.style.top = toNumber(top, e.movementY) + 'px';
case "resizer-tl":
- doc.style.width = toNumber(e.clientX - rect.x, width) + 'px';
- doc.style.height = toNumber(e.clientY - rect.y, height) + 'px';
- doc.style.top = toNumber(e.clientY - rect.x, top) + 'px';
- doc.style.left = toNumber(e.clientX - rect.y, left) + 'px';
+ doc.style.width = toNumber(width, -e.movementX) + 'px';
+ doc.style.height = toNumber(height, -e.movementY) + 'px';
+ doc.style.top = toNumber(top, e.movementY) + 'px';
+ doc.style.left = toNumber(left, e.movementX) + 'px';
case "resizable":
- doc.style.top = toNumber(e.clientY - rect.x, top) + 'px';
- doc.style.left = toNumber(e.clientX - rect.y, left) + 'px';
+ doc.style.top = toNumber(top, e.movementY) + 'px';
+ doc.style.left = toNumber(left, e.movementX) + 'px';
}
- this.updateList(targetDoc, activeItem["viewfinder-width-indexed"], width);
- this.updateList(targetDoc, activeItem["viewfinder-height-indexed"], height);
- this.updateList(targetDoc, activeItem["viewfinder-top-indexed"], top);
- this.updateList(targetDoc, activeItem["viewfinder-left-indexed"], left);
+ this.updateAll(height, width, top, left);
return false;
}
return true;
+ }
-
- // const activeItem = Cast(PresBox.Instance.childDocs[PresBox.Instance.itemIndex], Doc, null);
- // const targetDoc = Cast(activeItem?.presentationTargetDoc, Doc, null);
- // const tagDocView = DocumentManager.Instance.getDocumentView(targetDoc);
- // e.stopPropagation();
- // e.preventDefault();
- // if (doc && tagDocView) {
-
- // const scale = this.props.zoomScaling();
- // const scale2 = tagDocView.childScaling();
- // const scale3 = tagDocView.props.ScreenToLocalTransform().Scale;
- // const scale1 = NumCast(targetDoc._viewScale);
- // // const scale = this.props.zoomScaling();
- // console.log("_viewScale: " + scale1);
- // console.log("_StLT: " + scale3);
- // console.log("zoomScaling: " + scale);
- // console.log("movementX: " + e.movementX);
- // console.log("movementX * scale: " + e.movementX * scale);
- // let height = doc.offsetHeight;
- // let width = doc.offsetWidth;
- // let top = doc.offsetTop;
- // let left = doc.offsetLeft;
- // switch (this._drag) {
- // case "": break;
- // case "resizer-br":
- // doc.style.height = newHeightB + 'px';
- // doc.style.width = newWidthR + 'px';
- // break;
- // case "resizer-bl":
- // doc.style.height = newHeightB + 'px';
- // doc.style.width = newWidthL + 'px';
- // doc.style.left = newLeft + 'px';
- // break;
- // case "resizer-tr":
- // doc.style.width = newWidthR + 'px';
- // doc.style.height = newHeightT + 'px';
- // doc.style.top = newTop + 'px';
- // case "resizer-tl":
- // doc.style.width = newWidthL + 'px';
- // doc.style.height = newHeightT + 'px';
- // doc.style.top = newTop + 'px';
- // doc.style.left = newLeft + 'px';
- // case "resizable":
- // doc.style.top = newTop + 'px';
- // doc.style.left = newLeft + 'px';
- // }
-
-
- // }
+ @action
+ updateAll = (width: number, height: number, top: number, left: number) => {
+ const activeItem = Cast(PresBox.Instance.childDocs[PresBox.Instance.itemIndex], Doc, null);
+ const targetDoc = Cast(activeItem?.presentationTargetDoc, Doc, null);
+ this.updateList(targetDoc, activeItem["viewfinder-width-indexed"], width);
+ this.updateList(targetDoc, activeItem["viewfinder-height-indexed"], height);
+ this.updateList(targetDoc, activeItem["viewfinder-top-indexed"], top);
+ this.updateList(targetDoc, activeItem["viewfinder-left-indexed"], left);
}
@action
@@ -1708,10 +1592,10 @@ class CollectionFreeFormViewPannableContents extends React.Component<CollectionF
const activeItem = Cast(PresBox.Instance.childDocs[PresBox.Instance.itemIndex], Doc, null);
const targetDoc = Cast(activeItem?.presentationTargetDoc, Doc, null);
if (activeItem && activeItem.zoomProgressivize) {
- const vfLeft: number = !activeItem ? 0 : PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-left-indexed"]);
- const vfWidth: number = !activeItem ? 0 : PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-width-indexed"]);
- const vfTop: number = !activeItem ? 0 : PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-top-indexed"]);
- const vfHeight: number = !activeItem ? 0 : PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-height-indexed"]);
+ const vfLeft: number = PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-left-indexed"]);
+ const vfWidth: number = PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-width-indexed"]);
+ const vfTop: number = PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-top-indexed"]);
+ const vfHeight: number = PresBox.Instance.checkList(targetDoc, activeItem["viewfinder-height-indexed"]);
return (
<>
{!activeItem.editZoomProgressivize ? (null) : <div id="resizable" className="resizable" onPointerDown={this.onPointerDown} style={{ width: vfWidth, height: vfHeight, top: vfTop, left: vfLeft, position: 'absolute' }}>