react-native-screen-transitions 3.7.0-beta.2 → 3.7.0

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.
@@ -11,10 +11,15 @@ const NATIVE_STACK_TRANSITION_RESET_OPTIONS = {
11
11
  headerShown: false,
12
12
  gestureEnabled: false
13
13
  };
14
- const gestureEnabledRestoreByAdaptedOptions = new WeakMap();
14
+ const ADAPTER_GESTURE_ENABLED_RESTORE = Symbol("react-native-screen-transitions.adapterGestureEnabledRestore");
15
+ const ADAPTER_GESTURE_DIRECTION_RESTORE = Symbol("react-native-screen-transitions.adapterGestureDirectionRestore");
16
+ const ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE = Symbol("react-native-screen-transitions.adapterGestureResponseDistanceRestore");
15
17
  function isPlainOptions(value) {
16
18
  return typeof value === "object" && value !== null;
17
19
  }
20
+ function hasOwnOption(value, key) {
21
+ return Object.getOwnPropertyDescriptor(value, key) !== undefined;
22
+ }
18
23
  function adaptNativeStackTransitionOptions(options) {
19
24
  if (typeof options === "function") {
20
25
  return (...args) => adaptNativeStackTransitionOptions(options(...args));
@@ -32,26 +37,49 @@ function adaptNativeStackTransitionOptions(options) {
32
37
  ...NATIVE_STACK_TRANSITION_RESET_OPTIONS,
33
38
  enableTransitions: true
34
39
  };
35
- gestureEnabledRestoreByAdaptedOptions.set(adaptedOptions, {
36
- gestureEnabled: nativeOptions.gestureEnabled,
37
- hasGestureEnabled: "gestureEnabled" in nativeOptions
38
- });
40
+ delete adaptedOptions.gestureDirection;
41
+ delete adaptedOptions.gestureResponseDistance;
42
+ if (hasOwnOption(nativeOptions, "gestureEnabled")) {
43
+ adaptedOptions[ADAPTER_GESTURE_ENABLED_RESTORE] = nativeOptions.gestureEnabled;
44
+ }
45
+ if (hasOwnOption(nativeOptions, "gestureDirection")) {
46
+ adaptedOptions[ADAPTER_GESTURE_DIRECTION_RESTORE] = nativeOptions.gestureDirection;
47
+ }
48
+ if (hasOwnOption(nativeOptions, "gestureResponseDistance")) {
49
+ adaptedOptions[ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE] = nativeOptions.gestureResponseDistance;
50
+ }
39
51
  return adaptedOptions;
40
52
  }
41
53
  function resolveAdapterTransitionOptions(options) {
42
- const gestureEnabledRestore = gestureEnabledRestoreByAdaptedOptions.get(options);
43
- if (!gestureEnabledRestore) {
54
+ const optionRecord = options;
55
+ const hasGestureEnabledRestore = hasOwnOption(optionRecord, ADAPTER_GESTURE_ENABLED_RESTORE);
56
+ const hasGestureDirectionRestore = hasOwnOption(optionRecord, ADAPTER_GESTURE_DIRECTION_RESTORE);
57
+ const hasGestureResponseDistanceRestore = hasOwnOption(optionRecord, ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE);
58
+ if (!hasGestureEnabledRestore && !hasGestureDirectionRestore && !hasGestureResponseDistanceRestore) {
44
59
  return options;
45
60
  }
46
61
  const resolvedOptions = {
47
62
  ...options,
48
63
  enableTransitions: true
49
64
  };
50
- if (gestureEnabledRestore.hasGestureEnabled) {
51
- resolvedOptions.gestureEnabled = gestureEnabledRestore.gestureEnabled;
65
+ delete resolvedOptions[ADAPTER_GESTURE_ENABLED_RESTORE];
66
+ delete resolvedOptions[ADAPTER_GESTURE_DIRECTION_RESTORE];
67
+ delete resolvedOptions[ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE];
68
+ if (hasGestureEnabledRestore) {
69
+ resolvedOptions.gestureEnabled = optionRecord[ADAPTER_GESTURE_ENABLED_RESTORE];
52
70
  } else {
53
71
  delete resolvedOptions.gestureEnabled;
54
72
  }
73
+ if (hasGestureDirectionRestore) {
74
+ resolvedOptions.gestureDirection = optionRecord[ADAPTER_GESTURE_DIRECTION_RESTORE];
75
+ } else {
76
+ delete resolvedOptions.gestureDirection;
77
+ }
78
+ if (hasGestureResponseDistanceRestore) {
79
+ resolvedOptions.gestureResponseDistance = optionRecord[ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE];
80
+ } else {
81
+ delete resolvedOptions.gestureResponseDistance;
82
+ }
55
83
  return resolvedOptions;
56
84
  }
57
85
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NATIVE_STACK_TRANSITION_RESET_OPTIONS","presentation","animation","headerShown","gestureEnabled","gestureEnabledRestoreByAdaptedOptions","WeakMap","isPlainOptions","value","adaptNativeStackTransitionOptions","options","args","hasTransitionsEnabled","enableTransitions","nativeOptions","adaptedOptions","set","hasGestureEnabled","resolveAdapterTransitionOptions","gestureEnabledRestore","get","resolvedOptions"],"sourceRoot":"../../../../../src","sources":["shared/adapters/with-screen-transitions/options.ts"],"mappings":";;;;;;;AAkBA,MAAMA,qCAAwE,GAC7E;EACCC,YAAY,EAAE,2BAA2B;EACzCC,SAAS,EAAE,MAAM;EACjBC,WAAW,EAAE,KAAK;EAClBC,cAAc,EAAE;AACjB,CAAC;AAOF,MAAMC,qCAAqC,GAAG,IAAIC,OAAO,CAGvD,CAAC;AAMH,SAASC,cAAcA,CAACC,KAAc,EAAoC;EACzE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI;AACnD;AAEO,SAASC,iCAAiCA,CAE/CC,OAAiB,EAAY;EAC9B,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;IAClC,OAAQ,CAAC,GAAGC,IAAW,KACtBF,iCAAiC,CAACC,OAAO,CAAC,GAAGC,IAAI,CAAC,CAAC;EACrD;EAEA,IAAI,CAACJ,cAAc,CAACG,OAAO,CAAC,EAAE;IAC7B,OAAOA,OAAO;EACf;EAEA,MAAME,qBAAqB,GAAGF,OAAO,CAACG,iBAAiB,KAAK,IAAI;EAEhE,IAAI,CAACD,qBAAqB,EAAE;IAC3B,OAAOF,OAAO;EACf;EAEA,MAAMI,aAAa,GAAGJ,OAAkC;EACxD,MAAMK,cAAuC,GAAG;IAC/C,GAAGD,aAAa;IAChB,GAAGd,qCAAqC;IACxCa,iBAAiB,EAAE;EACpB,CAAC;EACDR,qCAAqC,CAACW,GAAG,CAACD,cAAc,EAAE;IACzDX,cAAc,EACbU,aAAa,CAACV,cAA0D;IACzEa,iBAAiB,EAAE,gBAAgB,IAAIH;EACxC,CAAC,CAAC;EAEF,OAAOC,cAAc;AACtB;AAEO,SAASG,+BAA+BA,CAE7CR,OAAiB,EAAqC;EACvD,MAAMS,qBAAqB,GAAGd,qCAAqC,CAACe,GAAG,CACtEV,OACD,CAAC;EAED,IAAI,CAACS,qBAAqB,EAAE;IAC3B,OAAOT,OAAO;EACf;EAEA,MAAMW,eAAe,GAAG;IACvB,GAAGX,OAAO;IACVG,iBAAiB,EAAE;EACpB,CAAC;EAED,IAAIM,qBAAqB,CAACF,iBAAiB,EAAE;IAC5CI,eAAe,CAACjB,cAAc,GAAGe,qBAAqB,CAACf,cAAc;EACtE,CAAC,MAAM;IACN,OAAOiB,eAAe,CAACjB,cAAc;EACtC;EAEA,OAAOiB,eAAe;AACvB","ignoreList":[]}
1
+ {"version":3,"names":["NATIVE_STACK_TRANSITION_RESET_OPTIONS","presentation","animation","headerShown","gestureEnabled","ADAPTER_GESTURE_ENABLED_RESTORE","Symbol","ADAPTER_GESTURE_DIRECTION_RESTORE","ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE","isPlainOptions","value","hasOwnOption","key","Object","getOwnPropertyDescriptor","undefined","adaptNativeStackTransitionOptions","options","args","hasTransitionsEnabled","enableTransitions","nativeOptions","adaptedOptions","gestureDirection","gestureResponseDistance","resolveAdapterTransitionOptions","optionRecord","hasGestureEnabledRestore","hasGestureDirectionRestore","hasGestureResponseDistanceRestore","resolvedOptions"],"sourceRoot":"../../../../../src","sources":["shared/adapters/with-screen-transitions/options.ts"],"mappings":"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","ignoreList":[]}
@@ -6,10 +6,15 @@ const NATIVE_STACK_TRANSITION_RESET_OPTIONS = {
6
6
  headerShown: false,
7
7
  gestureEnabled: false
8
8
  };
9
- const gestureEnabledRestoreByAdaptedOptions = new WeakMap();
9
+ const ADAPTER_GESTURE_ENABLED_RESTORE = Symbol("react-native-screen-transitions.adapterGestureEnabledRestore");
10
+ const ADAPTER_GESTURE_DIRECTION_RESTORE = Symbol("react-native-screen-transitions.adapterGestureDirectionRestore");
11
+ const ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE = Symbol("react-native-screen-transitions.adapterGestureResponseDistanceRestore");
10
12
  function isPlainOptions(value) {
11
13
  return typeof value === "object" && value !== null;
12
14
  }
15
+ function hasOwnOption(value, key) {
16
+ return Object.getOwnPropertyDescriptor(value, key) !== undefined;
17
+ }
13
18
  export function adaptNativeStackTransitionOptions(options) {
14
19
  if (typeof options === "function") {
15
20
  return (...args) => adaptNativeStackTransitionOptions(options(...args));
@@ -27,26 +32,49 @@ export function adaptNativeStackTransitionOptions(options) {
27
32
  ...NATIVE_STACK_TRANSITION_RESET_OPTIONS,
28
33
  enableTransitions: true
29
34
  };
30
- gestureEnabledRestoreByAdaptedOptions.set(adaptedOptions, {
31
- gestureEnabled: nativeOptions.gestureEnabled,
32
- hasGestureEnabled: "gestureEnabled" in nativeOptions
33
- });
35
+ delete adaptedOptions.gestureDirection;
36
+ delete adaptedOptions.gestureResponseDistance;
37
+ if (hasOwnOption(nativeOptions, "gestureEnabled")) {
38
+ adaptedOptions[ADAPTER_GESTURE_ENABLED_RESTORE] = nativeOptions.gestureEnabled;
39
+ }
40
+ if (hasOwnOption(nativeOptions, "gestureDirection")) {
41
+ adaptedOptions[ADAPTER_GESTURE_DIRECTION_RESTORE] = nativeOptions.gestureDirection;
42
+ }
43
+ if (hasOwnOption(nativeOptions, "gestureResponseDistance")) {
44
+ adaptedOptions[ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE] = nativeOptions.gestureResponseDistance;
45
+ }
34
46
  return adaptedOptions;
35
47
  }
36
48
  export function resolveAdapterTransitionOptions(options) {
37
- const gestureEnabledRestore = gestureEnabledRestoreByAdaptedOptions.get(options);
38
- if (!gestureEnabledRestore) {
49
+ const optionRecord = options;
50
+ const hasGestureEnabledRestore = hasOwnOption(optionRecord, ADAPTER_GESTURE_ENABLED_RESTORE);
51
+ const hasGestureDirectionRestore = hasOwnOption(optionRecord, ADAPTER_GESTURE_DIRECTION_RESTORE);
52
+ const hasGestureResponseDistanceRestore = hasOwnOption(optionRecord, ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE);
53
+ if (!hasGestureEnabledRestore && !hasGestureDirectionRestore && !hasGestureResponseDistanceRestore) {
39
54
  return options;
40
55
  }
41
56
  const resolvedOptions = {
42
57
  ...options,
43
58
  enableTransitions: true
44
59
  };
45
- if (gestureEnabledRestore.hasGestureEnabled) {
46
- resolvedOptions.gestureEnabled = gestureEnabledRestore.gestureEnabled;
60
+ delete resolvedOptions[ADAPTER_GESTURE_ENABLED_RESTORE];
61
+ delete resolvedOptions[ADAPTER_GESTURE_DIRECTION_RESTORE];
62
+ delete resolvedOptions[ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE];
63
+ if (hasGestureEnabledRestore) {
64
+ resolvedOptions.gestureEnabled = optionRecord[ADAPTER_GESTURE_ENABLED_RESTORE];
47
65
  } else {
48
66
  delete resolvedOptions.gestureEnabled;
49
67
  }
68
+ if (hasGestureDirectionRestore) {
69
+ resolvedOptions.gestureDirection = optionRecord[ADAPTER_GESTURE_DIRECTION_RESTORE];
70
+ } else {
71
+ delete resolvedOptions.gestureDirection;
72
+ }
73
+ if (hasGestureResponseDistanceRestore) {
74
+ resolvedOptions.gestureResponseDistance = optionRecord[ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE];
75
+ } else {
76
+ delete resolvedOptions.gestureResponseDistance;
77
+ }
50
78
  return resolvedOptions;
51
79
  }
52
80
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NATIVE_STACK_TRANSITION_RESET_OPTIONS","presentation","animation","headerShown","gestureEnabled","gestureEnabledRestoreByAdaptedOptions","WeakMap","isPlainOptions","value","adaptNativeStackTransitionOptions","options","args","hasTransitionsEnabled","enableTransitions","nativeOptions","adaptedOptions","set","hasGestureEnabled","resolveAdapterTransitionOptions","gestureEnabledRestore","get","resolvedOptions"],"sourceRoot":"../../../../../src","sources":["shared/adapters/with-screen-transitions/options.ts"],"mappings":";;AAkBA,MAAMA,qCAAwE,GAC7E;EACCC,YAAY,EAAE,2BAA2B;EACzCC,SAAS,EAAE,MAAM;EACjBC,WAAW,EAAE,KAAK;EAClBC,cAAc,EAAE;AACjB,CAAC;AAOF,MAAMC,qCAAqC,GAAG,IAAIC,OAAO,CAGvD,CAAC;AAMH,SAASC,cAAcA,CAACC,KAAc,EAAoC;EACzE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI;AACnD;AAEA,OAAO,SAASC,iCAAiCA,CAE/CC,OAAiB,EAAY;EAC9B,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;IAClC,OAAQ,CAAC,GAAGC,IAAW,KACtBF,iCAAiC,CAACC,OAAO,CAAC,GAAGC,IAAI,CAAC,CAAC;EACrD;EAEA,IAAI,CAACJ,cAAc,CAACG,OAAO,CAAC,EAAE;IAC7B,OAAOA,OAAO;EACf;EAEA,MAAME,qBAAqB,GAAGF,OAAO,CAACG,iBAAiB,KAAK,IAAI;EAEhE,IAAI,CAACD,qBAAqB,EAAE;IAC3B,OAAOF,OAAO;EACf;EAEA,MAAMI,aAAa,GAAGJ,OAAkC;EACxD,MAAMK,cAAuC,GAAG;IAC/C,GAAGD,aAAa;IAChB,GAAGd,qCAAqC;IACxCa,iBAAiB,EAAE;EACpB,CAAC;EACDR,qCAAqC,CAACW,GAAG,CAACD,cAAc,EAAE;IACzDX,cAAc,EACbU,aAAa,CAACV,cAA0D;IACzEa,iBAAiB,EAAE,gBAAgB,IAAIH;EACxC,CAAC,CAAC;EAEF,OAAOC,cAAc;AACtB;AAEA,OAAO,SAASG,+BAA+BA,CAE7CR,OAAiB,EAAqC;EACvD,MAAMS,qBAAqB,GAAGd,qCAAqC,CAACe,GAAG,CACtEV,OACD,CAAC;EAED,IAAI,CAACS,qBAAqB,EAAE;IAC3B,OAAOT,OAAO;EACf;EAEA,MAAMW,eAAe,GAAG;IACvB,GAAGX,OAAO;IACVG,iBAAiB,EAAE;EACpB,CAAC;EAED,IAAIM,qBAAqB,CAACF,iBAAiB,EAAE;IAC5CI,eAAe,CAACjB,cAAc,GAAGe,qBAAqB,CAACf,cAAc;EACtE,CAAC,MAAM;IACN,OAAOiB,eAAe,CAACjB,cAAc;EACtC;EAEA,OAAOiB,eAAe;AACvB","ignoreList":[]}
1
+ {"version":3,"names":["NATIVE_STACK_TRANSITION_RESET_OPTIONS","presentation","animation","headerShown","gestureEnabled","ADAPTER_GESTURE_ENABLED_RESTORE","Symbol","ADAPTER_GESTURE_DIRECTION_RESTORE","ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE","isPlainOptions","value","hasOwnOption","key","Object","getOwnPropertyDescriptor","undefined","adaptNativeStackTransitionOptions","options","args","hasTransitionsEnabled","enableTransitions","nativeOptions","adaptedOptions","gestureDirection","gestureResponseDistance","resolveAdapterTransitionOptions","optionRecord","hasGestureEnabledRestore","hasGestureDirectionRestore","hasGestureResponseDistanceRestore","resolvedOptions"],"sourceRoot":"../../../../../src","sources":["shared/adapters/with-screen-transitions/options.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/shared/adapters/with-screen-transitions/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAS1D,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,GAAG;IAC/D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACpC,cAAc,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACpD,IAAI,CAAC,cAAc,EAAE,MAAM,wBAAwB,CAAC,GACvD,wBAAwB,CAAC;AAoB1B,MAAM,MAAM,6BAA6B,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AAM7D,wBAAgB,iCAAiC,CAChD,QAAQ,SAAS,6BAA6B,GAAG,SAAS,EACzD,OAAO,EAAE,QAAQ,GAAG,QAAQ,CA6B7B;AAED,wBAAgB,+BAA+B,CAC9C,QAAQ,SAAS,wBAAwB,EACxC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,sBAAsB,CAqBtD"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/shared/adapters/with-screen-transitions/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAS1D,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,GAAG;IAC/D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACpC,cAAc,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACpD,IAAI,CAAC,cAAc,EAAE,MAAM,wBAAwB,CAAC,GACvD,wBAAwB,CAAC;AA0B1B,MAAM,MAAM,6BAA6B,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AAU7D,wBAAgB,iCAAiC,CAChD,QAAQ,SAAS,6BAA6B,GAAG,SAAS,EACzD,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAgD7B;AAED,wBAAgB,+BAA+B,CAC9C,QAAQ,SAAS,wBAAwB,EACxC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,sBAAsB,CA2DtD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screen-transitions",
3
- "version": "3.7.0-beta.2",
3
+ "version": "3.7.0",
4
4
  "description": "Easy screen transitions for React Native and Expo",
5
5
  "author": "Ed",
6
6
  "license": "MIT",
@@ -24,16 +24,22 @@ const NATIVE_STACK_TRANSITION_RESET_OPTIONS: NativeStackTransitionResetOptions =
24
24
  gestureEnabled: false,
25
25
  };
26
26
 
27
- type GestureEnabledRestore = {
28
- gestureEnabled: ScreenTransitionConfig["gestureEnabled"];
29
- hasGestureEnabled: boolean;
27
+ const ADAPTER_GESTURE_ENABLED_RESTORE = Symbol(
28
+ "react-native-screen-transitions.adapterGestureEnabledRestore",
29
+ );
30
+ const ADAPTER_GESTURE_DIRECTION_RESTORE = Symbol(
31
+ "react-native-screen-transitions.adapterGestureDirectionRestore",
32
+ );
33
+ const ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE = Symbol(
34
+ "react-native-screen-transitions.adapterGestureResponseDistanceRestore",
35
+ );
36
+
37
+ type OptionsWithTransitionRestore = Record<string, unknown> & {
38
+ [ADAPTER_GESTURE_ENABLED_RESTORE]?: ScreenTransitionConfig["gestureEnabled"];
39
+ [ADAPTER_GESTURE_DIRECTION_RESTORE]?: ScreenTransitionConfig["gestureDirection"];
40
+ [ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE]?: ScreenTransitionConfig["gestureResponseDistance"];
30
41
  };
31
42
 
32
- const gestureEnabledRestoreByAdaptedOptions = new WeakMap<
33
- Record<string, unknown>,
34
- GestureEnabledRestore
35
- >();
36
-
37
43
  export type NativeStackAdapterOptionInput =
38
44
  | Record<string, unknown>
39
45
  | ((...args: any[]) => Record<string, unknown> | undefined);
@@ -42,6 +48,10 @@ function isPlainOptions(value: unknown): value is Record<string, unknown> {
42
48
  return typeof value === "object" && value !== null;
43
49
  }
44
50
 
51
+ function hasOwnOption(value: object, key: PropertyKey): boolean {
52
+ return Object.getOwnPropertyDescriptor(value, key) !== undefined;
53
+ }
54
+
45
55
  export function adaptNativeStackTransitionOptions<
46
56
  TOptions extends NativeStackAdapterOptionInput | undefined,
47
57
  >(options: TOptions): TOptions {
@@ -66,11 +76,30 @@ export function adaptNativeStackTransitionOptions<
66
76
  ...NATIVE_STACK_TRANSITION_RESET_OPTIONS,
67
77
  enableTransitions: true,
68
78
  };
69
- gestureEnabledRestoreByAdaptedOptions.set(adaptedOptions, {
70
- gestureEnabled:
71
- nativeOptions.gestureEnabled as ScreenTransitionConfig["gestureEnabled"],
72
- hasGestureEnabled: "gestureEnabled" in nativeOptions,
73
- });
79
+
80
+ delete adaptedOptions.gestureDirection;
81
+ delete adaptedOptions.gestureResponseDistance;
82
+
83
+ if (hasOwnOption(nativeOptions, "gestureEnabled")) {
84
+ (adaptedOptions as OptionsWithTransitionRestore)[
85
+ ADAPTER_GESTURE_ENABLED_RESTORE
86
+ ] =
87
+ nativeOptions.gestureEnabled as ScreenTransitionConfig["gestureEnabled"];
88
+ }
89
+
90
+ if (hasOwnOption(nativeOptions, "gestureDirection")) {
91
+ (adaptedOptions as OptionsWithTransitionRestore)[
92
+ ADAPTER_GESTURE_DIRECTION_RESTORE
93
+ ] =
94
+ nativeOptions.gestureDirection as ScreenTransitionConfig["gestureDirection"];
95
+ }
96
+
97
+ if (hasOwnOption(nativeOptions, "gestureResponseDistance")) {
98
+ (adaptedOptions as OptionsWithTransitionRestore)[
99
+ ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE
100
+ ] =
101
+ nativeOptions.gestureResponseDistance as ScreenTransitionConfig["gestureResponseDistance"];
102
+ }
74
103
 
75
104
  return adaptedOptions as TOptions;
76
105
  }
@@ -78,11 +107,25 @@ export function adaptNativeStackTransitionOptions<
78
107
  export function resolveAdapterTransitionOptions<
79
108
  TOptions extends AdapterDescriptorOptions,
80
109
  >(options: TOptions): TOptions & ScreenTransitionConfig {
81
- const gestureEnabledRestore = gestureEnabledRestoreByAdaptedOptions.get(
82
- options as Record<string, unknown>,
110
+ const optionRecord = options as OptionsWithTransitionRestore;
111
+ const hasGestureEnabledRestore = hasOwnOption(
112
+ optionRecord,
113
+ ADAPTER_GESTURE_ENABLED_RESTORE,
114
+ );
115
+ const hasGestureDirectionRestore = hasOwnOption(
116
+ optionRecord,
117
+ ADAPTER_GESTURE_DIRECTION_RESTORE,
118
+ );
119
+ const hasGestureResponseDistanceRestore = hasOwnOption(
120
+ optionRecord,
121
+ ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE,
83
122
  );
84
123
 
85
- if (!gestureEnabledRestore) {
124
+ if (
125
+ !hasGestureEnabledRestore &&
126
+ !hasGestureDirectionRestore &&
127
+ !hasGestureResponseDistanceRestore
128
+ ) {
86
129
  return options;
87
130
  }
88
131
 
@@ -90,12 +133,36 @@ export function resolveAdapterTransitionOptions<
90
133
  ...options,
91
134
  enableTransitions: true,
92
135
  };
93
-
94
- if (gestureEnabledRestore.hasGestureEnabled) {
95
- resolvedOptions.gestureEnabled = gestureEnabledRestore.gestureEnabled;
136
+ delete (resolvedOptions as OptionsWithTransitionRestore)[
137
+ ADAPTER_GESTURE_ENABLED_RESTORE
138
+ ];
139
+ delete (resolvedOptions as OptionsWithTransitionRestore)[
140
+ ADAPTER_GESTURE_DIRECTION_RESTORE
141
+ ];
142
+ delete (resolvedOptions as OptionsWithTransitionRestore)[
143
+ ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE
144
+ ];
145
+
146
+ if (hasGestureEnabledRestore) {
147
+ resolvedOptions.gestureEnabled =
148
+ optionRecord[ADAPTER_GESTURE_ENABLED_RESTORE];
96
149
  } else {
97
150
  delete resolvedOptions.gestureEnabled;
98
151
  }
99
152
 
153
+ if (hasGestureDirectionRestore) {
154
+ resolvedOptions.gestureDirection =
155
+ optionRecord[ADAPTER_GESTURE_DIRECTION_RESTORE];
156
+ } else {
157
+ delete resolvedOptions.gestureDirection;
158
+ }
159
+
160
+ if (hasGestureResponseDistanceRestore) {
161
+ resolvedOptions.gestureResponseDistance =
162
+ optionRecord[ADAPTER_GESTURE_RESPONSE_DISTANCE_RESTORE];
163
+ } else {
164
+ delete resolvedOptions.gestureResponseDistance;
165
+ }
166
+
100
167
  return resolvedOptions;
101
168
  }