From 7489a70735afc759560535b767f2477ba388a005 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 2 Oct 2024 18:05:57 -0700 Subject: [PATCH] add event to ios --- .../bottom-sheet/ios/BottomSheetModule.swift | 3 ++- modules/bottom-sheet/ios/SheetView.swift | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/bottom-sheet/ios/BottomSheetModule.swift b/modules/bottom-sheet/ios/BottomSheetModule.swift index 2b4498adf7..01ffef67c7 100644 --- a/modules/bottom-sheet/ios/BottomSheetModule.swift +++ b/modules/bottom-sheet/ios/BottomSheetModule.swift @@ -10,8 +10,9 @@ public class BottomSheetModule: Module { View(SheetView.self) { Events([ + "onAttemptDismiss", + "onSnapPointChange", "onStateChange", - "onAttemptDismiss" ]) AsyncFunction("dismiss") { (view: SheetView) in diff --git a/modules/bottom-sheet/ios/SheetView.swift b/modules/bottom-sheet/ios/SheetView.swift index ccf7fcb23d..2146f1bc03 100644 --- a/modules/bottom-sheet/ios/SheetView.swift +++ b/modules/bottom-sheet/ios/SheetView.swift @@ -7,8 +7,9 @@ class SheetView: ExpoView, UISheetPresentationControllerDelegate { private var innerView: UIView? // Events - private let onStateChange = EventDispatcher() private let onAttemptDismiss = EventDispatcher() + private let onSnapPointChange = EventDispatcher() + private let onStateChange = EventDispatcher() // Open event firing private var isOpen: Bool = false { @@ -158,4 +159,18 @@ class SheetView: ExpoView, UISheetPresentationControllerDelegate { func presentationControllerDidDismiss(_ presentationController: UIPresentationController) { self.destroy() } + + func sheetPresentationControllerDidChangeSelectedDetentIdentifier(_ sheetPresentationController: UISheetPresentationController) { + let identifier = sheetPresentationController.selectedDetentIdentifier + + if identifier == .large { + onSnapPointChange([ + "snapPoint": 2, + ]) + } else { + onSnapPointChange([ + "snapPoint": 1, + ]) + } + } }