about summary refs log tree commit diff
path: root/src/lib/hooks/useSetTitle.ts
blob: c5c7a5ca1667069648315dbe8620fe97050b73a1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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])
}