@onekeyfe/react-native-native-sheet 3.0.130 → 3.0.132
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NativeSheet.podspec +1 -0
- package/android/src/main/java/com/onekey/nativesheet/NativeSheetView.kt +11 -2
- package/ios/NativeSheetContainerView.swift +15 -4
- package/lib/module/NativeSheetRegistry.js +21 -6
- package/lib/module/NativeSheetRegistry.js.map +1 -1
- package/lib/module/index.js +9 -10
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/NativeSheetRegistry.d.ts +1 -1
- package/lib/typescript/src/NativeSheetRegistry.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeSheetRegistry.ts +22 -6
- package/src/index.tsx +9 -10
package/NativeSheet.podspec
CHANGED
|
@@ -51,6 +51,9 @@ internal object NativeSheetStack {
|
|
|
51
51
|
|
|
52
52
|
fun present(view: NativeSheetView) {
|
|
53
53
|
compact()
|
|
54
|
+
deferredDismissals.removeAll {
|
|
55
|
+
it.first.get() == null || (it.first.get() === view && it.second == "programmatic")
|
|
56
|
+
}
|
|
54
57
|
if (active.any { it.get() === view } || pending.any { it.get() === view }) {
|
|
55
58
|
return
|
|
56
59
|
}
|
|
@@ -768,6 +771,11 @@ class NativeSheetView(
|
|
|
768
771
|
) {
|
|
769
772
|
val currentDialog = dialog
|
|
770
773
|
if (currentDialog == null) {
|
|
774
|
+
if (reason == "security" && committedOpen && !dismissNotified) {
|
|
775
|
+
dismissedForCurrentOpen = true
|
|
776
|
+
dismissNotified = true
|
|
777
|
+
onDismiss?.invoke(reason)
|
|
778
|
+
}
|
|
771
779
|
completion()
|
|
772
780
|
return
|
|
773
781
|
}
|
|
@@ -841,9 +849,10 @@ class NativeSheetView(
|
|
|
841
849
|
heightAnimator = null
|
|
842
850
|
child?.let { attachChild(this, it, 0) }
|
|
843
851
|
NativeSheetStack.didDismiss(this)
|
|
844
|
-
|
|
852
|
+
val reopenedAfterProgrammaticDismiss = pendingDismissReason == "programmatic" && committedOpen
|
|
853
|
+
dismissedForCurrentOpen = committedOpen && !reopenedAfterProgrammaticDismiss
|
|
854
|
+
if (!reopenedAfterProgrammaticDismiss && !dismissNotified) {
|
|
845
855
|
dismissNotified = true
|
|
846
|
-
dismissedForCurrentOpen = committedOpen
|
|
847
856
|
onDismiss?.invoke(pendingDismissReason)
|
|
848
857
|
}
|
|
849
858
|
val completion = dismissalCompletion
|
|
@@ -119,6 +119,12 @@ private final class NativeSheetPresentationCoordinator {
|
|
|
119
119
|
processPending()
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
func cancelDeferredProgrammaticDismissal(_ host: NativeSheetContainerView) {
|
|
123
|
+
deferredDismissals.removeAll {
|
|
124
|
+
$0.host.value == nil || ($0.host.value === host && $0.reason == "programmatic")
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
122
128
|
func dismiss(_ host: NativeSheetContainerView, reason: String, animated: Bool) {
|
|
123
129
|
pending.removeAll { $0.value == nil || $0.value === host }
|
|
124
130
|
guard !transitioning else {
|
|
@@ -221,7 +227,7 @@ private final class NativeSheetPresentationCoordinator {
|
|
|
221
227
|
} else {
|
|
222
228
|
self.queueDismiss(
|
|
223
229
|
host,
|
|
224
|
-
reason: host.securityBlocked ? "security" : "system",
|
|
230
|
+
reason: host.securityBlocked ? "security" : (host.open ? "system" : "programmatic"),
|
|
225
231
|
animated: false
|
|
226
232
|
)
|
|
227
233
|
}
|
|
@@ -683,6 +689,7 @@ private final class NativeSheetContentWrapperView: UIView {
|
|
|
683
689
|
committedOpen = open
|
|
684
690
|
if openChanged && open {
|
|
685
691
|
dismissNotified = false
|
|
692
|
+
NativeSheetPresentationCoordinator.shared.cancelDeferredProgrammaticDismissal(self)
|
|
686
693
|
}
|
|
687
694
|
if !open {
|
|
688
695
|
dismissedForCurrentOpen = false
|
|
@@ -696,7 +703,9 @@ private final class NativeSheetContentWrapperView: UIView {
|
|
|
696
703
|
} else if window != nil,
|
|
697
704
|
(openChanged || presentedController == nil),
|
|
698
705
|
!dismissedForCurrentOpen {
|
|
699
|
-
|
|
706
|
+
if presentedController == nil || presentedController?.isBeingDismissed == true {
|
|
707
|
+
NativeSheetPresentationCoordinator.shared.present(self)
|
|
708
|
+
}
|
|
700
709
|
} else if let controller = presentedController, !dismissedForCurrentOpen {
|
|
701
710
|
let shouldAnimate = controller.presentingViewController != nil
|
|
702
711
|
&& !controller.isBeingPresented
|
|
@@ -744,8 +753,10 @@ private final class NativeSheetContentWrapperView: UIView {
|
|
|
744
753
|
}
|
|
745
754
|
let hadController = presentedController != nil
|
|
746
755
|
presentedController = nil
|
|
747
|
-
|
|
748
|
-
|
|
756
|
+
let reopenedAfterProgrammaticDismiss = reason == "programmatic" && committedOpen
|
|
757
|
+
dismissedForCurrentOpen = committedOpen && !reopenedAfterProgrammaticDismiss
|
|
758
|
+
let shouldNotify = hadController || (reason == "security" && committedOpen)
|
|
759
|
+
if shouldNotify && !reopenedAfterProgrammaticDismiss && !dismissNotified {
|
|
749
760
|
dismissNotified = true
|
|
750
761
|
onDismiss?(["reason": reason])
|
|
751
762
|
}
|
|
@@ -6,7 +6,7 @@ let entries = [];
|
|
|
6
6
|
const listeners = new Set();
|
|
7
7
|
let securityFallbackTimer;
|
|
8
8
|
const closeFallbackTimers = new Map();
|
|
9
|
-
|
|
9
|
+
const registryBlockers = new Set();
|
|
10
10
|
function clearCloseFallbackTimer(id) {
|
|
11
11
|
const timer = closeFallbackTimers.get(id);
|
|
12
12
|
if (timer) {
|
|
@@ -27,7 +27,7 @@ export function getNativeSheetRegistrySnapshot() {
|
|
|
27
27
|
export function addNativeSheetRegistryEntry(options, content) {
|
|
28
28
|
const id = nextId;
|
|
29
29
|
nextId += 1;
|
|
30
|
-
if (
|
|
30
|
+
if (registryBlockers.size > 0) {
|
|
31
31
|
options.onOpenChange?.(true);
|
|
32
32
|
options.onOpenChange?.(false);
|
|
33
33
|
options.onDismiss?.('security');
|
|
@@ -150,14 +150,29 @@ export function requestSecurityDismissAllNativeSheets() {
|
|
|
150
150
|
if (securityFallbackTimer) {
|
|
151
151
|
clearTimeout(securityFallbackTimer);
|
|
152
152
|
}
|
|
153
|
+
const fallbackEntryIds = presentedEntries.map(entry => entry.id);
|
|
153
154
|
securityFallbackTimer = setTimeout(() => {
|
|
154
155
|
securityFallbackTimer = undefined;
|
|
155
|
-
|
|
156
|
+
fallbackEntryIds.forEach(id => {
|
|
157
|
+
const pendingEntry = entries.find(entry => entry.id === id);
|
|
158
|
+
if (!pendingEntry) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
finishNativeSheetRegistryEntry(id, 'security');
|
|
162
|
+
pendingEntry.options.onAnimationComplete?.({
|
|
163
|
+
open: false
|
|
164
|
+
});
|
|
165
|
+
});
|
|
156
166
|
}, 500);
|
|
157
167
|
}
|
|
158
|
-
export function setNativeSheetRegistryBlocked(blocked) {
|
|
159
|
-
|
|
168
|
+
export function setNativeSheetRegistryBlocked(blockerId, blocked) {
|
|
169
|
+
const wasBlocked = registryBlockers.size > 0;
|
|
160
170
|
if (blocked) {
|
|
171
|
+
registryBlockers.add(blockerId);
|
|
172
|
+
} else {
|
|
173
|
+
registryBlockers.delete(blockerId);
|
|
174
|
+
}
|
|
175
|
+
if (!wasBlocked && registryBlockers.size > 0) {
|
|
161
176
|
requestSecurityDismissAllNativeSheets();
|
|
162
177
|
}
|
|
163
178
|
}
|
|
@@ -170,7 +185,7 @@ export function resetNativeSheetRegistryForTests() {
|
|
|
170
185
|
closeFallbackTimers.clear();
|
|
171
186
|
entries = [];
|
|
172
187
|
nextId = 1;
|
|
173
|
-
|
|
188
|
+
registryBlockers.clear();
|
|
174
189
|
listeners.clear();
|
|
175
190
|
}
|
|
176
191
|
//# sourceMappingURL=NativeSheetRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PRESENTATION_CLOSE_FALLBACK_MS","nextId","entries","listeners","Set","securityFallbackTimer","closeFallbackTimers","Map","
|
|
1
|
+
{"version":3,"names":["PRESENTATION_CLOSE_FALLBACK_MS","nextId","entries","listeners","Set","securityFallbackTimer","closeFallbackTimers","Map","registryBlockers","clearCloseFallbackTimer","id","timer","get","clearTimeout","delete","emitChange","forEach","listener","subscribeNativeSheetRegistry","add","getNativeSheetRegistrySnapshot","addNativeSheetRegistryEntry","options","content","size","onOpenChange","onDismiss","onAnimationComplete","open","entry","presentationRequested","closeNativeSheetRegistryEntry","find","item","filter","map","has","set","setTimeout","pendingEntry","finishNativeSheetRegistryEntry","markNativeSheetRegistryEntryPresentationRequested","reason","finishAllNativeSheetRegistryEntries","currentEntries","length","requestSecurityDismissAllNativeSheets","unpresentedEntries","presentedEntries","fallbackEntryIds","undefined","setNativeSheetRegistryBlocked","blockerId","blocked","wasBlocked","resetNativeSheetRegistryForTests","clear"],"sourceRoot":"../../src","sources":["NativeSheetRegistry.ts"],"mappings":";;AAcA,MAAMA,8BAA8B,GAAG,KAAK;AAE5C,IAAIC,MAAM,GAAG,CAAC;AACd,IAAIC,OAA4C,GAAG,EAAE;AACrD,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAmB,CAAC;AAC7C,IAAIC,qBAAgE;AACpE,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAAwC,CAAC;AAC5E,MAAMC,gBAAgB,GAAG,IAAIJ,GAAG,CAAS,CAAC;AAE1C,SAASK,uBAAuBA,CAACC,EAAU,EAAE;EAC3C,MAAMC,KAAK,GAAGL,mBAAmB,CAACM,GAAG,CAACF,EAAE,CAAC;EACzC,IAAIC,KAAK,EAAE;IACTE,YAAY,CAACF,KAAK,CAAC;IACnBL,mBAAmB,CAACQ,MAAM,CAACJ,EAAE,CAAC;EAChC;AACF;AAEA,SAASK,UAAUA,CAAA,EAAG;EACpBZ,SAAS,CAACa,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;AAC7C;AAEA,OAAO,SAASC,4BAA4BA,CAACD,QAA0B,EAAE;EACvEd,SAAS,CAACgB,GAAG,CAACF,QAAQ,CAAC;EACvB,OAAO,MAAMd,SAAS,CAACW,MAAM,CAACG,QAAQ,CAAC;AACzC;AAEA,OAAO,SAASG,8BAA8BA,CAAA,EAAG;EAC/C,OAAOlB,OAAO;AAChB;AAEA,OAAO,SAASmB,2BAA2BA,CACzCC,OAA+B,EAC/BC,OAAkB,EAClB;EACA,MAAMb,EAAE,GAAGT,MAAM;EACjBA,MAAM,IAAI,CAAC;EACX,IAAIO,gBAAgB,CAACgB,IAAI,GAAG,CAAC,EAAE;IAC7BF,OAAO,CAACG,YAAY,GAAG,IAAI,CAAC;IAC5BH,OAAO,CAACG,YAAY,GAAG,KAAK,CAAC;IAC7BH,OAAO,CAACI,SAAS,GAAG,UAAU,CAAC;IAC/BJ,OAAO,CAACK,mBAAmB,GAAG;MAAEC,IAAI,EAAE;IAAM,CAAC,CAAC;IAC9C,OAAOlB,EAAE;EACX;EACA,MAAMmB,KAA+B,GAAG;IACtCnB,EAAE;IACFkB,IAAI,EAAE,IAAI;IACVE,qBAAqB,EAAE,KAAK;IAC5BP,OAAO;IACPD;EACF,CAAC;EACDpB,OAAO,GAAG,CAAC,GAAGA,OAAO,EAAE2B,KAAK,CAAC;EAC7BP,OAAO,CAACG,YAAY,GAAG,IAAI,CAAC;EAC5BV,UAAU,CAAC,CAAC;EACZ,OAAOL,EAAE;AACX;AAEA,OAAO,SAASqB,6BAA6BA,CAACrB,EAAU,EAAE;EACxD,MAAMmB,KAAK,GAAG3B,OAAO,CAAC8B,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;EACpD,IAAI,CAACmB,KAAK,IAAI,CAACA,KAAK,CAACD,IAAI,EAAE;IACzB;EACF;EACAC,KAAK,CAACP,OAAO,CAACG,YAAY,GAAG,KAAK,CAAC;EACnC,IAAI,CAACI,KAAK,CAACC,qBAAqB,EAAE;IAChC5B,OAAO,GAAGA,OAAO,CAACgC,MAAM,CAAED,IAAI,IAAKA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;IAClDmB,KAAK,CAACP,OAAO,CAACI,SAAS,GAAG,cAAc,CAAC;IACzCG,KAAK,CAACP,OAAO,CAACK,mBAAmB,GAAG;MAAEC,IAAI,EAAE;IAAM,CAAC,CAAC;EACtD,CAAC,MAAM;IACL1B,OAAO,GAAGA,OAAO,CAACiC,GAAG,CAAEF,IAAI,IACzBA,IAAI,CAACvB,EAAE,KAAKA,EAAE,GAAG;MAAE,GAAGuB,IAAI;MAAEL,IAAI,EAAE;IAAM,CAAC,GAAGK,IAC9C,CAAC;IACD,IAAI,CAAC3B,mBAAmB,CAAC8B,GAAG,CAAC1B,EAAE,CAAC,EAAE;MAChCJ,mBAAmB,CAAC+B,GAAG,CACrB3B,EAAE,EACF4B,UAAU,CAAC,MAAM;QACfhC,mBAAmB,CAACQ,MAAM,CAACJ,EAAE,CAAC;QAC9B,MAAM6B,YAAY,GAAGrC,OAAO,CAAC8B,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;QAC3D,IAAI,CAAC6B,YAAY,EAAE;UACjB;QACF;QACAC,8BAA8B,CAAC9B,EAAE,EAAE,cAAc,CAAC;QAClD6B,YAAY,CAACjB,OAAO,CAACK,mBAAmB,GAAG;UAAEC,IAAI,EAAE;QAAM,CAAC,CAAC;MAC7D,CAAC,EAAE5B,8BAA8B,CACnC,CAAC;IACH;EACF;EACAe,UAAU,CAAC,CAAC;AACd;AAEA,OAAO,SAAS0B,iDAAiDA,CAAC/B,EAAU,EAAE;EAC5ER,OAAO,GAAGA,OAAO,CAACiC,GAAG,CAAEN,KAAK,IAC1BA,KAAK,CAACnB,EAAE,KAAKA,EAAE,IAAI,CAACmB,KAAK,CAACC,qBAAqB,GAC3C;IAAE,GAAGD,KAAK;IAAEC,qBAAqB,EAAE;EAAK,CAAC,GACzCD,KACN,CAAC;AACH;AAEA,OAAO,SAASW,8BAA8BA,CAC5C9B,EAAU,EACVgC,MAAgC,EAChC;EACA,MAAMb,KAAK,GAAG3B,OAAO,CAAC8B,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;EACpD,IAAI,CAACmB,KAAK,EAAE;IACV;EACF;EACApB,uBAAuB,CAACC,EAAE,CAAC;EAC3B,IAAImB,KAAK,CAACD,IAAI,EAAE;IACdC,KAAK,CAACP,OAAO,CAACG,YAAY,GAAG,KAAK,CAAC;EACrC;EACAvB,OAAO,GAAGA,OAAO,CAACgC,MAAM,CAAED,IAAI,IAAKA,IAAI,CAACvB,EAAE,KAAKA,EAAE,CAAC;EAClDmB,KAAK,CAACP,OAAO,CAACI,SAAS,GAAGgB,MAAM,CAAC;EACjC3B,UAAU,CAAC,CAAC;AACd;AAEA,OAAO,SAAS4B,mCAAmCA,CACjDD,MAAgC,EAChC;EACA,MAAME,cAAc,GAAG1C,OAAO;EAC9B,IAAI,CAAC0C,cAAc,CAACC,MAAM,EAAE;IAC1B;EACF;EACA3C,OAAO,GAAG,EAAE;EACZ0C,cAAc,CAAC5B,OAAO,CAAEa,KAAK,IAAK;IAChCpB,uBAAuB,CAACoB,KAAK,CAACnB,EAAE,CAAC;IACjC,IAAImB,KAAK,CAACD,IAAI,EAAE;MACdC,KAAK,CAACP,OAAO,CAACG,YAAY,GAAG,KAAK,CAAC;IACrC;IACAI,KAAK,CAACP,OAAO,CAACI,SAAS,GAAGgB,MAAM,CAAC;IACjCb,KAAK,CAACP,OAAO,CAACK,mBAAmB,GAAG;MAAEC,IAAI,EAAE;IAAM,CAAC,CAAC;EACtD,CAAC,CAAC;EACFb,UAAU,CAAC,CAAC;AACd;AAEA,OAAO,SAAS+B,qCAAqCA,CAAA,EAAG;EACtD,IAAI,CAAC5C,OAAO,CAAC2C,MAAM,EAAE;IACnB;EACF;EACA,MAAME,kBAAkB,GAAG7C,OAAO,CAACgC,MAAM,CACtCL,KAAK,IAAK,CAACA,KAAK,CAACC,qBACpB,CAAC;EACD,MAAMkB,gBAAgB,GAAG9C,OAAO,CAACgC,MAAM,CACpCL,KAAK,IAAKA,KAAK,CAACC,qBACnB,CAAC;EACDiB,kBAAkB,CAAC/B,OAAO,CAAEa,KAAK,IAAK;IACpC,IAAIA,KAAK,CAACD,IAAI,EAAE;MACdC,KAAK,CAACP,OAAO,CAACG,YAAY,GAAG,KAAK,CAAC;IACrC;IACAI,KAAK,CAACP,OAAO,CAACI,SAAS,GAAG,UAAU,CAAC;IACrCG,KAAK,CAACP,OAAO,CAACK,mBAAmB,GAAG;MAAEC,IAAI,EAAE;IAAM,CAAC,CAAC;EACtD,CAAC,CAAC;EACF1B,OAAO,GAAG8C,gBAAgB,CAACb,GAAG,CAAEN,KAAK,IAAK;IACxC,IAAIA,KAAK,CAACD,IAAI,EAAE;MACdC,KAAK,CAACP,OAAO,CAACG,YAAY,GAAG,KAAK,CAAC;MACnC,OAAO;QAAE,GAAGI,KAAK;QAAED,IAAI,EAAE;MAAM,CAAC;IAClC;IACA,OAAOC,KAAK;EACd,CAAC,CAAC;EACFd,UAAU,CAAC,CAAC;EACZ,IAAI,CAACb,OAAO,CAAC2C,MAAM,EAAE;IACnB;EACF;EACA,IAAIxC,qBAAqB,EAAE;IACzBQ,YAAY,CAACR,qBAAqB,CAAC;EACrC;EACA,MAAM4C,gBAAgB,GAAGD,gBAAgB,CAACb,GAAG,CAAEN,KAAK,IAAKA,KAAK,CAACnB,EAAE,CAAC;EAClEL,qBAAqB,GAAGiC,UAAU,CAAC,MAAM;IACvCjC,qBAAqB,GAAG6C,SAAS;IACjCD,gBAAgB,CAACjC,OAAO,CAAEN,EAAE,IAAK;MAC/B,MAAM6B,YAAY,GAAGrC,OAAO,CAAC8B,IAAI,CAAEH,KAAK,IAAKA,KAAK,CAACnB,EAAE,KAAKA,EAAE,CAAC;MAC7D,IAAI,CAAC6B,YAAY,EAAE;QACjB;MACF;MACAC,8BAA8B,CAAC9B,EAAE,EAAE,UAAU,CAAC;MAC9C6B,YAAY,CAACjB,OAAO,CAACK,mBAAmB,GAAG;QAAEC,IAAI,EAAE;MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC;EACJ,CAAC,EAAE,GAAG,CAAC;AACT;AAEA,OAAO,SAASuB,6BAA6BA,CAC3CC,SAAiB,EACjBC,OAAgB,EAChB;EACA,MAAMC,UAAU,GAAG9C,gBAAgB,CAACgB,IAAI,GAAG,CAAC;EAC5C,IAAI6B,OAAO,EAAE;IACX7C,gBAAgB,CAACW,GAAG,CAACiC,SAAS,CAAC;EACjC,CAAC,MAAM;IACL5C,gBAAgB,CAACM,MAAM,CAACsC,SAAS,CAAC;EACpC;EACA,IAAI,CAACE,UAAU,IAAI9C,gBAAgB,CAACgB,IAAI,GAAG,CAAC,EAAE;IAC5CsB,qCAAqC,CAAC,CAAC;EACzC;AACF;AAEA,OAAO,SAASS,gCAAgCA,CAAA,EAAG;EACjD,IAAIlD,qBAAqB,EAAE;IACzBQ,YAAY,CAACR,qBAAqB,CAAC;IACnCA,qBAAqB,GAAG6C,SAAS;EACnC;EACA5C,mBAAmB,CAACU,OAAO,CAACH,YAAY,CAAC;EACzCP,mBAAmB,CAACkD,KAAK,CAAC,CAAC;EAC3BtD,OAAO,GAAG,EAAE;EACZD,MAAM,GAAG,CAAC;EACVO,gBAAgB,CAACgD,KAAK,CAAC,CAAC;EACxBrD,SAAS,CAACqD,KAAK,CAAC,CAAC;AACnB","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -17,12 +17,15 @@ export function NativeSheetSecurityProvider({
|
|
|
17
17
|
blocked,
|
|
18
18
|
children
|
|
19
19
|
}) {
|
|
20
|
+
const parentBlocked = useContext(NativeSheetSecurityContext);
|
|
21
|
+
const blockerId = useRef(Symbol('NativeSheetSecurityProvider')).current;
|
|
22
|
+
const effectiveBlocked = parentBlocked || blocked;
|
|
20
23
|
useEffect(() => {
|
|
21
|
-
setNativeSheetRegistryBlocked(blocked);
|
|
22
|
-
return () => setNativeSheetRegistryBlocked(false);
|
|
23
|
-
}, [blocked]);
|
|
24
|
+
setNativeSheetRegistryBlocked(blockerId, blocked);
|
|
25
|
+
return () => setNativeSheetRegistryBlocked(blockerId, false);
|
|
26
|
+
}, [blocked, blockerId]);
|
|
24
27
|
return /*#__PURE__*/_jsx(NativeSheetSecurityContext.Provider, {
|
|
25
|
-
value:
|
|
28
|
+
value: effectiveBlocked,
|
|
26
29
|
children: children
|
|
27
30
|
});
|
|
28
31
|
}
|
|
@@ -117,17 +120,13 @@ function NativeSheetComponent({
|
|
|
117
120
|
const timer = setTimeout(() => notifyDismiss('security'), 500);
|
|
118
121
|
return () => clearTimeout(timer);
|
|
119
122
|
}, [notifyDismiss, open, securityBlocked]);
|
|
120
|
-
useEffect(() => {
|
|
121
|
-
if (open && lockedHeight && !securityBlocked) {
|
|
122
|
-
onPresentationRequested?.();
|
|
123
|
-
}
|
|
124
|
-
}, [lockedHeight, onPresentationRequested, open, securityBlocked]);
|
|
125
123
|
const handlePresented = useCallback(event => {
|
|
124
|
+
onPresentationRequested?.();
|
|
126
125
|
onPresented?.(event.nativeEvent.height);
|
|
127
126
|
onAnimationComplete?.({
|
|
128
127
|
open: true
|
|
129
128
|
});
|
|
130
|
-
}, [onAnimationComplete, onPresented]);
|
|
129
|
+
}, [onAnimationComplete, onPresentationRequested, onPresented]);
|
|
131
130
|
const handleContentLayout = useCallback(event => {
|
|
132
131
|
if (!open || !shouldAutoMeasure) {
|
|
133
132
|
return;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","useSyncExternalStore","StyleSheet","useWindowDimensions","View","RNCNativeSheet","resolveNativeSheetHeight","resolveNativeSheetLayoutConstraints","addNativeSheetRegistryEntry","closeNativeSheetRegistryEntry","finishNativeSheetRegistryEntry","getNativeSheetRegistrySnapshot","markNativeSheetRegistryEntryPresentationRequested","setNativeSheetRegistryBlocked","subscribeNativeSheetRegistry","jsx","_jsx","Fragment","_Fragment","NativeSheetSecurityContext","NativeSheetSecurityProvider","blocked","children","Provider","value","NativeSheetComponent","open","height","maxHeight","onDismiss","onPresented","onAnimationComplete","onOpenChange","dismissOnSnapToBottom","disableDrag","dismissOnPanDown","dismissOnOverlayPress","dismissOnBackdropPress","dismissOnBackPress","showHandle","cornerRadius","dimAmount","backgroundColor","testID","onPresentationRequested","securityBlocked","windowHeight","width","measurement","setMeasurement","lockedHeightRef","undefined","dismissNotifiedRef","wasOpenRef","openCycleRef","explicitHeightForOpenRef","
|
|
1
|
+
{"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","useSyncExternalStore","StyleSheet","useWindowDimensions","View","RNCNativeSheet","resolveNativeSheetHeight","resolveNativeSheetLayoutConstraints","addNativeSheetRegistryEntry","closeNativeSheetRegistryEntry","finishNativeSheetRegistryEntry","getNativeSheetRegistrySnapshot","markNativeSheetRegistryEntryPresentationRequested","setNativeSheetRegistryBlocked","subscribeNativeSheetRegistry","jsx","_jsx","Fragment","_Fragment","NativeSheetSecurityContext","NativeSheetSecurityProvider","blocked","children","parentBlocked","blockerId","Symbol","current","effectiveBlocked","Provider","value","NativeSheetComponent","open","height","maxHeight","onDismiss","onPresented","onAnimationComplete","onOpenChange","dismissOnSnapToBottom","disableDrag","dismissOnPanDown","dismissOnOverlayPress","dismissOnBackdropPress","dismissOnBackPress","showHandle","cornerRadius","dimAmount","backgroundColor","testID","onPresentationRequested","securityBlocked","windowHeight","width","measurement","setMeasurement","lockedHeightRef","undefined","dismissNotifiedRef","wasOpenRef","openCycleRef","explicitHeightForOpenRef","shouldAutoMeasure","resolvedMaxHeight","Math","floor","currentHeight","explicitHeight","measuredHeight","openCycle","lockedHeight","resolvedDismissOnPanDown","resolvedDismissOnBackdropPress","layoutConstraints","notifyDismiss","reason","handleDismiss","event","nativeEvent","timer","setTimeout","clearTimeout","handlePresented","handleContentLayout","nextHeight","ceil","layout","nextMeasurement","min","currentMeasurement","hostStyle","styles","stagingHost","hostHeight","hostMaxHeight","Boolean","sheetHeight","sheetBackgroundColor","style","pointerEvents","shouldFillHost","content","collapsable","autoMeasureContent","onLayout","showNativeSheet","options","id","closeRequestedBeforeRegistration","close","renderContent","NativeSheetHostEntry","entry","handleOpenChange","nextOpen","handlePresentationRequested","NativeSheetHost","entries","map","NativeSheet","Object","assign","show","create","position","left","bottom","opacity","flex","alignSelf","flexShrink"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ export declare function markNativeSheetRegistryEntryPresentationRequested(id: nu
|
|
|
16
16
|
export declare function finishNativeSheetRegistryEntry(id: number, reason: NativeSheetDismissReason): void;
|
|
17
17
|
export declare function finishAllNativeSheetRegistryEntries(reason: NativeSheetDismissReason): void;
|
|
18
18
|
export declare function requestSecurityDismissAllNativeSheets(): void;
|
|
19
|
-
export declare function setNativeSheetRegistryBlocked(blocked: boolean): void;
|
|
19
|
+
export declare function setNativeSheetRegistryBlocked(blockerId: symbol, blocked: boolean): void;
|
|
20
20
|
export declare function resetNativeSheetRegistryForTests(): void;
|
|
21
21
|
export {};
|
|
22
22
|
//# sourceMappingURL=NativeSheetRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeSheetRegistry.d.ts","sourceRoot":"","sources":["../../../src/NativeSheetRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEhF,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,KAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AAuBnC,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,gBAAgB,iBAGtE;AAED,wBAAgB,8BAA8B,wCAE7C;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,SAAS,UAsBnB;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,MAAM,QA8BvD;AAED,wBAAgB,iDAAiD,CAAC,EAAE,EAAE,MAAM,QAM3E;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,wBAAwB,QAajC;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,wBAAwB,QAgBjC;AAED,wBAAgB,qCAAqC,
|
|
1
|
+
{"version":3,"file":"NativeSheetRegistry.d.ts","sourceRoot":"","sources":["../../../src/NativeSheetRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEhF,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,KAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AAuBnC,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,gBAAgB,iBAGtE;AAED,wBAAgB,8BAA8B,wCAE7C;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,SAAS,UAsBnB;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,MAAM,QA8BvD;AAED,wBAAgB,iDAAiD,CAAC,EAAE,EAAE,MAAM,QAM3E;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,wBAAwB,QAajC;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,wBAAwB,QAgBjC;AAED,wBAAgB,qCAAqC,SA2CpD;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,QAWjB;AAED,wBAAgB,gCAAgC,SAW/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,iBAAiB,EAQvB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,cAAc,CAAC;AAoBtB,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,UAAU,GACV,KAAK,GACL,cAAc,GACd,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC/D,yEAAyE;IACzE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,gBAAgB,EAChB,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CACnD;IACD,aAAa,EAAE,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,uBAAuB,KAAK,SAAS,CAAC,CAAC;IAC9E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAQD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,iBAAiB,EAQvB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,cAAc,CAAC;AAoBtB,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,UAAU,GACV,KAAK,GACL,cAAc,GACd,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC/D,yEAAyE;IACzE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,gBAAgB,EAChB,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CACnD;IACD,aAAa,EAAE,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,uBAAuB,KAAK,SAAS,CAAC,CAAC;IAC9E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAQD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,2CAazC;AA8LD,iBAAS,eAAe,CACtB,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAmBvB;AAsCD,wBAAgB,eAAe,4CAa9B;AAED,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAC,GAAG;IACnE,IAAI,EAAE,OAAO,eAAe,CAAC;CACmC,CAAC;AAkBnE,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC"}
|
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@ let entries: readonly NativeSheetRegistryEntry[] = [];
|
|
|
19
19
|
const listeners = new Set<RegistryListener>();
|
|
20
20
|
let securityFallbackTimer: ReturnType<typeof setTimeout> | undefined;
|
|
21
21
|
const closeFallbackTimers = new Map<number, ReturnType<typeof setTimeout>>();
|
|
22
|
-
|
|
22
|
+
const registryBlockers = new Set<symbol>();
|
|
23
23
|
|
|
24
24
|
function clearCloseFallbackTimer(id: number) {
|
|
25
25
|
const timer = closeFallbackTimers.get(id);
|
|
@@ -48,7 +48,7 @@ export function addNativeSheetRegistryEntry(
|
|
|
48
48
|
) {
|
|
49
49
|
const id = nextId;
|
|
50
50
|
nextId += 1;
|
|
51
|
-
if (
|
|
51
|
+
if (registryBlockers.size > 0) {
|
|
52
52
|
options.onOpenChange?.(true);
|
|
53
53
|
options.onOpenChange?.(false);
|
|
54
54
|
options.onDismiss?.('security');
|
|
@@ -175,15 +175,31 @@ export function requestSecurityDismissAllNativeSheets() {
|
|
|
175
175
|
if (securityFallbackTimer) {
|
|
176
176
|
clearTimeout(securityFallbackTimer);
|
|
177
177
|
}
|
|
178
|
+
const fallbackEntryIds = presentedEntries.map((entry) => entry.id);
|
|
178
179
|
securityFallbackTimer = setTimeout(() => {
|
|
179
180
|
securityFallbackTimer = undefined;
|
|
180
|
-
|
|
181
|
+
fallbackEntryIds.forEach((id) => {
|
|
182
|
+
const pendingEntry = entries.find((entry) => entry.id === id);
|
|
183
|
+
if (!pendingEntry) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
finishNativeSheetRegistryEntry(id, 'security');
|
|
187
|
+
pendingEntry.options.onAnimationComplete?.({ open: false });
|
|
188
|
+
});
|
|
181
189
|
}, 500);
|
|
182
190
|
}
|
|
183
191
|
|
|
184
|
-
export function setNativeSheetRegistryBlocked(
|
|
185
|
-
|
|
192
|
+
export function setNativeSheetRegistryBlocked(
|
|
193
|
+
blockerId: symbol,
|
|
194
|
+
blocked: boolean
|
|
195
|
+
) {
|
|
196
|
+
const wasBlocked = registryBlockers.size > 0;
|
|
186
197
|
if (blocked) {
|
|
198
|
+
registryBlockers.add(blockerId);
|
|
199
|
+
} else {
|
|
200
|
+
registryBlockers.delete(blockerId);
|
|
201
|
+
}
|
|
202
|
+
if (!wasBlocked && registryBlockers.size > 0) {
|
|
187
203
|
requestSecurityDismissAllNativeSheets();
|
|
188
204
|
}
|
|
189
205
|
}
|
|
@@ -197,6 +213,6 @@ export function resetNativeSheetRegistryForTests() {
|
|
|
197
213
|
closeFallbackTimers.clear();
|
|
198
214
|
entries = [];
|
|
199
215
|
nextId = 1;
|
|
200
|
-
|
|
216
|
+
registryBlockers.clear();
|
|
201
217
|
listeners.clear();
|
|
202
218
|
}
|
package/src/index.tsx
CHANGED
|
@@ -116,12 +116,15 @@ export function NativeSheetSecurityProvider({
|
|
|
116
116
|
blocked,
|
|
117
117
|
children,
|
|
118
118
|
}: PropsWithChildren<{ blocked: boolean }>) {
|
|
119
|
+
const parentBlocked = useContext(NativeSheetSecurityContext);
|
|
120
|
+
const blockerId = useRef(Symbol('NativeSheetSecurityProvider')).current;
|
|
121
|
+
const effectiveBlocked = parentBlocked || blocked;
|
|
119
122
|
useEffect(() => {
|
|
120
|
-
setNativeSheetRegistryBlocked(blocked);
|
|
121
|
-
return () => setNativeSheetRegistryBlocked(false);
|
|
122
|
-
}, [blocked]);
|
|
123
|
+
setNativeSheetRegistryBlocked(blockerId, blocked);
|
|
124
|
+
return () => setNativeSheetRegistryBlocked(blockerId, false);
|
|
125
|
+
}, [blocked, blockerId]);
|
|
123
126
|
return (
|
|
124
|
-
<NativeSheetSecurityContext.Provider value={
|
|
127
|
+
<NativeSheetSecurityContext.Provider value={effectiveBlocked}>
|
|
125
128
|
{children}
|
|
126
129
|
</NativeSheetSecurityContext.Provider>
|
|
127
130
|
);
|
|
@@ -231,17 +234,13 @@ function NativeSheetComponent({
|
|
|
231
234
|
const timer = setTimeout(() => notifyDismiss('security'), 500);
|
|
232
235
|
return () => clearTimeout(timer);
|
|
233
236
|
}, [notifyDismiss, open, securityBlocked]);
|
|
234
|
-
useEffect(() => {
|
|
235
|
-
if (open && lockedHeight && !securityBlocked) {
|
|
236
|
-
onPresentationRequested?.();
|
|
237
|
-
}
|
|
238
|
-
}, [lockedHeight, onPresentationRequested, open, securityBlocked]);
|
|
239
237
|
const handlePresented = useCallback(
|
|
240
238
|
(event: NativeSyntheticEvent<NativeSheetPresentedEvent>) => {
|
|
239
|
+
onPresentationRequested?.();
|
|
241
240
|
onPresented?.(event.nativeEvent.height);
|
|
242
241
|
onAnimationComplete?.({ open: true });
|
|
243
242
|
},
|
|
244
|
-
[onAnimationComplete, onPresented]
|
|
243
|
+
[onAnimationComplete, onPresentationRequested, onPresented]
|
|
245
244
|
);
|
|
246
245
|
const handleContentLayout = useCallback(
|
|
247
246
|
(event: LayoutChangeEvent) => {
|