@lodev09/react-native-true-sheet 3.11.0-beta.8 → 3.11.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.
- package/LICENSE +1 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +11 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +48 -15
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +114 -1
- package/ios/TrueSheetContainerView.h +3 -0
- package/ios/TrueSheetContainerView.mm +29 -0
- package/ios/TrueSheetFooterView.mm +25 -0
- package/ios/TrueSheetView.mm +7 -0
- package/ios/TrueSheetViewController.h +2 -0
- package/ios/TrueSheetViewController.mm +151 -0
- package/lib/module/TrueSheet.web.js +18 -2
- package/lib/module/TrueSheet.web.js.map +1 -1
- package/lib/module/navigation/TrueSheetRouter.js +1 -1
- package/lib/module/navigation/TrueSheetRouter.js.map +1 -1
- package/lib/module/navigation/createTrueSheetNavigator.js +1 -1
- package/lib/module/navigation/createTrueSheetNavigator.js.map +1 -1
- package/lib/module/navigation/useTrueSheetNavigation.js +1 -1
- package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -1
- package/lib/module/web/vaul/browser.js +1 -1
- package/lib/module/web/vaul/browser.js.map +1 -1
- package/lib/module/web/vaul/style.css.d.js +2 -0
- package/lib/module/web/vaul/style.css.d.js.map +1 -0
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts +1 -1
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts.map +1 -1
- package/lib/typescript/src/navigation/TrueSheetView.d.ts +1 -1
- package/lib/typescript/src/navigation/TrueSheetView.d.ts.map +1 -1
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts +1 -1
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/types.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
- package/lib/typescript/src/navigation/types.d.ts +1 -1
- package/lib/typescript/src/navigation/types.d.ts.map +1 -1
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +1 -1
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -1
- package/package.json +21 -19
- package/src/TrueSheet.web.tsx +20 -4
- package/src/navigation/TrueSheetRouter.ts +1 -1
- package/src/navigation/TrueSheetView.tsx +1 -1
- package/src/navigation/createTrueSheetNavigator.tsx +1 -1
- package/src/navigation/screen/types.ts +1 -1
- package/src/navigation/screen/useSheetScreenState.ts +1 -1
- package/src/navigation/types.ts +1 -1
- package/src/navigation/useTrueSheetNavigation.ts +1 -1
- package/src/web/vaul/style.css.d.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, NavigationState, ParamListBase, RouteProp, StackActionHelpers } from '@react-navigation/
|
|
1
|
+
import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, NavigationState, ParamListBase, RouteProp, StackActionHelpers } from '@react-navigation/core';
|
|
2
2
|
import type { DetentInfoEventPayload, PositionChangeEventPayload, TrueSheetProps } from '../TrueSheet.types';
|
|
3
3
|
export type PositionChangeHandler = (payload: PositionChangeEventPayload) => void;
|
|
4
4
|
export type TrueSheetNavigationEventMap = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/navigation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,aAAa,EACb,SAAS,EACT,kBAAkB,EACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/navigation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,aAAa,EACb,SAAS,EACT,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,CAAC;AAElF,MAAM,MAAM,2BAA2B,GAAG;IACxC;;OAEG;IACH,gBAAgB,EAAE;QAAE,IAAI,EAAE,sBAAsB,CAAA;KAAE,CAAC;IACnD;;OAEG;IACH,eAAe,EAAE;QAAE,IAAI,EAAE,sBAAsB,CAAA;KAAE,CAAC;IAClD;;OAEG;IACH,gBAAgB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IACtC;;OAEG;IACH,eAAe,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IACrC;;OAEG;IACH,iBAAiB,EAAE;QAAE,IAAI,EAAE,sBAAsB,CAAA;KAAE,CAAC;IACpD;;OAEG;IACH,cAAc,EAAE;QAAE,IAAI,EAAE,sBAAsB,CAAA;KAAE,CAAC;IACjD;;OAEG;IACH,eAAe,EAAE;QAAE,IAAI,EAAE,sBAAsB,CAAA;KAAE,CAAC;IAClD;;OAEG;IACH,YAAY,EAAE;QAAE,IAAI,EAAE,sBAAsB,CAAA;KAAE,CAAC;IAC/C;;OAEG;IACH,mBAAmB,EAAE;QAAE,IAAI,EAAE,0BAA0B,CAAA;KAAE,CAAC;IAC1D;;OAEG;IACH,cAAc,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IACpC;;OAEG;IACH,aAAa,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IACnC;;OAEG;IACH,YAAY,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CAC1E,eAAe,CAAC,SAAS,CAAC,EAC1B,QAAQ,CACT,GAAG;IACF,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;QACtD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,EAAE,CAAC;CACN,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,aAAa,IAChE,kBAAkB,CAAC,SAAS,CAAC,GAAG;IAC9B;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEJ,MAAM,MAAM,uBAAuB,CACjC,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAChD,cAAc,CAChB,SAAS,EACT,SAAS,EACT,WAAW,EACX,wBAAwB,CAAC,SAAS,CAAC,EACnC,0BAA0B,EAC1B,2BAA2B,CAC5B,GACC,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAEpC,MAAM,MAAM,oBAAoB,CAC9B,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAChD;IACF,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACvE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,CACxD,aAAa,EACb,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,cAAc,EACZ,SAAS,GACT,iBAAiB,GACjB,cAAc,GACd,aAAa,GACb,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,QAAQ,GACR,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,GACb,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,aAAa,GACb,mBAAmB,GACnB,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,WAAW,GACX,UAAU,GACV,gBAAgB,CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,GAAG;IACvE;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,CAC3D,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,wBAAwB,CAAC,aAAa,CAAC,EACvC,0BAA0B,EAC1B,2BAA2B,EAC3B,OAAO,CACR,GAAG;IACF;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAC1C,0BAA0B,EAC1B,uBAAuB,CAAC,aAAa,CAAC,EACtC,SAAS,CAAC,aAAa,CAAC,CACzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTrueSheetNavigation.d.ts","sourceRoot":"","sources":["../../../../src/navigation/useTrueSheetNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useTrueSheetNavigation.d.ts","sourceRoot":"","sources":["../../../../src/navigation/useTrueSheetNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,sBAAsB,GACjC,CAAC,SAAS,aAAa,GAAG,aAAa,OACpC,uBAAuB,CAAC,CAAC,CAAgD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodev09/react-native-true-sheet",
|
|
3
|
-
"version": "3.11.0
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "The true native bottom sheet experience for your React Native Apps.",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
@@ -90,14 +90,16 @@
|
|
|
90
90
|
"@evilmartians/lefthook": "^2.0.4",
|
|
91
91
|
"@radix-ui/react-dialog": "^1.1.1",
|
|
92
92
|
"@radix-ui/react-presence": "^1",
|
|
93
|
-
"@react-native/babel-preset": "^0.
|
|
94
|
-
"@react-native/eslint-config": "^0.
|
|
93
|
+
"@react-native/babel-preset": "^0.85.3",
|
|
94
|
+
"@react-native/eslint-config": "^0.85.3",
|
|
95
|
+
"@react-native/jest-preset": "^0.85.3",
|
|
96
|
+
"@react-navigation/core": "^7.13.7",
|
|
95
97
|
"@react-navigation/native": "^7.1.6",
|
|
96
|
-
"@release-it/conventional-changelog": "^
|
|
98
|
+
"@release-it/conventional-changelog": "^11.0.0",
|
|
97
99
|
"@testing-library/react-native": "^13.3.3",
|
|
98
100
|
"@types/babel__core": "^7",
|
|
99
101
|
"@types/jest": "^29.5.14",
|
|
100
|
-
"@types/react": "~19.2.
|
|
102
|
+
"@types/react": "~19.2.14",
|
|
101
103
|
"commitlint": "^19.8.1",
|
|
102
104
|
"del-cli": "^6.0.0",
|
|
103
105
|
"eslint": "^9.35.0",
|
|
@@ -106,25 +108,25 @@
|
|
|
106
108
|
"jest": "^29.7.0",
|
|
107
109
|
"nanoid": "^5.1.5",
|
|
108
110
|
"prettier": "^3.0.3",
|
|
109
|
-
"react": "19.2.
|
|
110
|
-
"react-native": "0.
|
|
111
|
-
"react-native-builder-bob": "^0.
|
|
112
|
-
"react-native-reanimated": "4.
|
|
113
|
-
"react-native-worklets": "0.
|
|
114
|
-
"react-test-renderer": "19.2.
|
|
115
|
-
"release-it": "^
|
|
111
|
+
"react": "19.2.3",
|
|
112
|
+
"react-native": "0.85.3",
|
|
113
|
+
"react-native-builder-bob": "^0.41.0",
|
|
114
|
+
"react-native-reanimated": "4.3.1",
|
|
115
|
+
"react-native-worklets": "0.8.3",
|
|
116
|
+
"react-test-renderer": "19.2.3",
|
|
117
|
+
"release-it": "^20.0.1",
|
|
116
118
|
"turbo": "^2.5.6",
|
|
117
|
-
"typescript": "
|
|
119
|
+
"typescript": "~6.0.3"
|
|
118
120
|
},
|
|
119
121
|
"resolutions": {
|
|
120
|
-
"@types/react": "~19.2.
|
|
121
|
-
"react-native-reanimated": "4.
|
|
122
|
-
"react-native-worklets": "0.
|
|
122
|
+
"@types/react": "~19.2.14",
|
|
123
|
+
"react-native-reanimated": "4.3.1",
|
|
124
|
+
"react-native-worklets": "0.8.3"
|
|
123
125
|
},
|
|
124
126
|
"peerDependencies": {
|
|
125
127
|
"@radix-ui/react-dialog": ">=1",
|
|
126
128
|
"@radix-ui/react-presence": ">=1",
|
|
127
|
-
"@react-navigation/
|
|
129
|
+
"@react-navigation/core": ">=7",
|
|
128
130
|
"react": "*",
|
|
129
131
|
"react-native": "*",
|
|
130
132
|
"react-native-reanimated": ">=4",
|
|
@@ -137,7 +139,7 @@
|
|
|
137
139
|
"@radix-ui/react-presence": {
|
|
138
140
|
"optional": true
|
|
139
141
|
},
|
|
140
|
-
"@react-navigation/
|
|
142
|
+
"@react-navigation/core": {
|
|
141
143
|
"optional": true
|
|
142
144
|
},
|
|
143
145
|
"react-native-reanimated": {
|
|
@@ -155,7 +157,7 @@
|
|
|
155
157
|
],
|
|
156
158
|
"packageManager": "yarn@4.11.0",
|
|
157
159
|
"jest": {
|
|
158
|
-
"preset": "react-native",
|
|
160
|
+
"preset": "@react-native/jest-preset",
|
|
159
161
|
"setupFilesAfterEnv": [
|
|
160
162
|
"<rootDir>/jest.setup.js"
|
|
161
163
|
],
|
package/src/TrueSheet.web.tsx
CHANGED
|
@@ -494,6 +494,12 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
|
|
|
494
494
|
useEffect(() => {
|
|
495
495
|
const parent = drawerContentRef.current;
|
|
496
496
|
if (!parent) return;
|
|
497
|
+
// Skip while dismissing: this sheet's stack pop changes `descendants`,
|
|
498
|
+
// which would re-fire the effect and write `wrapper.style.transition =
|
|
499
|
+
// 'clip-path …'`, clobbering vaul's just-written `'transform …'` for the
|
|
500
|
+
// dismiss animation. Vaul fully owns this sheet's transitions on the way
|
|
501
|
+
// out — nothing to align with anymore.
|
|
502
|
+
if (!isOpen) return;
|
|
497
503
|
const parentWrapper = parent.closest<HTMLElement>('[data-vaul-detached-wrapper]');
|
|
498
504
|
|
|
499
505
|
const transition = `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`;
|
|
@@ -598,7 +604,7 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
|
|
|
598
604
|
cancelAnimationFrame(raf);
|
|
599
605
|
observer.disconnect();
|
|
600
606
|
};
|
|
601
|
-
}, [descendants, activeSnapPoint, cornerRadius, isFormSheet]);
|
|
607
|
+
}, [descendants, activeSnapPoint, cornerRadius, isFormSheet, isOpen]);
|
|
602
608
|
|
|
603
609
|
// Focus/blur events fire when a descendant sheet appears on top of this one
|
|
604
610
|
// (blur) or when all descendants are dismissed (focus). will-events fire
|
|
@@ -744,9 +750,19 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
|
|
|
744
750
|
return Math.max(min, Math.min(measuredContentHeight, max));
|
|
745
751
|
}, [maxContentHeight, isFormSheet, windowHeight, detachedOffset, measuredContentHeight]);
|
|
746
752
|
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
753
|
+
// Center the form sheet using the actual visible drawer height. Vaul
|
|
754
|
+
// auto-sizes to content (capped by `maxContentHeight`), so when content is
|
|
755
|
+
// shorter than `effectiveMaxContentHeight`'s min-clamped floor, using that
|
|
756
|
+
// for the offset would push a small sheet below the viewport center.
|
|
757
|
+
const effectiveDetachedOffset = useMemo(() => {
|
|
758
|
+
if (!isFormSheet) return detachedOffset;
|
|
759
|
+
const max = Math.max(0, windowHeight - 2 * detachedOffset);
|
|
760
|
+
const visibleHeight =
|
|
761
|
+
measuredContentHeight > 0
|
|
762
|
+
? Math.min(measuredContentHeight, max)
|
|
763
|
+
: (effectiveMaxContentHeight ?? 0);
|
|
764
|
+
return Math.max(0, (windowHeight - visibleHeight) / 2);
|
|
765
|
+
}, [isFormSheet, windowHeight, detachedOffset, measuredContentHeight, effectiveMaxContentHeight]);
|
|
750
766
|
|
|
751
767
|
// The wrapper holds all horizontal sizing/anchoring so its rounded-bottom
|
|
752
768
|
// clip (when detached) aligns with the drawer's horizontal bounds on
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
type StaticConfig,
|
|
6
6
|
type TypedNavigator,
|
|
7
7
|
useNavigationBuilder,
|
|
8
|
-
} from '@react-navigation/
|
|
8
|
+
} from '@react-navigation/core';
|
|
9
9
|
|
|
10
10
|
import { TrueSheetRouter, type TrueSheetRouterOptions } from './TrueSheetRouter';
|
|
11
11
|
import { TrueSheetView } from './TrueSheetView';
|
|
@@ -23,7 +23,7 @@ import type {
|
|
|
23
23
|
TrueSheetNavigationProp,
|
|
24
24
|
} from '../types';
|
|
25
25
|
import { TrueSheetActions } from '../TrueSheetRouter';
|
|
26
|
-
import type { ParamListBase } from '@react-navigation/
|
|
26
|
+
import type { ParamListBase } from '@react-navigation/core';
|
|
27
27
|
|
|
28
28
|
type EmitFn = TrueSheetNavigationHelpers['emit'];
|
|
29
29
|
|
package/src/navigation/types.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module './style.css';
|