feat: overlay resizing outside of main viewport but within bounds

This commit is contained in:
mathuo 2023-07-18 20:47:10 +01:00
parent 83d0c350c1
commit 133ecbfccc

View File

@ -322,10 +322,15 @@ export class Overlay extends CompositeDisposable {
let left: number | null = null; let left: number | null = null;
let width: number | null = null; let width: number | null = null;
function moveTop() { const minimumInViewportHeight =
this.options.minimumInViewportHeight;
const minimumInViewportWidth =
this.options.minimumInViewportWidth;
function moveTop(): void {
top = clamp( top = clamp(
y, y,
0, -minimumInViewportHeight,
Math.max( Math.max(
0, 0,
startPosition!.originalY + startPosition!.originalY +
@ -339,7 +344,7 @@ export class Overlay extends CompositeDisposable {
top; top;
} }
function moveBottom() { function moveBottom(): void {
top = top =
startPosition!.originalY - startPosition!.originalY -
startPosition!.originalHeight; startPosition!.originalHeight;
@ -351,15 +356,16 @@ export class Overlay extends CompositeDisposable {
0, 0,
containerRect.height - containerRect.height -
startPosition!.originalY + startPosition!.originalY +
startPosition!.originalHeight startPosition!.originalHeight +
minimumInViewportHeight
) )
); );
} }
function moveLeft() { function moveLeft(): void {
left = clamp( left = clamp(
x, x,
0, -minimumInViewportWidth,
Math.max( Math.max(
0, 0,
startPosition!.originalX + startPosition!.originalX +
@ -373,7 +379,7 @@ export class Overlay extends CompositeDisposable {
left; left;
} }
function moveRight() { function moveRight(): void {
left = left =
startPosition!.originalX - startPosition!.originalX -
startPosition!.originalWidth; startPosition!.originalWidth;
@ -384,7 +390,8 @@ export class Overlay extends CompositeDisposable {
0, 0,
containerRect.width - containerRect.width -
startPosition!.originalX + startPosition!.originalX +
startPosition!.originalWidth startPosition!.originalWidth +
minimumInViewportWidth
) )
); );
} }