summaryrefslogtreecommitdiff
path: root/packages/client/src/components
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-13 16:35:53 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-02-13 16:35:53 +0900
commit9d7352a9e43e1326b1dd7f4068ffa366c818b2be (patch)
tree05e727ecb59eee067bb8d1c5ef63120c378f5915 /packages/client/src/components
parentrefactor: fix types (diff)
downloadsharkey-9d7352a9e43e1326b1dd7f4068ffa366c818b2be.tar.gz
sharkey-9d7352a9e43e1326b1dd7f4068ffa366c818b2be.tar.bz2
sharkey-9d7352a9e43e1326b1dd7f4068ffa366c818b2be.zip
fix(client): リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正
Fix #8071
Diffstat (limited to 'packages/client/src/components')
-rw-r--r--packages/client/src/components/ui/modal.vue23
1 files changed, 14 insertions, 9 deletions
diff --git a/packages/client/src/components/ui/modal.vue b/packages/client/src/components/ui/modal.vue
index b42c0e4d42..c83453924e 100644
--- a/packages/client/src/components/ui/modal.vue
+++ b/packages/client/src/components/ui/modal.vue
@@ -102,7 +102,6 @@ const align = () => {
if (type.value === 'drawer') return;
const popover = content.value!;
-
if (popover == null) return;
const rect = props.src.getBoundingClientRect();
@@ -131,20 +130,23 @@ const align = () => {
left = window.innerWidth - width;
}
+ const underSpace = (window.innerHeight - MARGIN) - top;
+ const upperSpace = (rect.top - MARGIN);
+
// 画面から縦にはみ出る場合
if (top + height > (window.innerHeight - MARGIN)) {
if (props.noOverlap) {
- const underSpace = (window.innerHeight - MARGIN) - top;
- const upperSpace = (rect.top - MARGIN);
if (underSpace >= (upperSpace / 3)) {
- maxHeight.value = underSpace;
+ maxHeight.value = underSpace;
} else {
- maxHeight.value = upperSpace;
+ maxHeight.value = upperSpace;
top = (upperSpace + MARGIN) - height;
}
} else {
top = (window.innerHeight - MARGIN) - height;
}
+ } else {
+ maxHeight.value = underSpace;
}
} else {
// 画面から横にはみ出る場合
@@ -152,20 +154,23 @@ const align = () => {
left = window.innerWidth - width + window.pageXOffset - 1;
}
+ const underSpace = (window.innerHeight - MARGIN) - (top - window.pageYOffset);
+ const upperSpace = (rect.top - MARGIN);
+
// 画面から縦にはみ出る場合
if (top + height - window.pageYOffset > (window.innerHeight - MARGIN)) {
if (props.noOverlap) {
- const underSpace = (window.innerHeight - MARGIN) - (top - window.pageYOffset);
- const upperSpace = (rect.top - MARGIN);
if (underSpace >= (upperSpace / 3)) {
- maxHeight.value = underSpace;
+ maxHeight.value = underSpace;
} else {
- maxHeight.value = upperSpace;
+ maxHeight.value = upperSpace;
top = window.pageYOffset + ((upperSpace + MARGIN) - height);
}
} else {
top = (window.innerHeight - MARGIN) - height + window.pageYOffset - 1;
}
+ } else {
+ maxHeight.value = underSpace;
}
}