Add DataStorageScreen for managing media cache and storage: - Display cache statistics (image/video/audio counts and sizes) - Show AsyncStorage usage information - Add clear all cache functionality - Add cleanup expired cache option (7 days threshold) - Add storage usage breakdown by category - Add "Last cleaned" timestamp display Also fix MediaCacheManager to skip native cache operations on web platform: - Return original URI directly on web without caching - Skip directory creation on web - Skip file existence checks on web - Skip startup and periodic cleanup on web
48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
import { useMemo } from 'react';
|
|
import { Stack } from 'expo-router';
|
|
import { useRouter } from 'expo-router';
|
|
|
|
import { AppBackButton } from '../../../../src/components/common';
|
|
import { useAppColors } from '../../../../src/theme';
|
|
|
|
export default function ProfileStackLayout() {
|
|
const router = useRouter();
|
|
const colors = useAppColors();
|
|
|
|
const headerOptions = useMemo(
|
|
() => ({
|
|
headerStyle: { backgroundColor: colors.background.paper },
|
|
headerTintColor: colors.text.primary,
|
|
headerTitleStyle: { fontWeight: '600' as const },
|
|
headerShadowVisible: false,
|
|
headerBackTitle: '',
|
|
}),
|
|
[colors]
|
|
);
|
|
|
|
return (
|
|
<Stack
|
|
screenOptions={{
|
|
...headerOptions,
|
|
headerBackVisible: false,
|
|
headerLeft: () => <AppBackButton onPress={() => router.back()} />,
|
|
}}
|
|
>
|
|
<Stack.Screen name="index" options={{ headerShown: false }} />
|
|
<Stack.Screen name="settings" options={{ headerShown: true, title: '设置' }} />
|
|
<Stack.Screen name="edit-profile" options={{ title: '编辑资料' }} />
|
|
<Stack.Screen name="account-security" options={{ title: '账号安全' }} />
|
|
<Stack.Screen name="my-posts" options={{ title: '我的帖子' }} />
|
|
<Stack.Screen name="bookmarks" options={{ title: '收藏' }} />
|
|
<Stack.Screen name="notification-settings" options={{ title: '通知设置' }} />
|
|
<Stack.Screen name="blocked-users" options={{ title: '黑名单' }} />
|
|
<Stack.Screen name="chat-settings" options={{ title: '聊天设置' }} />
|
|
<Stack.Screen name="about" options={{ title: '关于我们' }} />
|
|
<Stack.Screen name="terms" options={{ title: '用户协议' }} />
|
|
<Stack.Screen name="privacy" options={{ title: '隐私政策' }} />
|
|
<Stack.Screen name="verification" options={{ title: '身份认证' }} />
|
|
<Stack.Screen name="data-storage" options={{ title: '数据与存储' }} />
|
|
</Stack>
|
|
);
|
|
}
|