1*72a4e1f4Smaotoumaoimport React from 'react'; 2*72a4e1f4Smaotoumaoimport {StyleSheet} from 'react-native'; 3*72a4e1f4Smaotoumaoimport rpx from '@/utils/rpx'; 4*72a4e1f4Smaotoumaoimport ActionButton from '../ActionButton'; 5*72a4e1f4Smaotoumaoimport {ROUTE_PATH, useNavigate} from '@/entry/router'; 6*72a4e1f4Smaotoumaoimport {ScrollView} from 'react-native-gesture-handler'; 7*72a4e1f4Smaotoumao 8*72a4e1f4Smaotoumaoexport default function Operations() { 9*72a4e1f4Smaotoumao const navigate = useNavigate(); 10*72a4e1f4Smaotoumao 11*72a4e1f4Smaotoumao const actionButtons = [ 12*72a4e1f4Smaotoumao { 13*72a4e1f4Smaotoumao iconName: 'fire', 14*72a4e1f4Smaotoumao title: '推荐歌单', 15*72a4e1f4Smaotoumao action() { 16*72a4e1f4Smaotoumao navigate(ROUTE_PATH.RECOMMEND_SHEETS); 17*72a4e1f4Smaotoumao }, 18*72a4e1f4Smaotoumao }, 19*72a4e1f4Smaotoumao { 20*72a4e1f4Smaotoumao iconName: 'trophy', 21*72a4e1f4Smaotoumao title: '榜单', 22*72a4e1f4Smaotoumao action() { 23*72a4e1f4Smaotoumao navigate(ROUTE_PATH.TOP_LIST); 24*72a4e1f4Smaotoumao }, 25*72a4e1f4Smaotoumao }, 26*72a4e1f4Smaotoumao { 27*72a4e1f4Smaotoumao iconName: 'clock-outline', 28*72a4e1f4Smaotoumao title: '播放记录', 29*72a4e1f4Smaotoumao action() { 30*72a4e1f4Smaotoumao navigate(ROUTE_PATH.HISTORY); 31*72a4e1f4Smaotoumao }, 32*72a4e1f4Smaotoumao }, 33*72a4e1f4Smaotoumao { 34*72a4e1f4Smaotoumao iconName: 'folder-music-outline', 35*72a4e1f4Smaotoumao title: '本地音乐', 36*72a4e1f4Smaotoumao action() { 37*72a4e1f4Smaotoumao navigate(ROUTE_PATH.LOCAL); 38*72a4e1f4Smaotoumao }, 39*72a4e1f4Smaotoumao }, 40*72a4e1f4Smaotoumao ] as const; 41*72a4e1f4Smaotoumao 42*72a4e1f4Smaotoumao return ( 43*72a4e1f4Smaotoumao <ScrollView style={styles.container}> 44*72a4e1f4Smaotoumao {actionButtons.map((action, index) => ( 45*72a4e1f4Smaotoumao <ActionButton 46*72a4e1f4Smaotoumao style={[ 47*72a4e1f4Smaotoumao styles.actionButtonStyle, 48*72a4e1f4Smaotoumao index % 4 ? styles.actionMarginLeft : null, 49*72a4e1f4Smaotoumao ]} 50*72a4e1f4Smaotoumao key={action.title} 51*72a4e1f4Smaotoumao {...action} 52*72a4e1f4Smaotoumao /> 53*72a4e1f4Smaotoumao ))} 54*72a4e1f4Smaotoumao </ScrollView> 55*72a4e1f4Smaotoumao ); 56*72a4e1f4Smaotoumao} 57*72a4e1f4Smaotoumao 58*72a4e1f4Smaotoumaoconst styles = StyleSheet.create({ 59*72a4e1f4Smaotoumao container: { 60*72a4e1f4Smaotoumao width: rpx(200), 61*72a4e1f4Smaotoumao flexGrow: 0, 62*72a4e1f4Smaotoumao flexShrink: 0, 63*72a4e1f4Smaotoumao paddingHorizontal: rpx(24), 64*72a4e1f4Smaotoumao marginVertical: rpx(32), 65*72a4e1f4Smaotoumao flexDirection: 'row', 66*72a4e1f4Smaotoumao flexWrap: 'wrap', 67*72a4e1f4Smaotoumao }, 68*72a4e1f4Smaotoumao actionButtonStyle: { 69*72a4e1f4Smaotoumao width: rpx(157.5), 70*72a4e1f4Smaotoumao height: rpx(160), 71*72a4e1f4Smaotoumao borderRadius: rpx(18), 72*72a4e1f4Smaotoumao }, 73*72a4e1f4Smaotoumao actionMarginLeft: { 74*72a4e1f4Smaotoumao marginTop: rpx(24), 75*72a4e1f4Smaotoumao }, 76*72a4e1f4Smaotoumao}); 77