import { View, StyleSheet, FlatList, Dimensions } from 'react-native' import { Skeleton } from './skeleton' const { width: screenWidth } = Dimensions.get('window') const GAP = 2 const NUM_COLUMNS = 3 const ITEM_WIDTH = (screenWidth - GAP * 2) / NUM_COLUMNS export function UploadReferenceImageDrawerSkeleton() { return ( {/* 顶部标题栏骨架 */} {/* 标签切换骨架 */} {/* 筛选区域骨架 */} {/* 图片网格骨架 */} i)} keyExtractor={(item) => item.toString()} numColumns={NUM_COLUMNS} renderItem={({ index }) => { const isLastInRow = (index + 1) % NUM_COLUMNS === 0 const isLastRow = index >= Math.floor(30 / NUM_COLUMNS) * NUM_COLUMNS return ( ) }} showsVerticalScrollIndicator={false} /> ) } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#16181B', paddingTop: 24, }, header: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingHorizontal: 16, paddingBottom: 20, }, headerTitles: { gap: 4, }, headerSubtitle: { marginTop: 2, }, tabContainer: { flexDirection: 'row', paddingHorizontal: 16, gap: 8, marginBottom: 24, }, tab: { flex: 1, height: 52, backgroundColor: '#272A30', borderRadius: 12, flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: 4, }, tabIconContainer: { width: 28, height: 28, alignItems: 'center', justifyContent: 'center', }, filterContainer: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingHorizontal: 16, marginBottom: 9, }, categoryButton: { flexDirection: 'row', alignItems: 'center', gap: 8, }, filterButtons: { flexDirection: 'row', alignItems: 'center', backgroundColor: '#1C1E22', borderRadius: 100, height: 32, padding: 3, }, filterButton: { paddingHorizontal: 12, paddingVertical: 4, minWidth: 48, alignItems: 'center', justifyContent: 'center', }, imageItem: { aspectRatio: 1 / 1.3, overflow: 'hidden', backgroundColor: '#262A31', }, })