Bluesky app fork with some witchin' additions 馃挮
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at post-text-option 62 lines 1.8 kB view raw
1import {useMemo} from 'react' 2import {defineMessage} from '@lingui/macro' 3 4import {useTerminologyPreference} from '#/state/preferences' 5 6export type TerminologyKey = 7 | 'post' 8 | 'posts' 9 | 'repost' 10 | 'reposts' 11 | 'reposted' 12 | 'reposting' 13 14const terminologyMap = { 15 skeet: { 16 post: defineMessage({message: 'skeet'}), 17 posts: defineMessage({message: 'skeets'}), 18 repost: defineMessage({message: 'reskeet'}), 19 reposts: defineMessage({message: 'reskeets'}), 20 reposted: defineMessage({message: 'reskeeted'}), 21 reposting: defineMessage({message: 'reskeeting'}), 22 }, 23 post: { 24 post: defineMessage({message: 'post'}), 25 posts: defineMessage({message: 'posts'}), 26 repost: defineMessage({message: 'repost'}), 27 reposts: defineMessage({message: 'reposts'}), 28 reposted: defineMessage({message: 'reposted'}), 29 reposting: defineMessage({message: 'reposting'}), 30 }, 31 spell: { 32 post: defineMessage({message: 'spell'}), 33 posts: defineMessage({message: 'spells'}), 34 repost: defineMessage({message: 'respell'}), 35 reposts: defineMessage({message: 'respells'}), 36 reposted: defineMessage({message: 'respelled'}), 37 reposting: defineMessage({message: 'respelling'}), 38 }, 39} 40 41/** 42 * Hook to get the correct terminology based on user preference 43 * @returns An object with all terminology variants 44 */ 45export function useTerminology() { 46 const preference = useTerminologyPreference() 47 48 return useMemo(() => { 49 const selectedTerminology = preference || 'skeet' 50 return terminologyMap[selectedTerminology] 51 }, [preference]) 52} 53 54/** 55 * Hook to get a specific terminology term 56 * @param key - The terminology key to retrieve 57 * @returns The localized terminology message 58 */ 59export function useTerm(key: TerminologyKey) { 60 const terminology = useTerminology() 61 return terminology[key] 62}