2
2
3
3
import * as React from 'react' ;
4
4
import {
5
+ View ,
5
6
Image ,
6
- Dimensions ,
7
7
ScrollView ,
8
8
StyleSheet ,
9
9
ScrollViewProps ,
10
+ Dimensions ,
11
+ Platform ,
10
12
} from 'react-native' ;
11
13
import { useScrollToTop } from '@react-navigation/native' ;
12
14
13
15
const COVERS = [
14
- require ( '../../assets/album-art-1.jpg' ) ,
15
- require ( '../../assets/album-art-2.jpg' ) ,
16
- require ( '../../assets/album-art-3.jpg' ) ,
17
- require ( '../../assets/album-art-4.jpg' ) ,
18
- require ( '../../assets/album-art-5.jpg' ) ,
19
- require ( '../../assets/album-art-6.jpg' ) ,
20
- require ( '../../assets/album-art-7.jpg' ) ,
21
- require ( '../../assets/album-art-8.jpg' ) ,
16
+ require ( '../../assets/album-art-01.jpg' ) ,
17
+ require ( '../../assets/album-art-02.jpg' ) ,
18
+ require ( '../../assets/album-art-03.jpg' ) ,
19
+ require ( '../../assets/album-art-04.jpg' ) ,
20
+ require ( '../../assets/album-art-05.jpg' ) ,
21
+ require ( '../../assets/album-art-06.jpg' ) ,
22
+ require ( '../../assets/album-art-07.jpg' ) ,
23
+ require ( '../../assets/album-art-08.jpg' ) ,
24
+ require ( '../../assets/album-art-09.jpg' ) ,
25
+ require ( '../../assets/album-art-10.jpg' ) ,
26
+ require ( '../../assets/album-art-11.jpg' ) ,
27
+ require ( '../../assets/album-art-12.jpg' ) ,
28
+ require ( '../../assets/album-art-13.jpg' ) ,
29
+ require ( '../../assets/album-art-14.jpg' ) ,
30
+ require ( '../../assets/album-art-15.jpg' ) ,
31
+ require ( '../../assets/album-art-16.jpg' ) ,
32
+ require ( '../../assets/album-art-17.jpg' ) ,
33
+ require ( '../../assets/album-art-18.jpg' ) ,
34
+ require ( '../../assets/album-art-19.jpg' ) ,
35
+ require ( '../../assets/album-art-20.jpg' ) ,
36
+ require ( '../../assets/album-art-21.jpg' ) ,
37
+ require ( '../../assets/album-art-22.jpg' ) ,
38
+ require ( '../../assets/album-art-23.jpg' ) ,
39
+ require ( '../../assets/album-art-24.jpg' ) ,
22
40
] ;
23
41
24
42
export default function Albums ( props : Partial < ScrollViewProps > ) {
@@ -27,34 +45,46 @@ export default function Albums(props: Partial<ScrollViewProps>) {
27
45
useScrollToTop ( ref ) ;
28
46
29
47
return (
30
- < ScrollView
31
- ref = { ref }
32
- style = { styles . container }
33
- contentContainerStyle = { styles . content }
34
- { ...props }
35
- >
36
- { COVERS . map ( ( source , i ) => (
37
- // eslint-disable-next-line react/no-array-index-key
38
- < Image key = { i } source = { source } style = { styles . cover } />
39
- ) ) }
48
+ < ScrollView ref = { ref } contentContainerStyle = { styles . content } { ...props } >
40
49
{ COVERS . map ( ( source , i ) => (
41
50
// eslint-disable-next-line react/no-array-index-key
42
- < Image key = { i + 'F' } source = { source } style = { styles . cover } />
51
+ < View key = { i } style = { styles . item } >
52
+ < Image source = { source } style = { styles . photo } />
53
+ </ View >
43
54
) ) }
44
55
</ ScrollView >
45
56
) ;
46
57
}
47
58
48
59
const styles = StyleSheet . create ( {
49
- container : {
50
- backgroundColor : '#000' ,
51
- } ,
52
60
content : {
53
61
flexDirection : 'row' ,
54
62
flexWrap : 'wrap' ,
55
63
} ,
56
- cover : {
57
- width : '50%' ,
58
- height : Dimensions . get ( 'window' ) . width / 2 ,
64
+ ...Platform . select ( {
65
+ web : {
66
+ content : {
67
+ display : 'grid' as 'none' ,
68
+ gridTemplateColumns : 'repeat(auto-fill, minmax(150px, 1fr))' ,
69
+ } ,
70
+ item : {
71
+ width : '100%' ,
72
+ } ,
73
+ } ,
74
+ default : {
75
+ content : {
76
+ flexDirection : 'row' ,
77
+ flexWrap : 'wrap' ,
78
+ } ,
79
+ item : {
80
+ height : Dimensions . get ( 'window' ) . width / 2 ,
81
+ width : '50%' ,
82
+ } ,
83
+ } ,
84
+ } ) ,
85
+ photo : {
86
+ flex : 1 ,
87
+ resizeMode : 'cover' ,
88
+ paddingTop : '100%' ,
59
89
} ,
60
90
} ) ;
0 commit comments