diff --git a/packages/drawer/src/index.tsx b/packages/drawer/src/index.tsx index 437bbd46..f6be65a1 100644 --- a/packages/drawer/src/index.tsx +++ b/packages/drawer/src/index.tsx @@ -39,4 +39,7 @@ export { NavigationDrawerScreenProps, NavigationDrawerScreenComponent, DrawerContentComponentProps, + DrawerLockMode, + DrawerIconProps, + DrawerLabelProps, } from './types'; diff --git a/packages/drawer/src/types.tsx b/packages/drawer/src/types.tsx index 3d7ace53..d1bec8bc 100644 --- a/packages/drawer/src/types.tsx +++ b/packages/drawer/src/types.tsx @@ -32,15 +32,25 @@ export type NavigationDrawerProp< jumpTo: (routeName: string, key?: string) => void; }; +export type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open'; + +export type DrawerIconProps = { + tintColor?: string; + focused: boolean; +}; + +export type DrawerLabelProps = { + tintColor?: string; + focused: boolean; +}; + export type NavigationDrawerOptions = { title?: string; drawerLabel?: | React.ReactNode - | ((props: { tintColor?: string; focused: boolean }) => React.ReactNode); - drawerIcon?: - | React.ReactNode - | ((props: { tintColor?: string; focused: boolean }) => React.ReactNode); - drawerLockMode?: 'unlocked' | 'locked-closed' | 'locked-open'; + | ((props: DrawerLabelProps) => React.ReactNode); + drawerIcon?: React.ReactNode | ((props: DrawerIconProps) => React.ReactNode); + drawerLockMode?: DrawerLockMode; }; export type NavigationDrawerConfig = { @@ -50,7 +60,7 @@ export type NavigationDrawerConfig = { drawerWidth?: number | (() => number); drawerPosition?: 'left' | 'right'; drawerType?: 'front' | 'back' | 'slide'; - drawerLockMode?: 'unlocked' | 'locked-closed' | 'locked-open'; + drawerLockMode?: DrawerLockMode; keyboardDismissMode?: 'none' | 'on-drag'; swipeEdgeWidth?: number; swipeDistanceThreshold?: number;