@lodev09/react-native-true-sheet 4.0.0-beta.1 → 4.0.0-beta.2
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/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +8 -2
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +9 -2
- package/android/src/main/java/com/lodev09/truesheet/utils/TouchEventDeduper.kt +31 -0
- package/ios/TrueSheetViewController.mm +1 -4
- package/lib/module/TrueSheet.js +12 -6
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +11 -9
- package/lib/module/TrueSheet.web.js.map +1 -1
- package/lib/module/TrueSheetPeek.web.js +3 -3
- package/lib/module/TrueSheetPeek.web.js.map +1 -1
- package/lib/module/mocks/navigation.js +31 -21
- package/lib/module/mocks/navigation.js.map +1 -1
- package/lib/module/mocks/navigationExpoRouter.js +21 -0
- package/lib/module/mocks/navigationExpoRouter.js.map +1 -0
- package/lib/module/mocks/reanimated.js +1 -1
- package/lib/module/mocks/reanimated.js.map +1 -1
- package/lib/module/navigation/{TrueSheetView.js → TrueSheetNavigatorContent.js} +14 -12
- package/lib/module/navigation/TrueSheetNavigatorContent.js.map +1 -0
- package/lib/module/navigation/actions.js +50 -0
- package/lib/module/navigation/actions.js.map +1 -0
- package/lib/module/navigation/{TrueSheetRouter.js → createTrueSheetRouter.js} +20 -24
- package/lib/module/navigation/createTrueSheetRouter.js.map +1 -0
- package/lib/module/navigation/expo-router/index.js +48 -0
- package/lib/module/navigation/expo-router/index.js.map +1 -0
- package/lib/module/navigation/index.js +43 -2
- package/lib/module/navigation/index.js.map +1 -1
- package/lib/module/navigation/navigator.js +10 -0
- package/lib/module/navigation/navigator.js.map +1 -0
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +2 -2
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -1
- package/lib/module/navigation/screen/TrueSheetScreen.js +2 -2
- package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -1
- package/lib/module/navigation/screen/useSheetScreenState.js +4 -4
- package/lib/module/navigation/screen/useSheetScreenState.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/dom.js +10 -0
- package/lib/module/web/dom.js.map +1 -0
- package/lib/module/web/vaul/helpers.js +10 -4
- package/lib/module/web/vaul/helpers.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
- package/lib/typescript/src/mocks/navigation.d.ts +5 -1
- package/lib/typescript/src/mocks/navigation.d.ts.map +1 -1
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +22 -0
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -0
- package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -1
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts +5 -0
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts.map +1 -0
- package/lib/typescript/src/navigation/actions.d.ts +71 -0
- package/lib/typescript/src/navigation/actions.d.ts.map +1 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +14 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts +37 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/index.d.ts +42 -2
- package/lib/typescript/src/navigation/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/navigator.d.ts +7 -0
- package/lib/typescript/src/navigation/navigator.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/types.d.ts +3 -4
- package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +3 -5
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
- package/lib/typescript/src/navigation/types.d.ts +24 -0
- 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/lib/typescript/src/web/dom.d.ts +7 -0
- package/lib/typescript/src/web/dom.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -1
- package/package.json +23 -8
- package/src/TrueSheet.tsx +11 -8
- package/src/TrueSheet.web.tsx +14 -18
- package/src/TrueSheetPeek.web.tsx +4 -3
- package/src/mocks/navigation.ts +32 -25
- package/src/mocks/navigationExpoRouter.ts +40 -0
- package/src/mocks/reanimated.ts +8 -9
- package/src/navigation/{TrueSheetView.tsx → TrueSheetNavigatorContent.tsx} +24 -17
- package/src/navigation/actions.ts +78 -0
- package/src/navigation/createTrueSheetRouter.ts +222 -0
- package/src/navigation/expo-router/index.ts +89 -0
- package/src/navigation/index.ts +69 -2
- package/src/navigation/navigator.ts +18 -0
- package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +2 -2
- package/src/navigation/screen/TrueSheetScreen.tsx +2 -2
- package/src/navigation/screen/types.ts +4 -6
- package/src/navigation/screen/useSheetScreenState.ts +8 -15
- package/src/navigation/types.ts +32 -0
- package/src/navigation/useTrueSheetNavigation.ts +1 -1
- package/src/web/dom.ts +9 -0
- package/src/web/vaul/helpers.ts +13 -6
- package/lib/module/navigation/TrueSheetRouter.js.map +0 -1
- package/lib/module/navigation/TrueSheetView.js.map +0 -1
- package/lib/module/navigation/createTrueSheetNavigator.js +0 -63
- package/lib/module/navigation/createTrueSheetNavigator.js.map +0 -1
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts +0 -57
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts.map +0 -1
- package/lib/typescript/src/navigation/TrueSheetView.d.ts +0 -10
- package/lib/typescript/src/navigation/TrueSheetView.d.ts.map +0 -1
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts +0 -35
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts.map +0 -1
- package/src/navigation/TrueSheetRouter.ts +0 -234
- package/src/navigation/createTrueSheetNavigator.tsx +0 -93
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { ParamListBase } from '@react-navigation/core';
|
|
2
|
+
import { StackRouter, unstable_integrateWithRouter, useNavigation } from 'expo-router';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
createTrueSheetRouter,
|
|
6
|
+
type StackRouterFactory,
|
|
7
|
+
type TrueSheetRouterOptions,
|
|
8
|
+
} from '../createTrueSheetRouter';
|
|
9
|
+
import { trueSheetNavigator } from '../navigator';
|
|
10
|
+
import type {
|
|
11
|
+
TrueSheetNavigationOptions,
|
|
12
|
+
TrueSheetNavigationProp,
|
|
13
|
+
TrueSheetNavigationState,
|
|
14
|
+
TrueSheetNavigatorContentExtraProps,
|
|
15
|
+
TrueSheetNavigatorProps,
|
|
16
|
+
TrueSheetStandardEventMap,
|
|
17
|
+
} from '../types';
|
|
18
|
+
|
|
19
|
+
const SheetNavigator = unstable_integrateWithRouter<
|
|
20
|
+
TrueSheetNavigationOptions,
|
|
21
|
+
TrueSheetNavigationState<ParamListBase>,
|
|
22
|
+
TrueSheetStandardEventMap,
|
|
23
|
+
TrueSheetNavigatorContentExtraProps,
|
|
24
|
+
TrueSheetRouterOptions
|
|
25
|
+
>(
|
|
26
|
+
trueSheetNavigator,
|
|
27
|
+
// expo-router's vendored StackRouter is structurally identical to @react-navigation's
|
|
28
|
+
createTrueSheetRouter(StackRouter as StackRouterFactory),
|
|
29
|
+
{
|
|
30
|
+
createProps: ({ state, dispatch }) => ({
|
|
31
|
+
routes: state.routes,
|
|
32
|
+
dispatch,
|
|
33
|
+
}),
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
// Public props: `routes`/`dispatch` are injected by `createProps` (optional here
|
|
38
|
+
// so the navigator type stays comparable), and expo-router intersects the event
|
|
39
|
+
// map with an index signature which breaks precisely typed `screenListeners`
|
|
40
|
+
// callbacks - replace it with the exact map
|
|
41
|
+
type SheetProps = Omit<
|
|
42
|
+
React.ComponentProps<typeof SheetNavigator>,
|
|
43
|
+
'screenListeners' | 'routes' | 'dispatch'
|
|
44
|
+
> &
|
|
45
|
+
Partial<Pick<React.ComponentProps<typeof SheetNavigator>, 'routes' | 'dispatch'>> &
|
|
46
|
+
Pick<TrueSheetNavigatorProps, 'screenListeners'>;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* TrueSheet navigator layout for Expo Router.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* // app/sheet/_layout.tsx
|
|
54
|
+
* import { Sheet } from '@lodev09/react-native-true-sheet/navigation/expo-router';
|
|
55
|
+
*
|
|
56
|
+
* export default function SheetLayout() {
|
|
57
|
+
* return (
|
|
58
|
+
* <Sheet initialRouteName="(home)">
|
|
59
|
+
* <Sheet.Screen name="details" options={{ detents: [0.5, 1] }} />
|
|
60
|
+
* </Sheet>
|
|
61
|
+
* );
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export const Sheet = SheetNavigator as React.ComponentType<SheetProps> & {
|
|
66
|
+
Screen: typeof SheetNavigator.Screen;
|
|
67
|
+
Protected: typeof SheetNavigator.Protected;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Hook to access TrueSheet navigation with the resize helper.
|
|
72
|
+
* Built on expo-router's `useNavigation`.
|
|
73
|
+
*/
|
|
74
|
+
export const useTrueSheetNavigation = <
|
|
75
|
+
T extends ParamListBase = ParamListBase,
|
|
76
|
+
>(): TrueSheetNavigationProp<T> => useNavigation<TrueSheetNavigationProp<T>>();
|
|
77
|
+
|
|
78
|
+
export { TrueSheetActions, type TrueSheetActionType } from '../actions';
|
|
79
|
+
|
|
80
|
+
export type { DetentInfoEventPayload, PositionChangeEventPayload } from '../../TrueSheet.types';
|
|
81
|
+
|
|
82
|
+
export type {
|
|
83
|
+
TrueSheetNavigationEventMap,
|
|
84
|
+
TrueSheetNavigationHelpers,
|
|
85
|
+
TrueSheetNavigationOptions,
|
|
86
|
+
TrueSheetNavigationProp,
|
|
87
|
+
TrueSheetNavigationState,
|
|
88
|
+
TrueSheetScreenProps,
|
|
89
|
+
} from '../types';
|
package/src/navigation/index.ts
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
createStandardNavigationFactories,
|
|
3
|
+
StackRouter,
|
|
4
|
+
type StandardNavigationTypeBagBase,
|
|
5
|
+
} from '@react-navigation/native';
|
|
6
|
+
|
|
7
|
+
import { createTrueSheetRouter, type StackRouterFactory } from './createTrueSheetRouter';
|
|
8
|
+
import { trueSheetNavigator } from './navigator';
|
|
9
|
+
import type {
|
|
10
|
+
TrueSheetActionHelpers,
|
|
11
|
+
TrueSheetNavigationOptions,
|
|
12
|
+
TrueSheetNavigationEventMap,
|
|
13
|
+
TrueSheetNavigationState,
|
|
14
|
+
TrueSheetNavigatorContentExtraProps,
|
|
15
|
+
} from './types';
|
|
16
|
+
import type { TrueSheetRouterOptions } from './createTrueSheetRouter';
|
|
17
|
+
|
|
18
|
+
export interface TrueSheetNavigationTypeBag extends StandardNavigationTypeBagBase {
|
|
19
|
+
State: TrueSheetNavigationState<this['ParamList']>;
|
|
20
|
+
ActionHelpers: TrueSheetActionHelpers<this['ParamList']>;
|
|
21
|
+
ScreenOptions: TrueSheetNavigationOptions;
|
|
22
|
+
EventMap: TrueSheetNavigationEventMap;
|
|
23
|
+
RouterOptions: TrueSheetRouterOptions;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const { createNavigator, createScreen } = createStandardNavigationFactories<
|
|
27
|
+
TrueSheetNavigationTypeBag,
|
|
28
|
+
{},
|
|
29
|
+
TrueSheetNavigatorContentExtraProps
|
|
30
|
+
>(
|
|
31
|
+
trueSheetNavigator,
|
|
32
|
+
createTrueSheetRouter(StackRouter as StackRouterFactory),
|
|
33
|
+
({ state, navigation }) => ({ routes: state.routes, dispatch: navigation.dispatch })
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Creates a TrueSheet navigator.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* const Sheet = createTrueSheetNavigator();
|
|
42
|
+
*
|
|
43
|
+
* function App() {
|
|
44
|
+
* return (
|
|
45
|
+
* <Sheet.Navigator>
|
|
46
|
+
* <Sheet.Screen name="Home" component={HomeScreen} />
|
|
47
|
+
* <Sheet.Screen
|
|
48
|
+
* name="Details"
|
|
49
|
+
* component={DetailsSheet}
|
|
50
|
+
* options={{ detents: [0.5, 1] }}
|
|
51
|
+
* />
|
|
52
|
+
* </Sheet.Navigator>
|
|
53
|
+
* );
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export const createTrueSheetNavigator = createNavigator;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Creates a screen configuration for the static API.
|
|
61
|
+
*/
|
|
62
|
+
export const createTrueSheetScreen = createScreen;
|
|
63
|
+
|
|
64
|
+
export { TrueSheetActions, type TrueSheetActionType } from './actions';
|
|
65
|
+
export {
|
|
66
|
+
createTrueSheetRouter,
|
|
67
|
+
type StackRouterFactory,
|
|
68
|
+
type TrueSheetRouterOptions,
|
|
69
|
+
} from './createTrueSheetRouter';
|
|
3
70
|
export { useTrueSheetNavigation } from './useTrueSheetNavigation';
|
|
4
71
|
|
|
5
72
|
export type { DetentInfoEventPayload, PositionChangeEventPayload } from '../TrueSheet.types';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createStandardNavigator } from 'standard-navigation';
|
|
2
|
+
|
|
3
|
+
import { TrueSheetNavigatorContent } from './TrueSheetNavigatorContent';
|
|
4
|
+
import type {
|
|
5
|
+
TrueSheetNavigationOptions,
|
|
6
|
+
TrueSheetNavigatorContentExtraProps,
|
|
7
|
+
TrueSheetStandardEventMap,
|
|
8
|
+
} from './types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Framework-agnostic TrueSheet navigator.
|
|
12
|
+
* Wired into React Navigation via `./index` and Expo Router via `./expo-router`.
|
|
13
|
+
*/
|
|
14
|
+
export const trueSheetNavigator = createStandardNavigator<
|
|
15
|
+
TrueSheetNavigationOptions,
|
|
16
|
+
TrueSheetStandardEventMap,
|
|
17
|
+
TrueSheetNavigatorContentExtraProps
|
|
18
|
+
>(TrueSheetNavigatorContent);
|
|
@@ -12,7 +12,7 @@ const AnimatedTrueSheet = Animated.createAnimatedComponent(TrueSheet);
|
|
|
12
12
|
export const ReanimatedTrueSheetScreen = ({
|
|
13
13
|
detentIndex,
|
|
14
14
|
resizeKey,
|
|
15
|
-
|
|
15
|
+
dispatch,
|
|
16
16
|
emit,
|
|
17
17
|
routeKey,
|
|
18
18
|
closing,
|
|
@@ -29,7 +29,7 @@ export const ReanimatedTrueSheetScreen = ({
|
|
|
29
29
|
detentIndex,
|
|
30
30
|
resizeKey,
|
|
31
31
|
closing,
|
|
32
|
-
|
|
32
|
+
dispatch,
|
|
33
33
|
routeKey,
|
|
34
34
|
emit,
|
|
35
35
|
});
|
|
@@ -8,7 +8,7 @@ import { useSheetScreenState } from './useSheetScreenState';
|
|
|
8
8
|
export const TrueSheetScreen = ({
|
|
9
9
|
detentIndex,
|
|
10
10
|
resizeKey,
|
|
11
|
-
|
|
11
|
+
dispatch,
|
|
12
12
|
emit,
|
|
13
13
|
routeKey,
|
|
14
14
|
closing,
|
|
@@ -25,7 +25,7 @@ export const TrueSheetScreen = ({
|
|
|
25
25
|
detentIndex,
|
|
26
26
|
resizeKey,
|
|
27
27
|
closing,
|
|
28
|
-
|
|
28
|
+
dispatch,
|
|
29
29
|
routeKey,
|
|
30
30
|
emit,
|
|
31
31
|
});
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import type { ParamListBase } from '@react-navigation/core';
|
|
2
|
-
|
|
3
1
|
import type { TrueSheetProps } from '../../TrueSheet.types';
|
|
4
2
|
import type {
|
|
5
3
|
PositionChangeHandler,
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
TrueSheetDispatch,
|
|
5
|
+
TrueSheetEmitFn,
|
|
8
6
|
TrueSheetNavigationSheetProps,
|
|
9
7
|
} from '../types';
|
|
10
8
|
|
|
11
9
|
export interface TrueSheetScreenProps extends TrueSheetNavigationSheetProps {
|
|
12
10
|
detentIndex: number;
|
|
13
11
|
resizeKey?: number;
|
|
14
|
-
|
|
15
|
-
emit:
|
|
12
|
+
dispatch: TrueSheetDispatch;
|
|
13
|
+
emit: TrueSheetEmitFn;
|
|
16
14
|
routeKey: string;
|
|
17
15
|
closing?: boolean;
|
|
18
16
|
detents: TrueSheetProps['detents'];
|
|
@@ -17,27 +17,20 @@ import type {
|
|
|
17
17
|
WillFocusEvent,
|
|
18
18
|
WillPresentEvent,
|
|
19
19
|
} from '../../TrueSheet.types';
|
|
20
|
-
import type {
|
|
21
|
-
|
|
22
|
-
TrueSheetNavigationHelpers,
|
|
23
|
-
TrueSheetNavigationProp,
|
|
24
|
-
} from '../types';
|
|
25
|
-
import { TrueSheetActions } from '../TrueSheetRouter';
|
|
26
|
-
import type { ParamListBase } from '@react-navigation/core';
|
|
27
|
-
|
|
28
|
-
type EmitFn = TrueSheetNavigationHelpers['emit'];
|
|
20
|
+
import type { TrueSheetDispatch, TrueSheetEmitFn, TrueSheetNavigationEventMap } from '../types';
|
|
21
|
+
import { TrueSheetActions } from '../actions';
|
|
29
22
|
|
|
30
23
|
interface UseSheetScreenStateProps {
|
|
31
24
|
detentIndex: number;
|
|
32
25
|
resizeKey?: number;
|
|
33
26
|
closing?: boolean;
|
|
34
|
-
|
|
27
|
+
dispatch: TrueSheetDispatch;
|
|
35
28
|
routeKey: string;
|
|
36
|
-
emit:
|
|
29
|
+
emit: TrueSheetEmitFn;
|
|
37
30
|
}
|
|
38
31
|
|
|
39
32
|
export const useSheetScreenState = (props: UseSheetScreenStateProps) => {
|
|
40
|
-
const { detentIndex, resizeKey, closing,
|
|
33
|
+
const { detentIndex, resizeKey, closing, dispatch, routeKey, emit } = props;
|
|
41
34
|
|
|
42
35
|
const ref = useRef<TrueSheet>(null);
|
|
43
36
|
const isDismissedRef = useRef(false);
|
|
@@ -68,7 +61,7 @@ export const useSheetScreenState = (props: UseSheetScreenStateProps) => {
|
|
|
68
61
|
type,
|
|
69
62
|
target: routeKey,
|
|
70
63
|
data,
|
|
71
|
-
} as Parameters<
|
|
64
|
+
} as Parameters<TrueSheetEmitFn>[0]);
|
|
72
65
|
},
|
|
73
66
|
[emit, routeKey]
|
|
74
67
|
);
|
|
@@ -76,8 +69,8 @@ export const useSheetScreenState = (props: UseSheetScreenStateProps) => {
|
|
|
76
69
|
const onDidDismiss = useCallback(() => {
|
|
77
70
|
emitEvent('sheetDidDismiss', undefined);
|
|
78
71
|
isDismissedRef.current = true;
|
|
79
|
-
|
|
80
|
-
}, [emitEvent,
|
|
72
|
+
dispatch({ ...TrueSheetActions.remove(), source: routeKey });
|
|
73
|
+
}, [emitEvent, dispatch, routeKey]);
|
|
81
74
|
|
|
82
75
|
const eventHandlers = useMemo(
|
|
83
76
|
() => ({
|
package/src/navigation/types.ts
CHANGED
|
@@ -8,12 +8,14 @@ import type {
|
|
|
8
8
|
RouteProp,
|
|
9
9
|
StackActionHelpers,
|
|
10
10
|
} from '@react-navigation/core';
|
|
11
|
+
import type { NavigatorArgs } from 'standard-navigation';
|
|
11
12
|
|
|
12
13
|
import type {
|
|
13
14
|
DetentInfoEventPayload,
|
|
14
15
|
PositionChangeEventPayload,
|
|
15
16
|
TrueSheetProps,
|
|
16
17
|
} from '../TrueSheet.types';
|
|
18
|
+
import type { TrueSheetActionType } from './actions';
|
|
17
19
|
|
|
18
20
|
export type PositionChangeHandler = (payload: PositionChangeEventPayload) => void;
|
|
19
21
|
|
|
@@ -84,6 +86,36 @@ export type TrueSheetNavigationState<ParamList extends ParamListBase> = Omit<
|
|
|
84
86
|
})[];
|
|
85
87
|
};
|
|
86
88
|
|
|
89
|
+
/**
|
|
90
|
+
* `TrueSheetNavigationEventMap` in the `standard-navigation` event-map shape.
|
|
91
|
+
*/
|
|
92
|
+
export type TrueSheetStandardEventMap = {
|
|
93
|
+
[K in keyof TrueSheetNavigationEventMap]: {
|
|
94
|
+
data: TrueSheetNavigationEventMap[K]['data'];
|
|
95
|
+
canPreventDefault: false;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export type TrueSheetRoute = TrueSheetNavigationState<ParamListBase>['routes'][number];
|
|
100
|
+
|
|
101
|
+
export type TrueSheetDispatch = (action: TrueSheetActionType) => void;
|
|
102
|
+
|
|
103
|
+
export type TrueSheetEmitFn = NavigatorArgs<
|
|
104
|
+
TrueSheetNavigationOptions,
|
|
105
|
+
TrueSheetStandardEventMap
|
|
106
|
+
>['emitter']['emit'];
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Props injected into the navigator content by each adapter
|
|
110
|
+
* (React Navigation's `mapper` / Expo Router's `createProps`).
|
|
111
|
+
* Raw routes carry the custom fields (`closing`, `resizeIndex`, `resizeKey`)
|
|
112
|
+
* that the standard state strips out.
|
|
113
|
+
*/
|
|
114
|
+
export interface TrueSheetNavigatorContentExtraProps {
|
|
115
|
+
routes: TrueSheetRoute[];
|
|
116
|
+
dispatch: TrueSheetDispatch;
|
|
117
|
+
}
|
|
118
|
+
|
|
87
119
|
export type TrueSheetActionHelpers<ParamList extends ParamListBase> =
|
|
88
120
|
StackActionHelpers<ParamList> & {
|
|
89
121
|
/**
|
package/src/web/dom.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
2
|
+
import type { View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Resolves a React Native web `View` ref value to its underlying DOM element —
|
|
6
|
+
* RN-web refs expose the host DOM node directly.
|
|
7
|
+
*/
|
|
8
|
+
export const getDOMElement = (view: View | null): HTMLElement | null =>
|
|
9
|
+
view instanceof HTMLElement ? view : null;
|
package/src/web/vaul/helpers.ts
CHANGED
|
@@ -4,7 +4,12 @@ interface Style {
|
|
|
4
4
|
[key: string]: string;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// CSSStyleDeclaration has no string index signature, so dynamic camelCase
|
|
8
|
+
// keys are assigned through this writable-record view. Values include
|
|
9
|
+
// undefined: originals captured for unknown keys read back as undefined.
|
|
10
|
+
type IndexableStyle = CSSStyleDeclaration & Record<string, string | undefined>;
|
|
11
|
+
|
|
12
|
+
const cache = new WeakMap<HTMLElement, Record<string, string | undefined>>();
|
|
8
13
|
|
|
9
14
|
export function isInView(el: HTMLElement): boolean {
|
|
10
15
|
const rect = el.getBoundingClientRect();
|
|
@@ -26,7 +31,8 @@ export function set(
|
|
|
26
31
|
ignoreCache = false
|
|
27
32
|
) {
|
|
28
33
|
if (!el || !(el instanceof HTMLElement)) return;
|
|
29
|
-
let originalStyles:
|
|
34
|
+
let originalStyles: Record<string, string | undefined> = {};
|
|
35
|
+
const style = el.style as IndexableStyle;
|
|
30
36
|
|
|
31
37
|
Object.entries(styles).forEach(([key, value]: [string, string]) => {
|
|
32
38
|
if (key.startsWith('--')) {
|
|
@@ -34,8 +40,8 @@ export function set(
|
|
|
34
40
|
return;
|
|
35
41
|
}
|
|
36
42
|
|
|
37
|
-
originalStyles[key] =
|
|
38
|
-
|
|
43
|
+
originalStyles[key] = style[key];
|
|
44
|
+
style[key] = value;
|
|
39
45
|
});
|
|
40
46
|
|
|
41
47
|
if (ignoreCache) return;
|
|
@@ -51,11 +57,12 @@ export function reset(el: Element | HTMLElement | null, prop?: string) {
|
|
|
51
57
|
return;
|
|
52
58
|
}
|
|
53
59
|
|
|
60
|
+
const style = el.style as IndexableStyle;
|
|
54
61
|
if (prop) {
|
|
55
|
-
|
|
62
|
+
style[prop] = originalStyles[prop];
|
|
56
63
|
} else {
|
|
57
64
|
Object.entries(originalStyles).forEach(([key, value]) => {
|
|
58
|
-
|
|
65
|
+
style[key] = value;
|
|
59
66
|
});
|
|
60
67
|
}
|
|
61
68
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","StackRouter","StackActions","TrueSheetActions","resize","index","type","dismiss","remove","ensureBaseRoute","state","baseRouteName","routeParamList","hasBaseRoute","routes","some","r","name","baseRoute","key","params","length","TrueSheetRouter","routerOptions","baseRouter","getInitialState","options","initialRouteName","routeNames","stateWithBaseRoute","stale","getStateForAction","action","routeIndex","target","source","findIndex","map","route","i","resizeIndex","resizeKey","pop","count","payload","maxPopCount","actualCount","Math","min","targetIndex","closingIndex","closing","popCount","targetName","routeKey","filter","_","getRehydratedState","partialState","routeGetIdList","actionCreators"],"sourceRoot":"../../../src","sources":["navigation/TrueSheetRouter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["TrueSheetScreen","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ReanimatedTrueSheetScreen","getReanimatedScreen","require","DEFAULT_DETENTS","clampDetentIndex","index","detentsLength","Math","min","max","TrueSheetView","state","navigation","descriptors","baseRoute","sheetRoutes","routes","baseDescriptor","key","children","render","map","route","descriptor","options","screenNavigation","detentIndex","detents","reanimated","positionChangeHandler","sheetProps","resolvedIndex","resizeIndex","length","ReanimatedScreen","routeKey","closing","resizeKey","emit"],"sourceRoot":"../../../src","sources":["navigation/TrueSheetView.tsx"],"mappings":";;AAOA,SAASA,eAAe,QAAmC,mBAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEtE,IAAIC,yBAA2E,GAAG,IAAI;AAEtF,MAAMC,mBAAmB,GAAGA,CAAA,KAAiD;EAC3E,IAAI,CAACD,yBAAyB,EAAE;IAC9BA,yBAAyB,GACvBE,OAAO,CAAC,oCAAoC,CAAC,CAACF,yBAAyB;EAC3E;EACA,OAAOA,yBAAyB;AAClC,CAAC;AAED,MAAMG,eAAoC,GAAG,CAAC,MAAM,CAAC;AAErD,MAAMC,gBAAgB,GAAGA,CAACC,KAAa,EAAEC,aAAqB,KAC5DC,IAAI,CAACC,GAAG,CAACH,KAAK,EAAEE,IAAI,CAACE,GAAG,CAACH,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAQjD,OAAO,MAAMI,aAAa,GAAGA,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAgC,CAAC,KAAK;EACvF;EACA,MAAM,CAACC,SAAS,EAAE,GAAGC,WAAW,CAAC,GAAGJ,KAAK,CAACK,MAAM;EAEhD,MAAMC,cAAc,GAAGH,SAAS,GAAGD,WAAW,CAACC,SAAS,CAACI,GAAG,CAAC,GAAG,IAAI;EAEpE,oBACEnB,KAAA,CAAAF,SAAA;IAAAsB,QAAA,GAEGF,cAAc,EAAEG,MAAM,CAAC,CAAC,EAGxBL,WAAW,CAACM,GAAG,CAAEC,KAAK,IAAK;MAC1B,MAAMC,UAAU,GAAGV,WAAW,CAACS,KAAK,CAACJ,GAAG,CAAC;MAEzC,IAAI,CAACK,UAAU,EAAE;QACf,OAAO,IAAI;MACb;MAEA,MAAM;QAAEC,OAAO;QAAEZ,UAAU,EAAEa,gBAAgB;QAAEL;MAAO,CAAC,GAAGG,UAAU;MACpE,MAAM;QACJG,WAAW,GAAG,CAAC;QACfC,OAAO,GAAGxB,eAAe;QACzByB,UAAU;QACVC,qBAAqB;QACrB,GAAGC;MACL,CAAC,GAAGN,OAAO;MACX,MAAMO,aAAa,GAAG3B,gBAAgB,CAACkB,KAAK,CAACU,WAAW,IAAIN,WAAW,EAAEC,OAAO,CAACM,MAAM,CAAC;MAExF,IAAIL,UAAU,EAAE;QACd,MAAMM,gBAAgB,GAAGjC,mBAAmB,CAAC,CAAC;QAC9C,oBACEN,IAAA,CAACuC,gBAAgB;UAEfC,QAAQ,EAAEb,KAAK,CAACJ,GAAI;UACpBkB,OAAO,EAAEd,KAAK,CAACc,OAAQ;UACvBV,WAAW,EAAEK,aAAc;UAC3BM,SAAS,EAAEf,KAAK,CAACe,SAAU;UAC3BV,OAAO,EAAEA,OAAQ;UACjBf,UAAU,EAAEa,gBAAiB;UAC7Ba,IAAI,EAAE1B,UAAU,CAAC0B,IAAK;UACtBT,qBAAqB,EAAEA,qBAAsB;UAAA,GACzCC,UAAU;UAAAX,QAAA,EAEbC,MAAM,CAAC;QAAC,GAXJE,KAAK,CAACJ,GAYK,CAAC;MAEvB;MAEA,oBACEvB,IAAA,CAACF,eAAe;QAEd0C,QAAQ,EAAEb,KAAK,CAACJ,GAAI;QACpBkB,OAAO,EAAEd,KAAK,CAACc,OAAQ;QACvBV,WAAW,EAAEK,aAAc;QAC3BM,SAAS,EAAEf,KAAK,CAACe,SAAU;QAC3BV,OAAO,EAAEA,OAAQ;QACjBf,UAAU,EAAEa,gBAAiB;QAC7Ba,IAAI,EAAE1B,UAAU,CAAC0B,IAAK;QACtBT,qBAAqB,EAAEA,qBAAsB;QAAA,GACzCC,UAAU;QAAAX,QAAA,EAEbC,MAAM,CAAC;MAAC,GAXJE,KAAK,CAACJ,GAYI,CAAC;IAEtB,CAAC,CAAC;EAAA,CACF,CAAC;AAEP,CAAC","ignoreList":[]}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { createNavigatorFactory, useNavigationBuilder } from '@react-navigation/core';
|
|
4
|
-
import { TrueSheetRouter } from "./TrueSheetRouter.js";
|
|
5
|
-
import { TrueSheetView } from "./TrueSheetView.js";
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
const TrueSheetNavigator = ({
|
|
8
|
-
id,
|
|
9
|
-
initialRouteName,
|
|
10
|
-
children,
|
|
11
|
-
layout,
|
|
12
|
-
screenListeners,
|
|
13
|
-
screenOptions,
|
|
14
|
-
screenLayout
|
|
15
|
-
}) => {
|
|
16
|
-
const {
|
|
17
|
-
state,
|
|
18
|
-
descriptors,
|
|
19
|
-
navigation,
|
|
20
|
-
NavigationContent
|
|
21
|
-
} = useNavigationBuilder(TrueSheetRouter, {
|
|
22
|
-
id,
|
|
23
|
-
initialRouteName,
|
|
24
|
-
children,
|
|
25
|
-
layout,
|
|
26
|
-
screenListeners,
|
|
27
|
-
screenOptions,
|
|
28
|
-
screenLayout
|
|
29
|
-
});
|
|
30
|
-
return /*#__PURE__*/_jsx(NavigationContent, {
|
|
31
|
-
children: /*#__PURE__*/_jsx(TrueSheetView, {
|
|
32
|
-
state: state,
|
|
33
|
-
navigation: navigation,
|
|
34
|
-
descriptors: descriptors
|
|
35
|
-
})
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Creates a TrueSheet navigator.
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```tsx
|
|
44
|
-
* const Sheet = createTrueSheetNavigator();
|
|
45
|
-
*
|
|
46
|
-
* function App() {
|
|
47
|
-
* return (
|
|
48
|
-
* <Sheet.Navigator>
|
|
49
|
-
* <Sheet.Screen name="Home" component={HomeScreen} />
|
|
50
|
-
* <Sheet.Screen
|
|
51
|
-
* name="Details"
|
|
52
|
-
* component={DetailsSheet}
|
|
53
|
-
* options={{ detents: [0.5, 1] }}
|
|
54
|
-
* />
|
|
55
|
-
* </Sheet.Navigator>
|
|
56
|
-
* );
|
|
57
|
-
* }
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
export const createTrueSheetNavigator = config => {
|
|
61
|
-
return createNavigatorFactory(TrueSheetNavigator)(config);
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=createTrueSheetNavigator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createNavigatorFactory","useNavigationBuilder","TrueSheetRouter","TrueSheetView","jsx","_jsx","TrueSheetNavigator","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","state","descriptors","navigation","NavigationContent","createTrueSheetNavigator","config"],"sourceRoot":"../../../src","sources":["navigation/createTrueSheetNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EAKtBC,oBAAoB,QACf,wBAAwB;AAE/B,SAASC,eAAe,QAAqC,sBAAmB;AAChF,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUhD,MAAMC,kBAAkB,GAAGA,CAAC;EAC1BC,EAAE;EACFC,gBAAgB;EAChBC,QAAQ;EACRC,MAAM;EACNC,eAAe;EACfC,aAAa;EACbC;AACuB,CAAC,KAAK;EAC7B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GAAGhB,oBAAoB,CAMhFC,eAAe,EAAE;IACjBK,EAAE;IACFC,gBAAgB;IAChBC,QAAQ;IACRC,MAAM;IACNC,eAAe;IACfC,aAAa;IACbC;EACF,CAAC,CAAC;EAEF,oBACER,IAAA,CAACY,iBAAiB;IAAAR,QAAA,eAChBJ,IAAA,CAACF,aAAa;MAACW,KAAK,EAAEA,KAAM;MAACE,UAAU,EAAEA,UAAW;MAACD,WAAW,EAAEA;IAAY,CAAE;EAAC,CAChE,CAAC;AAExB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,wBAAwB,GAgBnCC,MAAe,IACqB;EACpC,OAAOnB,sBAAsB,CAACM,kBAAkB,CAAC,CAACa,MAAM,CAAC;AAC3D,CAAC","ignoreList":[]}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { type CommonActions, type ParamListBase, type Router, type StackActionType, type StackRouterOptions } from '@react-navigation/core';
|
|
2
|
-
import type { TrueSheetNavigationState } from './types';
|
|
3
|
-
export type TrueSheetRouterOptions = StackRouterOptions;
|
|
4
|
-
export type TrueSheetActionType = StackActionType | ReturnType<typeof CommonActions.goBack> | {
|
|
5
|
-
type: 'RESIZE';
|
|
6
|
-
index: number;
|
|
7
|
-
source?: string;
|
|
8
|
-
target?: string;
|
|
9
|
-
} | {
|
|
10
|
-
type: 'DISMISS';
|
|
11
|
-
source?: string;
|
|
12
|
-
target?: string;
|
|
13
|
-
} | {
|
|
14
|
-
type: 'REMOVE';
|
|
15
|
-
source?: string;
|
|
16
|
-
target?: string;
|
|
17
|
-
};
|
|
18
|
-
export declare const TrueSheetActions: {
|
|
19
|
-
resize: (index: number) => TrueSheetActionType;
|
|
20
|
-
dismiss: () => TrueSheetActionType;
|
|
21
|
-
remove: () => TrueSheetActionType;
|
|
22
|
-
replace(name: string, params?: object): {
|
|
23
|
-
readonly type: "REPLACE";
|
|
24
|
-
readonly payload: {
|
|
25
|
-
readonly name: string;
|
|
26
|
-
readonly params: object | undefined;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
push(name: string, params?: object): {
|
|
30
|
-
readonly type: "PUSH";
|
|
31
|
-
readonly payload: {
|
|
32
|
-
readonly name: string;
|
|
33
|
-
readonly params: object | undefined;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
pop(count?: number): {
|
|
37
|
-
readonly type: "POP";
|
|
38
|
-
readonly payload: {
|
|
39
|
-
readonly count: number;
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
popToTop(): {
|
|
43
|
-
readonly type: "POP_TO_TOP";
|
|
44
|
-
};
|
|
45
|
-
popTo(name: string, params?: object, options?: {
|
|
46
|
-
merge?: boolean;
|
|
47
|
-
}): {
|
|
48
|
-
readonly type: "POP_TO";
|
|
49
|
-
readonly payload: {
|
|
50
|
-
readonly name: string;
|
|
51
|
-
readonly params: object | undefined;
|
|
52
|
-
readonly merge: boolean | undefined;
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
export declare const TrueSheetRouter: (routerOptions: StackRouterOptions) => Router<TrueSheetNavigationState<ParamListBase>, TrueSheetActionType>;
|
|
57
|
-
//# sourceMappingURL=TrueSheetRouter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheetRouter.d.ts","sourceRoot":"","sources":["../../../../src/navigation/TrueSheetRouter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,MAAM,EAEX,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,UAAU,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,GACvC;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,eAAO,MAAM,gBAAgB;oBAEX,MAAM,KAAG,mBAAmB;mBAC/B,mBAAmB;kBACpB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;aA+FO,CAAC;;;;;;;;;CA9FxC,CAAC;AA8BF,eAAO,MAAM,eAAe,GAC1B,eAAe,kBAAkB,KAChC,MAAM,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAiKrE,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ParamListBase } from '@react-navigation/core';
|
|
2
|
-
import type { TrueSheetDescriptorMap, TrueSheetNavigationHelpers, TrueSheetNavigationState } from './types';
|
|
3
|
-
interface TrueSheetViewProps {
|
|
4
|
-
state: TrueSheetNavigationState<ParamListBase>;
|
|
5
|
-
navigation: TrueSheetNavigationHelpers;
|
|
6
|
-
descriptors: TrueSheetDescriptorMap;
|
|
7
|
-
}
|
|
8
|
-
export declare const TrueSheetView: ({ state, navigation, descriptors }: TrueSheetViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=TrueSheetView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheetView.d.ts","sourceRoot":"","sources":["../../../../src/navigation/TrueSheetView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAkBjB,UAAU,kBAAkB;IAC1B,KAAK,EAAE,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAC/C,UAAU,EAAE,0BAA0B,CAAC;IACvC,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,eAAO,MAAM,aAAa,GAAI,oCAAoC,kBAAkB,4CAoEnF,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { type NavigatorTypeBagBase, type ParamListBase, type StaticConfig, type TypedNavigator } from '@react-navigation/core';
|
|
2
|
-
import type { TrueSheetNavigationEventMap, TrueSheetNavigationOptions, TrueSheetNavigationProp, TrueSheetNavigationState, TrueSheetNavigatorProps } from './types';
|
|
3
|
-
declare const TrueSheetNavigator: ({ id, initialRouteName, children, layout, screenListeners, screenOptions, screenLayout, }: TrueSheetNavigatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
/**
|
|
5
|
-
* Creates a TrueSheet navigator.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```tsx
|
|
9
|
-
* const Sheet = createTrueSheetNavigator();
|
|
10
|
-
*
|
|
11
|
-
* function App() {
|
|
12
|
-
* return (
|
|
13
|
-
* <Sheet.Navigator>
|
|
14
|
-
* <Sheet.Screen name="Home" component={HomeScreen} />
|
|
15
|
-
* <Sheet.Screen
|
|
16
|
-
* name="Details"
|
|
17
|
-
* component={DetailsSheet}
|
|
18
|
-
* options={{ detents: [0.5, 1] }}
|
|
19
|
-
* />
|
|
20
|
-
* </Sheet.Navigator>
|
|
21
|
-
* );
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export declare const createTrueSheetNavigator: <const ParamList extends ParamListBase, const NavigatorID extends string | undefined = undefined, const TypeBag extends NavigatorTypeBagBase = {
|
|
26
|
-
ParamList: ParamList;
|
|
27
|
-
NavigatorID: NavigatorID;
|
|
28
|
-
State: TrueSheetNavigationState<ParamList>;
|
|
29
|
-
ScreenOptions: TrueSheetNavigationOptions;
|
|
30
|
-
EventMap: TrueSheetNavigationEventMap;
|
|
31
|
-
NavigationList: { [RouteName in keyof ParamList]: TrueSheetNavigationProp<ParamList, RouteName, NavigatorID>; };
|
|
32
|
-
Navigator: typeof TrueSheetNavigator;
|
|
33
|
-
}, const Config extends StaticConfig<TypeBag> = StaticConfig<TypeBag>>(config?: Config) => TypedNavigator<TypeBag, Config>;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=createTrueSheetNavigator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createTrueSheetNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigation/createTrueSheetNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAEV,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB,QAAA,MAAM,kBAAkB,GAAI,2FAQzB,uBAAuB,4CAsBzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,wBAAwB,GACnC,KAAK,CAAC,SAAS,SAAS,aAAa,EACrC,KAAK,CAAC,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACxD,KAAK,CAAC,OAAO,SAAS,oBAAoB,GAAG;IAC3C,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC3C,aAAa,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,EAAE,2BAA2B,CAAC;IACtC,cAAc,EAAE,GACb,SAAS,IAAI,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,GAC3F,CAAC;IACF,SAAS,EAAE,OAAO,kBAAkB,CAAC;CACtC,EACD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,EAElE,SAAS,MAAM,KACd,cAAc,CAAC,OAAO,EAAE,MAAM,CAEhC,CAAC"}
|