Files
cozsweet-frontend-nextjs/src/hooks/use-keyboard-height/environment.ts
T

40 lines
1.3 KiB
TypeScript

import { BrowserDetector, PlatformDetector } from "@/utils";
import type { KeyboardAdaptEnvironment } from "./types";
export function getKeyboardAdaptEnvironment(
ua: string | null = null,
): KeyboardAdaptEnvironment {
const platform = PlatformDetector.getPlatformInfo(ua);
const browser = BrowserDetector.getBrowserInfo(ua);
const isXiaomiFamilyDevice = PlatformDetector.isXiaomiFamilyDevice(ua);
const isFacebookInAppBrowser = BrowserDetector.isFacebookInAppBrowser(ua);
return {
platform: platform.platform,
osName: platform.osName,
osVersion: platform.osVersion,
deviceVendor: platform.deviceVendor,
deviceModel: platform.deviceModel,
isAndroid: platform.isAndroid,
isIOS: platform.isIOS,
isMobile: platform.isMobile,
browserName: browser.name,
browserVersion: browser.version,
isInAppBrowser: browser.isInAppBrowser,
inAppBrowserName: browser.inAppBrowserName,
isXiaomiFamilyDevice,
isFacebookInAppBrowser,
hasVisualViewport:
typeof window !== "undefined" && window.visualViewport != null,
usesXiaomiFacebookFallback:
platform.isAndroid && isXiaomiFamilyDevice && isFacebookInAppBrowser,
};
}
export function shouldEnableKeyboardAdaptation(
environment: KeyboardAdaptEnvironment,
): boolean {
return environment.usesXiaomiFacebookFallback;
}