From 3d16f460a6ced9e58edc9a41d0c2da9db7db6b59 Mon Sep 17 00:00:00 2001 From: jwtong <13jeremywt@gmail.com> Date: Sat, 18 Dec 2021 07:47:09 -0800 Subject: [PATCH] fix: suggestion position is wrong (#231) --- src/Textarea.jsx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/Textarea.jsx b/src/Textarea.jsx index d8fe7e3..e19ec2a 100644 --- a/src/Textarea.jsx +++ b/src/Textarea.jsx @@ -155,17 +155,19 @@ class Autocomplete extends React.Component { left + dropdownBounds.width; - if (dropdownRight > containerBounds.right) { - leftPosition = left - dropdownBounds.width; - usedClasses.push(POSITION_CONFIGURATION.X.LEFT); - unusedClasses.push(POSITION_CONFIGURATION.X.RIGHT); - } else { - leftPosition = left; - usedClasses.push(POSITION_CONFIGURATION.X.RIGHT); - unusedClasses.push(POSITION_CONFIGURATION.X.LEFT); - } + if (dropdownRight > containerBounds.right && + textareaBounds.left + left > dropdownBounds.width) { + leftPosition = left - dropdownBounds.width; + usedClasses.push(POSITION_CONFIGURATION.X.LEFT); + unusedClasses.push(POSITION_CONFIGURATION.X.RIGHT); + } else { + leftPosition = left; + usedClasses.push(POSITION_CONFIGURATION.X.RIGHT); + unusedClasses.push(POSITION_CONFIGURATION.X.LEFT); + } - if (dropdownBottom > containerBounds.bottom) { + if (dropdownBottom > containerBounds.bottom && + textareaBounds.top + top > dropdownBounds.height) { topPosition = top - dropdownBounds.height; usedClasses.push(POSITION_CONFIGURATION.Y.TOP); unusedClasses.push(POSITION_CONFIGURATION.Y.BOTTOM);