diff --git a/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts b/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts index 89bdd373239..bafdeb65e42 100644 --- a/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +++ b/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts @@ -74,6 +74,12 @@ export interface ActionSheetIOSStatic { failureCallback: (error: Error) => void, successCallback: (success: boolean, method: string) => void, ) => void; + + /** + * Dismisses the most upper iOS action sheet presented, if no action sheet is + * present a warning is displayed. + */ + dismissActionSheet: () => void; } export const ActionSheetIOS: ActionSheetIOSStatic; diff --git a/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js b/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js index b5959aca24f..5366c0ccc2c 100644 --- a/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js +++ b/packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js @@ -145,6 +145,10 @@ const ActionSheetIOS = { ); }, + /** + * Dismisses the most upper iOS action sheet presented, if no action sheet is + * present a warning is displayed. + */ dismissActionSheet: () => { invariant(RCTActionSheetManager, "ActionSheetManager doesn't exist"); if (typeof RCTActionSheetManager.dismissActionSheet === 'function') { diff --git a/packages/react-native/types/__typetests__/index.tsx b/packages/react-native/types/__typetests__/index.tsx index d7382b98b79..a7f8250e25d 100644 --- a/packages/react-native/types/__typetests__/index.tsx +++ b/packages/react-native/types/__typetests__/index.tsx @@ -2115,4 +2115,7 @@ const ActionSheetIOSTest = () => { }, () => undefined, ); + + // test dismissActionSheet method + ActionSheetIOS.dismissActionSheet(); };