From bc8665787c60b74e7f8db13c3e659b4f149a8a44 Mon Sep 17 00:00:00 2001 From: Paulo Menezes Date: Sat, 4 Jan 2020 15:49:27 -0300 Subject: [PATCH] Hide middle handlers when small --- src/index.tsx | 56 +++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index f8bce2238..f95b49e5a 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -284,32 +284,40 @@ function handlerRectangles( sceneState: SceneState ) { const margin = 4; + const minimumSize = 40; const handlers: { [handler: string]: number[] } = {}; - handlers["n"] = [ - elementX1 + (elementX2 - elementX1) / 2 + sceneState.scrollX - 4, - elementY1 - margin + sceneState.scrollY - 8, - 8, - 8 - ]; // n - handlers["w"] = [ - elementX1 - margin + sceneState.scrollX - 8, - elementY1 + (elementY2 - elementY1) / 2 + sceneState.scrollY - 4, - 8, - 8 - ]; // w - handlers["e"] = [ - elementX2 - margin + sceneState.scrollX + 8, - elementY1 + (elementY2 - elementY1) / 2 + sceneState.scrollY - 4, - 8, - 8 - ]; // e - handlers["s"] = [ - elementX1 + (elementX2 - elementX1) / 2 + sceneState.scrollX - 4, - elementY2 - margin + sceneState.scrollY + 8, - 8, - 8 - ]; // s + if (elementX2 - elementX1 > minimumSize) { + handlers["n"] = [ + elementX1 + (elementX2 - elementX1) / 2 + sceneState.scrollX - 4, + elementY1 - margin + sceneState.scrollY - 8, + 8, + 8 + ]; + + handlers["s"] = [ + elementX1 + (elementX2 - elementX1) / 2 + sceneState.scrollX - 4, + elementY2 - margin + sceneState.scrollY + 8, + 8, + 8 + ]; + } + + if (elementY2 - elementY1 > minimumSize) { + handlers["w"] = [ + elementX1 - margin + sceneState.scrollX - 8, + elementY1 + (elementY2 - elementY1) / 2 + sceneState.scrollY - 4, + 8, + 8 + ]; + + handlers["e"] = [ + elementX2 - margin + sceneState.scrollX + 8, + elementY1 + (elementY2 - elementY1) / 2 + sceneState.scrollY - 4, + 8, + 8 + ]; + } handlers["nw"] = [ elementX1 - margin + sceneState.scrollX - 8,