UNPKG

11.2 kBTypeScriptView Raw
1import * as React from 'react';
2import { LayoutChangeEvent, ViewProperties } from 'react-native';
3import { SafeAreaContext, SafeAreaProvider, SafeAreaConsumer, useSafeArea } from 'react-native-safe-area-context';
4export { useSafeArea, SafeAreaProvider, SafeAreaConsumer, SafeAreaContext };
5export declare type ForceInsetValue = 'always' | 'never';
6export declare type ForceInsetProp = {
7 top?: ForceInsetValue;
8 bottom?: ForceInsetValue;
9 left?: ForceInsetValue;
10 right?: ForceInsetValue;
11 horizontal?: ForceInsetValue;
12 vertical?: ForceInsetValue;
13};
14interface Props extends ViewProperties {
15 forceInset?: ForceInsetProp;
16}
17interface State {
18 touchesTop: boolean;
19 touchesBottom: boolean;
20 touchesLeft: boolean;
21 touchesRight: boolean;
22 viewWidth: number;
23 viewHeight: number;
24}
25export default class SafeAreaView extends React.Component<Props, State> {
26 static contextType: any;
27 context: React.ContextType<typeof SafeAreaContext>;
28 private _isMounted;
29 private _view;
30 state: State;
31 componentDidMount(): void;
32 componentWillUnmount(): void;
33 render(): JSX.Element;
34 _handleLayout: (e: LayoutChangeEvent) => void;
35 _updateMeasurements: () => void;
36 _getSafeAreaStyle: () => {
37 paddingTop: number;
38 paddingBottom: number;
39 paddingLeft: number;
40 paddingRight: number;
41 backfaceVisibility?: "visible" | "hidden" | undefined;
42 backgroundColor?: string | undefined;
43 borderBottomColor?: string | undefined;
44 borderBottomEndRadius?: number | undefined;
45 borderBottomLeftRadius?: number | undefined;
46 borderBottomRightRadius?: number | undefined;
47 borderBottomStartRadius?: number | undefined;
48 borderBottomWidth?: number | undefined;
49 borderColor?: string | undefined;
50 borderEndColor?: string | undefined;
51 borderLeftColor?: string | undefined;
52 borderLeftWidth?: number | undefined;
53 borderRadius?: number | undefined;
54 borderRightColor?: string | undefined;
55 borderRightWidth?: number | undefined;
56 borderStartColor?: string | undefined;
57 borderStyle?: "solid" | "dotted" | "dashed" | undefined;
58 borderTopColor?: string | undefined;
59 borderTopEndRadius?: number | undefined;
60 borderTopLeftRadius?: number | undefined;
61 borderTopRightRadius?: number | undefined;
62 borderTopStartRadius?: number | undefined;
63 borderTopWidth?: number | undefined;
64 borderWidth?: number | undefined;
65 opacity?: number | undefined;
66 testID?: string | undefined;
67 elevation?: number | undefined;
68 alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | undefined;
69 alignItems?: "flex-start" | "flex-end" | "center" | "stretch" | "baseline" | undefined;
70 alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "stretch" | "baseline" | undefined;
71 aspectRatio?: number | undefined;
72 borderEndWidth?: string | number | undefined;
73 borderStartWidth?: string | number | undefined;
74 bottom?: string | number | undefined;
75 display?: "none" | "flex" | undefined;
76 end?: string | number | undefined;
77 flex?: number | undefined;
78 flexBasis?: string | number | undefined;
79 flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
80 flexGrow?: number | undefined;
81 flexShrink?: number | undefined;
82 flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
83 height?: string | number | undefined;
84 justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
85 left?: string | number | undefined;
86 margin?: string | number | undefined;
87 marginBottom?: string | number | undefined;
88 marginEnd?: string | number | undefined;
89 marginHorizontal?: string | number | undefined;
90 marginLeft?: string | number | undefined;
91 marginRight?: string | number | undefined;
92 marginStart?: string | number | undefined;
93 marginTop?: string | number | undefined;
94 marginVertical?: string | number | undefined;
95 maxHeight?: string | number | undefined;
96 maxWidth?: string | number | undefined;
97 minHeight?: string | number | undefined;
98 minWidth?: string | number | undefined;
99 overflow?: "visible" | "hidden" | "scroll" | undefined;
100 paddingEnd?: string | number | undefined;
101 paddingStart?: string | number | undefined;
102 position?: "absolute" | "relative" | undefined;
103 right?: string | number | undefined;
104 start?: string | number | undefined;
105 top?: string | number | undefined;
106 width?: string | number | undefined;
107 zIndex?: number | undefined;
108 direction?: "inherit" | "ltr" | "rtl" | undefined;
109 shadowColor?: string | undefined;
110 shadowOffset?: {
111 width: number;
112 height: number;
113 } | undefined;
114 shadowOpacity?: number | undefined;
115 shadowRadius?: number | undefined;
116 transform?: (import("react-native").PerpectiveTransform | import("react-native").RotateTransform | import("react-native").RotateXTransform | import("react-native").RotateYTransform | import("react-native").RotateZTransform | import("react-native").ScaleTransform | import("react-native").ScaleXTransform | import("react-native").ScaleYTransform | import("react-native").TranslateXTransform | import("react-native").TranslateYTransform | import("react-native").SkewXTransform | import("react-native").SkewYTransform)[] | undefined;
117 transformMatrix?: number[] | undefined;
118 rotation?: number | undefined;
119 scaleX?: number | undefined;
120 scaleY?: number | undefined;
121 translateX?: number | undefined;
122 translateY?: number | undefined;
123 };
124 _getViewStyles: () => {
125 paddingTop: number;
126 paddingBottom: number;
127 paddingLeft: number;
128 paddingRight: number;
129 viewStyle: {
130 backfaceVisibility?: "visible" | "hidden" | undefined;
131 backgroundColor?: string | undefined;
132 borderBottomColor?: string | undefined;
133 borderBottomEndRadius?: number | undefined;
134 borderBottomLeftRadius?: number | undefined;
135 borderBottomRightRadius?: number | undefined;
136 borderBottomStartRadius?: number | undefined;
137 borderBottomWidth?: number | undefined;
138 borderColor?: string | undefined;
139 borderEndColor?: string | undefined;
140 borderLeftColor?: string | undefined;
141 borderLeftWidth?: number | undefined;
142 borderRadius?: number | undefined;
143 borderRightColor?: string | undefined;
144 borderRightWidth?: number | undefined;
145 borderStartColor?: string | undefined;
146 borderStyle?: "solid" | "dotted" | "dashed" | undefined;
147 borderTopColor?: string | undefined;
148 borderTopEndRadius?: number | undefined;
149 borderTopLeftRadius?: number | undefined;
150 borderTopRightRadius?: number | undefined;
151 borderTopStartRadius?: number | undefined;
152 borderTopWidth?: number | undefined;
153 borderWidth?: number | undefined;
154 opacity?: number | undefined;
155 testID?: string | undefined;
156 elevation?: number | undefined;
157 alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | undefined;
158 alignItems?: "flex-start" | "flex-end" | "center" | "stretch" | "baseline" | undefined;
159 alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "stretch" | "baseline" | undefined;
160 aspectRatio?: number | undefined;
161 borderEndWidth?: string | number | undefined;
162 borderStartWidth?: string | number | undefined;
163 bottom?: string | number | undefined;
164 display?: "none" | "flex" | undefined;
165 end?: string | number | undefined;
166 flex?: number | undefined;
167 flexBasis?: string | number | undefined;
168 flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
169 flexGrow?: number | undefined;
170 flexShrink?: number | undefined;
171 flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
172 height?: string | number | undefined;
173 justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
174 left?: string | number | undefined;
175 margin?: string | number | undefined;
176 marginBottom?: string | number | undefined;
177 marginEnd?: string | number | undefined;
178 marginHorizontal?: string | number | undefined;
179 marginLeft?: string | number | undefined;
180 marginRight?: string | number | undefined;
181 marginStart?: string | number | undefined;
182 marginTop?: string | number | undefined;
183 marginVertical?: string | number | undefined;
184 maxHeight?: string | number | undefined;
185 maxWidth?: string | number | undefined;
186 minHeight?: string | number | undefined;
187 minWidth?: string | number | undefined;
188 overflow?: "visible" | "hidden" | "scroll" | undefined;
189 paddingEnd?: string | number | undefined;
190 paddingStart?: string | number | undefined;
191 position?: "absolute" | "relative" | undefined;
192 right?: string | number | undefined;
193 start?: string | number | undefined;
194 top?: string | number | undefined;
195 width?: string | number | undefined;
196 zIndex?: number | undefined;
197 direction?: "inherit" | "ltr" | "rtl" | undefined;
198 shadowColor?: string | undefined;
199 shadowOffset?: {
200 width: number;
201 height: number;
202 } | undefined;
203 shadowOpacity?: number | undefined;
204 shadowRadius?: number | undefined;
205 transform?: (import("react-native").PerpectiveTransform | import("react-native").RotateTransform | import("react-native").RotateXTransform | import("react-native").RotateYTransform | import("react-native").RotateZTransform | import("react-native").ScaleTransform | import("react-native").ScaleXTransform | import("react-native").ScaleYTransform | import("react-native").TranslateXTransform | import("react-native").TranslateYTransform | import("react-native").SkewXTransform | import("react-native").SkewYTransform)[] | undefined;
206 transformMatrix?: number[] | undefined;
207 rotation?: number | undefined;
208 scaleX?: number | undefined;
209 scaleY?: number | undefined;
210 translateX?: number | undefined;
211 translateY?: number | undefined;
212 };
213 };
214 _getInset: (key: "top" | "bottom" | "left" | "right" | "horizontal" | "vertical") => number;
215}