91 lines
2.6 KiB
TypeScript
91 lines
2.6 KiB
TypeScript
![]() |
import React from 'react';
|
||
|
import { View, Text, ScrollView, TouchableOpacity, StyleSheet } from 'react-native';
|
||
|
import { Playlist } from "../data/playlists"
|
||
|
|
||
|
interface SidebarProps {
|
||
|
playlists: Playlist[]
|
||
|
}
|
||
|
|
||
|
export function Sidebar({ playlists }: SidebarProps) {
|
||
|
return (
|
||
|
<View style={styles.container}>
|
||
|
<View style={styles.section}>
|
||
|
<Text style={styles.sectionTitle}>Discover</Text>
|
||
|
<View style={styles.buttonContainer}>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Listen Now</Text>
|
||
|
</TouchableOpacity>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Browse</Text>
|
||
|
</TouchableOpacity>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Radio</Text>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={styles.section}>
|
||
|
<Text style={styles.sectionTitle}>Library</Text>
|
||
|
<View style={styles.buttonContainer}>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Playlists</Text>
|
||
|
</TouchableOpacity>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Songs</Text>
|
||
|
</TouchableOpacity>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Made for You</Text>
|
||
|
</TouchableOpacity>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Artists</Text>
|
||
|
</TouchableOpacity>
|
||
|
<TouchableOpacity style={styles.button}>
|
||
|
<Text style={styles.buttonText}>Albums</Text>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={styles.section}>
|
||
|
<Text style={styles.sectionTitle}>Playlists</Text>
|
||
|
<ScrollView style={styles.playlistContainer}>
|
||
|
{playlists?.map((playlist, i) => (
|
||
|
<TouchableOpacity style={styles.playlistButton}>
|
||
|
<Text style={styles.playlistButtonText}>{playlist}</Text>
|
||
|
</TouchableOpacity>
|
||
|
))}
|
||
|
</ScrollView>
|
||
|
</View>
|
||
|
</View>
|
||
|
)
|
||
|
}
|
||
|
|
||
|
const styles = StyleSheet.create({
|
||
|
container: {
|
||
|
padding: 12,
|
||
|
},
|
||
|
section: {
|
||
|
marginBottom: 20,
|
||
|
},
|
||
|
sectionTitle: {
|
||
|
fontSize: 18,
|
||
|
fontWeight: 'bold',
|
||
|
marginBottom: 10,
|
||
|
},
|
||
|
buttonContainer: {
|
||
|
marginLeft: 10,
|
||
|
},
|
||
|
button: {
|
||
|
paddingVertical: 8,
|
||
|
},
|
||
|
buttonText: {
|
||
|
fontSize: 16,
|
||
|
},
|
||
|
playlistContainer: {
|
||
|
maxHeight: 300,
|
||
|
},
|
||
|
playlistButton: {
|
||
|
paddingVertical: 8,
|
||
|
},
|
||
|
playlistButtonText: {
|
||
|
fontSize: 16,
|
||
|
},
|
||
|
});
|