Skip to content

Commit d035441

Browse files
committed
fix(drawer): properly restore height after keyboard collapses on android (#1257)
* fix(drawer): properly restore height after keyboard collapses on android * fix: add missing import * docs: changeset
1 parent d9cbf37 commit d035441

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

.changeset/eleven-pants-drop.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@seed-design/react-drawer": patch
3+
---
4+
5+
Android 환경에서 온스크린 키보드가 닫힐 때 Drawer(Bottom Sheet) 높이가 정상적으로 복원되지 않는 문제를 수정합니다.

packages/react-headless/drawer/src/browser.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ export function isIOS(): boolean | undefined {
3030
return isIPhone() || isIPad();
3131
}
3232

33+
export function isAndroid(): boolean | undefined {
34+
if (typeof window === "undefined" || typeof navigator === "undefined") return false;
35+
36+
return /Android/.test(navigator.userAgent);
37+
}
38+
39+
// TODO: use userAgent instead?
3340
export function testPlatform(re: RegExp): boolean | undefined {
3441
return typeof window !== "undefined" && window.navigator != null
3542
? re.test(window.navigator.platform)

packages/react-headless/drawer/src/useDrawer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useControllableState } from "@seed-design/react-use-controllable-state";
22
import type React from "react";
33
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4-
import { isIOS, isMobileFirefox } from "./browser";
4+
import { isAndroid, isIOS, isMobileFirefox } from "./browser";
55
import {
66
CLOSE_THRESHOLD,
77
DRAG_CLASS,
@@ -600,7 +600,7 @@ export function useDrawer(props: UseDrawerProps) {
600600
} else {
601601
drawerRef.current.style.height = `${Math.max(newDrawerHeight, visualViewportHeight - offsetFromTop)}px`;
602602
}
603-
} else if (!isMobileFirefox()) {
603+
} else if (!isMobileFirefox() && !isAndroid()) {
604604
drawerRef.current.style.height = `${initialDrawerHeight.current}px`;
605605
}
606606

0 commit comments

Comments
 (0)