32 lines
1002 B
TypeScript
32 lines
1002 B
TypeScript
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
|
|
/**
|
|
* 获取安全区域距离并添加额外间距的 hook
|
|
* @param extraPadding 额外的间距对象,默认所有方向都是 0
|
|
* @returns 包含所有方向安全区域距离加上额外间距的对象
|
|
*/
|
|
export const useSafeAreaWithPadding = (extraPadding: {
|
|
top?: number;
|
|
bottom?: number;
|
|
left?: number;
|
|
right?: number;
|
|
} = {}) => {
|
|
const insets = useSafeAreaInsets();
|
|
|
|
return {
|
|
top: insets.top + (extraPadding.top || 40),
|
|
bottom: insets.bottom + (extraPadding.bottom || 0),
|
|
left: insets.left + (extraPadding.left || 0),
|
|
right: insets.right + (extraPadding.right || 0),
|
|
};
|
|
};
|
|
|
|
/**
|
|
* 获取安全区域顶部距离的 hook
|
|
* @param extraPadding 额外的间距,默认为 20 像素
|
|
* @returns 顶部安全区域距离加上额外间距的总值
|
|
*/
|
|
export const useSafeAreaTop = (extraPadding: number = 50) => {
|
|
const insets = useSafeAreaInsets();
|
|
return insets.top + extraPadding;
|
|
}; |