1
- import { Card , Cards } from '@lobehub/ui/mdx' ;
1
+ import GridList from '@/components/GridList' ;
2
+ import { useGlobalStore } from '@/store/global' ;
2
3
3
4
interface BackgroundOption {
4
5
id : string ;
@@ -11,131 +12,135 @@ const backgroundOptions: BackgroundOption[] = [
11
12
{
12
13
id : 'bedroom-clean' ,
13
14
name : 'bedroom clean' ,
14
- url : '/ 1920x1080/bedroom clean.jpg' ,
15
- thumbnail : '/ 160x90/bedroom clean.jpg' ,
15
+ url : '1920x1080/bedroom clean.jpg' ,
16
+ thumbnail : '160x90/bedroom clean.jpg' ,
16
17
} ,
17
18
{
18
19
id : 'bedroom-cyberpunk' ,
19
20
name : 'bedroom cyberpunk' ,
20
- url : '/ 1920x1080/bedroom cyberpunk.jpg' ,
21
- thumbnail : '/ 160x90/bedroom cyberpunk.jpg' ,
21
+ url : '1920x1080/bedroom cyberpunk.jpg' ,
22
+ thumbnail : '160x90/bedroom cyberpunk.jpg' ,
22
23
} ,
23
24
{
24
25
id : 'bedroom-red' ,
25
26
name : 'bedroom red' ,
26
- url : '/ 1920x1080/bedroom red.jpg' ,
27
- thumbnail : '/ 160x90/bedroom red.jpg' ,
27
+ url : '1920x1080/bedroom red.jpg' ,
28
+ thumbnail : '160x90/bedroom red.jpg' ,
28
29
} ,
29
30
{
30
31
id : 'bedroom-tatami' ,
31
32
name : 'bedroom tatami' ,
32
- url : '/ 1920x1080/bedroom tatami.jpg' ,
33
- thumbnail : '/ 160x90/bedroom tatami.jpg' ,
33
+ url : '1920x1080/bedroom tatami.jpg' ,
34
+ thumbnail : '160x90/bedroom tatami.jpg' ,
34
35
} ,
35
36
{
36
37
id : 'cityscape-medieval-market' ,
37
38
name : 'cityscape medieval market' ,
38
- url : '/ 1920x1080/cityscape medieval market.jpg' ,
39
- thumbnail : '/ 160x90/cityscape medieval market.jpg' ,
39
+ url : '1920x1080/cityscape medieval market.jpg' ,
40
+ thumbnail : '160x90/cityscape medieval market.jpg' ,
40
41
} ,
41
42
{
42
43
id : 'cityscape-medieval-night' ,
43
44
name : 'cityscape medieval night' ,
44
- url : '/ 1920x1080/cityscape medieval night.jpg' ,
45
- thumbnail : '/ 160x90/cityscape medieval night.jpg' ,
45
+ url : '1920x1080/cityscape medieval night.jpg' ,
46
+ thumbnail : '160x90/cityscape medieval night.jpg' ,
46
47
} ,
47
48
{
48
49
id : 'cityscape-postapoc' ,
49
50
name : 'cityscape postapoc' ,
50
- url : '/ 1920x1080/cityscape postapoc.jpg' ,
51
- thumbnail : '/ 160x90/cityscape postapoc.jpg' ,
51
+ url : '1920x1080/cityscape postapoc.jpg' ,
52
+ thumbnail : '160x90/cityscape postapoc.jpg' ,
52
53
} ,
53
54
{
54
55
id : 'forest-treehouse' ,
55
- name : 'forest treehouse fireworks air baloons (by kallmeflocc) ' ,
56
- url : '/ 1920x1080/forest treehouse.jpg' ,
57
- thumbnail : '/ 160x90/forest treehouse.jpg' ,
56
+ name : 'forest treehouse fireworks air baloons' ,
57
+ url : '1920x1080/forest treehouse.jpg' ,
58
+ thumbnail : '160x90/forest treehouse.jpg' ,
58
59
} ,
59
60
{
60
61
id : 'japan-classroom-side' ,
61
62
name : 'japan classroom side' ,
62
- url : '/ 1920x1080/japan classroom side.jpg' ,
63
- thumbnail : '/ 160x90/japan classroom side.jpg' ,
63
+ url : '1920x1080/japan classroom side.jpg' ,
64
+ thumbnail : '160x90/japan classroom side.jpg' ,
64
65
} ,
65
66
{
66
67
id : 'japan-classroom' ,
67
68
name : 'japan classroom' ,
68
- url : '/ 1920x1080/japan classroom.jpg' ,
69
- thumbnail : '/ 160x90/japan classroom.jpg' ,
69
+ url : '1920x1080/japan classroom.jpg' ,
70
+ thumbnail : '160x90/japan classroom.jpg' ,
70
71
} ,
71
72
{
72
73
id : 'japan-path-cherry-blossom' ,
73
74
name : 'japan path cherry blossom' ,
74
- url : '/ 1920x1080/japan path cherry blossom.jpg' ,
75
- thumbnail : '/ 160x90/japan path cherry blossom.jpg' ,
75
+ url : '1920x1080/japan path cherry blossom.jpg' ,
76
+ thumbnail : '160x90/japan path cherry blossom.jpg' ,
76
77
} ,
77
78
{
78
79
id : 'japan-university' ,
79
80
name : 'japan university' ,
80
- url : '/ 1920x1080/japan university.jpg' ,
81
- thumbnail : '/ 160x90/japan university.jpg' ,
81
+ url : '1920x1080/japan university.jpg' ,
82
+ thumbnail : '160x90/japan university.jpg' ,
82
83
} ,
83
84
{
84
85
id : 'landscape-autumn-great-tree' ,
85
86
name : 'landscape autumn great tree' ,
86
- url : '/ 1920x1080/landscape autumn great tree.jpg' ,
87
- thumbnail : '/ 160x90/landscape autumn great tree.jpg' ,
87
+ url : '1920x1080/landscape autumn great tree.jpg' ,
88
+ thumbnail : '160x90/landscape autumn great tree.jpg' ,
88
89
} ,
89
90
{
90
91
id : 'landscape-beach-day' ,
91
92
name : 'landscape beach day' ,
92
- url : '/ 1920x1080/landscape beach day.jpg ' ,
93
- thumbnail : '/ 160x90/landscape beach day.jpg ' ,
93
+ url : '1920x1080/landscape beach day.png ' ,
94
+ thumbnail : '160x90/landscape beach day.png ' ,
94
95
} ,
95
96
{
96
97
id : 'landscape-beach-night' ,
97
98
name : 'landscape beach night' ,
98
- url : '/ 1920x1080/landscape beach night.jpg' ,
99
- thumbnail : '/ 160x90/landscape beach night.jpg' ,
99
+ url : '1920x1080/landscape beach night.jpg' ,
100
+ thumbnail : '160x90/landscape beach night.jpg' ,
100
101
} ,
101
102
{
102
103
id : 'landscape-mountain-lake' ,
103
104
name : 'landscape mountain lake' ,
104
- url : '/ 1920x1080/landscape mountain lake.jpg' ,
105
- thumbnail : '/ 160x90/landscape mountain lake.jpg' ,
105
+ url : '1920x1080/landscape mountain lake.jpg' ,
106
+ thumbnail : '160x90/landscape mountain lake.jpg' ,
106
107
} ,
107
108
{
108
109
id : 'landscape-postapoc' ,
109
110
name : 'landscape postapoc' ,
110
- url : '/ 1920x1080/landscape postapoc.jpg' ,
111
- thumbnail : '/ 160x90/landscape postapoc.jpg' ,
111
+ url : '1920x1080/landscape postapoc.jpg' ,
112
+ thumbnail : '160x90/landscape postapoc.jpg' ,
112
113
} ,
113
114
{
114
115
id : 'landscape-winter-lake-house' ,
115
116
name : 'landscape winter lake house' ,
116
- url : '/ 1920x1080/landscape winter lake house.jpg' ,
117
- thumbnail : '/ 160x90/landscape winter lake house.jpg' ,
117
+ url : '1920x1080/landscape winter lake house.jpg' ,
118
+ thumbnail : '160x90/landscape winter lake house.jpg' ,
118
119
} ,
119
- { id : 'royal' , name : 'royal' , url : '/ 1920x1080/royal.jpg' , thumbnail : '/ 160x90/royal.jpg' } ,
120
+ { id : 'royal' , name : 'royal' , url : '1920x1080/royal.jpg' , thumbnail : '160x90/royal.jpg' } ,
120
121
{
121
122
id : 'tavern-day' ,
122
123
name : 'tavern day' ,
123
- url : '/ 1920x1080/tavern day.jpg' ,
124
- thumbnail : '/ 160x90/tavern day.jpg' ,
124
+ url : '1920x1080/tavern day.jpg' ,
125
+ thumbnail : '160x90/tavern day.jpg' ,
125
126
} ,
126
127
] ;
127
128
128
- export default function Component ( ) {
129
+ const Background = ( ) => {
130
+ const setBackgroundImageUrl = useGlobalStore ( ( s ) => s . setBackgroundImageUrl ) ;
129
131
return (
130
- < Cards >
131
- { backgroundOptions . map ( ( option ) => (
132
- < Card
133
- key = { option . id }
134
- href = { `https://r2.vidol.chat/backgrounds${ option . url } ` }
135
- image = { `https://r2.vidol.chat/backgrounds${ option . thumbnail } ` }
136
- title = { option . name }
137
- />
138
- ) ) }
139
- </ Cards >
132
+ < GridList
133
+ items = { backgroundOptions . map ( ( option ) => ( {
134
+ avatar : `https://r2.vidol.chat/backgrounds/${ encodeURIComponent ( option . thumbnail ) } ` ,
135
+ id : option . id ,
136
+ name : option . name ,
137
+ url : option . url ,
138
+ } ) ) }
139
+ onClick = { ( _ , item : BackgroundOption ) => {
140
+ setBackgroundImageUrl ( `https://r2.vidol.chat/backgrounds/${ encodeURIComponent ( item . url ) } ` ) ;
141
+ } }
142
+ />
140
143
) ;
141
- }
144
+ } ;
145
+
146
+ export default Background ;
0 commit comments