41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { BrowserDetector } from "@/utils/browser-detect";
|
|
import { PlatformDetector } from "@/utils/platform-detect";
|
|
|
|
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 isOppoFamilyDevice = PlatformDetector.isOppoFamilyDevice(ua);
|
|
const isFacebookInAppBrowser = BrowserDetector.isFacebookInAppBrowser(ua);
|
|
const isTargetAndroidFacebookDevice =
|
|
platform.isAndroid &&
|
|
!platform.isIOS &&
|
|
(isXiaomiFamilyDevice || isOppoFamilyDevice) &&
|
|
isFacebookInAppBrowser;
|
|
|
|
return {
|
|
isAndroid: platform.isAndroid,
|
|
isIOS: platform.isIOS,
|
|
inAppBrowserName: browser.inAppBrowserName,
|
|
isXiaomiFamilyDevice,
|
|
isOppoFamilyDevice,
|
|
isFacebookInAppBrowser,
|
|
isTargetAndroidFacebookDevice,
|
|
};
|
|
}
|
|
|
|
export function shouldEnableKeyboardAdaptation(
|
|
environment: KeyboardAdaptEnvironment,
|
|
): boolean {
|
|
return (
|
|
environment.isAndroid &&
|
|
!environment.isIOS &&
|
|
environment.isFacebookInAppBrowser &&
|
|
(environment.isXiaomiFamilyDevice || environment.isOppoFamilyDevice)
|
|
);
|
|
}
|