Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
.DS_Store
.AppleDouble
.LSOverride
yarn.lock

# Icon must end with two \r
Icon
Expand Down
1 change: 1 addition & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ declare module 'react-native-safe-area' {

// from `SafeArea.[ios|android].js`
export default class SafeArea {
static getInitialInsets(): SafeAreaInsets
static getSafeAreaInsetsForRootView(): Promise<EventPayload>
static addEventListener(eventType: EventType, listener: (payload: EventPayload) => void): void
static removeEventListener(eventType: EventType, listener: (payload: EventPayload) => void): void
Expand Down
12 changes: 12 additions & 0 deletions ios/RNSafeArea/RNSafeArea.m
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@ - (id)init {
return self;
}

- (NSDictionary *)constantsToExport {
UIEdgeInsets safeAreaInsets = [self safeAreaInsetsForRootView];
return @{
@"initialInsets": @{
@"top": @(safeAreaInsets.top),
@"left": @(safeAreaInsets.left),
@"bottom": @(safeAreaInsets.bottom),
@"right": @(safeAreaInsets.right),
},
};
}

+ (BOOL)requiresMainQueueSetup {
return YES;
}
Expand Down
4 changes: 4 additions & 0 deletions lib/SafeArea.android.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ import type EmitterSubscription from 'EmitterSubscription'
import type { SafeAreaInsets } from './TypeDefinition'

class SafeArea {
getInitialInsets() {
return { top: 0, left: 0, bottom: 0, right: 0 };
}

getSafeAreaInsetsForRootView(): Promise<{ safeAreaInsets: SafeAreaInsets }> {
return Promise.resolve({ safeAreaInsets: { top: 0, left: 0, bottom: 0, right: 0 } })
}
Expand Down
3 changes: 3 additions & 0 deletions lib/SafeArea.ios.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ const nativeModule = NativeModules.RNSafeArea
const nativeEventEmitter = new NativeEventEmitter(nativeModule)

class SafeArea {
getInitialInsets() {
return nativeModule.initialInsets;
}
getSafeAreaInsetsForRootView(): Promise<{ safeAreaInsets: SafeAreaInsets }> {
return nativeModule.getSafeAreaInsetsForRootView()
}
Expand Down