use-react-native-navigation
Version:
A utility library for a easier use of react-native-navigation library.
55 lines (52 loc) • 1.31 kB
text/typescript
import { Layout, Options } from 'react-native-navigation'
import { useNavigationStore } from './navigation.store'
export const useNavigation = () => {
const {
status,
setRoot,
setStackRoot,
push,
pop,
popTo,
popToRoot,
showOverlay,
dismissOverlay,
showModal,
dismissAllModals,
dismissModal,
} = useNavigationStore()
return {
status,
push: <P>(layout: Layout<P>) => {
if (!status.currentComponentId) {
throw new Error('Missing component id.')
}
return push(status.currentComponentId, layout)
},
pop: (mergeOptions?: Options) => {
if (!status.currentComponentId) {
throw new Error('Missing component id.')
}
return pop(status.currentComponentId, mergeOptions)
},
dismissModal: (mergeOptions?: Options) => {
if (!status.currentComponentId) {
throw new Error('Missing component id.')
}
return dismissModal(status.currentComponentId, mergeOptions)
},
dismissOverlay: () => {
if (!status.currentComponentId) {
throw new Error('Missing component id.')
}
return dismissOverlay(status.currentComponentId)
},
setRoot,
setStackRoot,
popTo,
popToRoot,
showModal,
showOverlay,
dismissAllModals,
}
}