diff --git a/package.json b/package.json index 7e92ceae..a3559ddc 100644 --- a/package.json +++ b/package.json @@ -32,10 +32,12 @@ "expo-web-browser": "~8.6.0", "i18next": "^19.8.4", "lodash": "^4.17.20", + "pretty-bytes": "^5.5.0", "react": "16.13.1", "react-dom": "16.13.1", "react-i18next": "^11.8.4", "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.0.tar.gz", + "react-native-expo-image-cache": "^4.1.0", "react-native-gesture-handler": "~1.8.0", "react-native-htmlview": "^0.16.0", "react-native-image-zoom-viewer": "^3.0.1", diff --git a/src/components/Menu/Row.tsx b/src/components/Menu/Row.tsx index a977a4d1..ac11b0c2 100644 --- a/src/components/Menu/Row.tsx +++ b/src/components/Menu/Row.tsx @@ -45,14 +45,14 @@ const Core: React.FC = ({ {(content || iconBack) && ( - {content && ( + {content && content.length ? ( {content} - )} + ) : null} {iconBack && ( = ({ queryKey, account }) => { + const { mode } = useTheme() const navigation = useNavigation() // Need to fix go back root const onPress = useCallback(() => { @@ -17,7 +20,7 @@ const TimelineAvatar: React.FC = ({ queryKey, account }) => { return ( - + ) } diff --git a/src/i18n/zh/screens/meSettings.ts b/src/i18n/zh/screens/meSettings.ts index a52ddfeb..61cf5514 100644 --- a/src/i18n/zh/screens/meSettings.ts +++ b/src/i18n/zh/screens/meSettings.ts @@ -26,6 +26,9 @@ export default { cancel: '$t(common:buttons.cancel)' } }, + cache: { + heading: '清空缓存' + }, copyrights: { heading: '版权信息' }, diff --git a/src/screens/Me/Settings.tsx b/src/screens/Me/Settings.tsx index 7c4799cc..9c703efd 100644 --- a/src/screens/Me/Settings.tsx +++ b/src/screens/Me/Settings.tsx @@ -1,8 +1,9 @@ -import React from 'react' +import prettyBytes from 'pretty-bytes' +import React, { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { ActionSheetIOS, StyleSheet, Text } from 'react-native' +import { CacheManager } from 'react-native-expo-image-cache' import { useDispatch, useSelector } from 'react-redux' - import { MenuContainer, MenuRow } from '@components/Menu' import { changeBrowser, @@ -23,6 +24,13 @@ const ScreenMeSettings: React.FC = () => { const settingsBrowser = useSelector(getSettingsBrowser) const dispatch = useDispatch() + const [cacheSize, setCacheSize] = useState() + useEffect(() => { + const getCacheSize = async () => + setCacheSize(await CacheManager.getCacheSize()) + getCacheSize() + }, []) + return ( <> @@ -117,6 +125,15 @@ const ScreenMeSettings: React.FC = () => { /> + { + await CacheManager.clearCache() + setCacheSize(0) + }} + />