diff options
Diffstat (limited to 'src/lib/hooks')
-rw-r--r-- | src/lib/hooks/useSetTitle.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/hooks/useSetTitle.ts b/src/lib/hooks/useSetTitle.ts new file mode 100644 index 000000000..c5c7a5ca1 --- /dev/null +++ b/src/lib/hooks/useSetTitle.ts @@ -0,0 +1,20 @@ +import {useEffect} from 'react' +import {useNavigation} from '@react-navigation/native' + +import {NavigationProp} from 'lib/routes/types' +import {bskyTitle} from 'lib/strings/headings' +import {useStores} from 'state/index' + +/** + * Requires consuming component to be wrapped in `observer`: + * https://stackoverflow.com/a/71488009 + */ +export function useSetTitle(title?: string) { + const navigation = useNavigation<NavigationProp>() + const {unreadCountLabel} = useStores().me.notifications + useEffect(() => { + if (title) { + navigation.setOptions({title: bskyTitle(title, unreadCountLabel)}) + } + }, [title, navigation, unreadCountLabel]) +} |