diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-03-13 21:46:16 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-03-13 21:46:16 -0500 |
commit | b5c64a03b6cf91fb1699d2e87d3fded43a5dbb46 (patch) | |
tree | ca62618c89b8f334a2a72552db0491902c7c2555 /src/view | |
parent | 6533d7dd084ad8cdd479a0d9b416f94c809d96e1 (diff) | |
download | voidsky-b5c64a03b6cf91fb1699d2e87d3fded43a5dbb46.tar.zst |
Notification count fixes
Diffstat (limited to 'src/view')
-rw-r--r-- | src/view/shell/BottomBar.tsx | 18 | ||||
-rw-r--r-- | src/view/shell/Drawer.tsx | 50 |
2 files changed, 53 insertions, 15 deletions
diff --git a/src/view/shell/BottomBar.tsx b/src/view/shell/BottomBar.tsx index 18b06968f..8db151c5a 100644 --- a/src/view/shell/BottomBar.tsx +++ b/src/view/shell/BottomBar.tsx @@ -26,6 +26,7 @@ import { } from 'lib/icons' import {colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' import {getTabState, TabState} from 'lib/routes/helpers' export const BottomBar = observer(({navigation}: BottomTabBarProps) => { @@ -186,6 +187,10 @@ function Btn({ onPress?: (event: GestureResponderEvent) => void onLongPress?: (event: GestureResponderEvent) => void }) { + const borderStyle = useColorSchemeStyle( + styles.notificationCountLight, + styles.notificationCountDark, + ) return ( <TouchableOpacity style={styles.ctrl} @@ -193,7 +198,7 @@ function Btn({ onPressIn={onLongPress ? undefined : onPress} onLongPress={onLongPress}> {notificationCount ? ( - <View style={styles.notificationCount}> + <View style={[styles.notificationCount, borderStyle]}> <Text style={styles.notificationCountLabel}>{notificationCount}</Text> </View> ) : undefined} @@ -221,13 +226,20 @@ const styles = StyleSheet.create({ notificationCount: { position: 'absolute', left: '52%', - top: 10, + top: 8, backgroundColor: colors.blue3, paddingHorizontal: 4, paddingBottom: 1, - borderRadius: 8, + borderRadius: 6, + borderWidth: 2, zIndex: 1, }, + notificationCountLight: { + borderColor: colors.white, + }, + notificationCountDark: { + borderColor: colors.gray8, + }, notificationCountLabel: { fontSize: 12, fontWeight: 'bold', diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index 80944e10a..a10fe4899 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -38,7 +38,7 @@ import {useTheme} from 'lib/ThemeContext' import {usePalette} from 'lib/hooks/usePalette' import {useAnalytics} from 'lib/analytics' import {pluralize} from 'lib/strings/helpers' -import {getCurrentRoute, isTab, getTabState, TabState} from 'lib/routes/helpers' +import {getTabState, TabState} from 'lib/routes/helpers' import {NavigationProp} from 'lib/routes/types' export const DrawerContent = observer(() => { @@ -49,13 +49,11 @@ export const DrawerContent = observer(() => { const {track} = useAnalytics() const {isAtHome, isAtSearch, isAtNotifications} = useNavigationState( state => { - const currentRoute = state ? getCurrentRoute(state) : false return { - isAtHome: currentRoute ? isTab(currentRoute.name, 'Home') : true, - isAtSearch: currentRoute ? isTab(currentRoute.name, 'Search') : false, - isAtNotifications: currentRoute - ? isTab(currentRoute.name, 'Notifications') - : false, + isAtHome: getTabState(state, 'Home') !== TabState.Outside, + isAtSearch: getTabState(state, 'Search') !== TabState.Outside, + isAtNotifications: + getTabState(state, 'Notifications') !== TabState.Outside, } }, ) @@ -133,8 +131,21 @@ export const DrawerContent = observer(() => { <View style={[styles.menuItemIconWrapper]}> {icon} {count ? ( - <View style={styles.menuItemCount}> - <Text style={styles.menuItemCountLabel}>{count}</Text> + <View + style={[ + styles.menuItemCount, + theme.colorScheme === 'light' + ? styles.menuItemCountLight + : styles.menuItemCountDark, + count > 99 + ? styles.menuItemCountHundreds + : count > 9 + ? styles.menuItemCountTens + : undefined, + ]}> + <Text style={styles.menuItemCountLabel} numberOfLines={1}> + {count > 999 ? `${Math.round(count / 1000)}k` : count} + </Text> </View> ) : undefined} </View> @@ -346,16 +357,31 @@ const styles = StyleSheet.create({ }, menuItemCount: { position: 'absolute', - right: -6, - top: -2, - backgroundColor: colors.red3, + width: 'auto', + right: -8, + top: -8, + backgroundColor: colors.blue3, + borderWidth: 2, paddingHorizontal: 4, paddingBottom: 1, borderRadius: 6, }, + menuItemCountLight: { + borderColor: colors.white, + }, + menuItemCountDark: { + borderColor: '#1B1919', + }, + menuItemCountTens: { + width: 29, + }, + menuItemCountHundreds: { + width: 38, + }, menuItemCountLabel: { fontSize: 12, fontWeight: 'bold', + fontVariant: ['tabular-nums'], color: colors.white, }, |