@@ -3,6 +3,7 @@ import { VideoPlayer } from '@videojs-player/vue'
3
3
import ' video.js/dist/video-js.css'
4
4
5
5
const { data : page } = await useAsyncData (' page-index' , () => queryCollection (' index' ).first ())
6
+ const dataStore = useDataStore ()
6
7
7
8
const title = page .value ?.seo ?.title || page .value ?.title
8
9
const description = page .value ?.seo ?.description || page .value ?.description
@@ -19,8 +20,8 @@ const { isMobile } = useDevice()
19
20
20
21
const videoReady = ref (false )
21
22
22
- const projects = ref <ProjectExportItem []>([])
23
- const contributors = ref <ContributorItem []>([])
23
+ const projects = ref <Project []>([])
24
+ const contributors = ref <Contributor []>([])
24
25
25
26
const loadingProjects = ref (true )
26
27
const loadingContributors = ref (true )
@@ -49,16 +50,12 @@ onMounted(async () => {
49
50
isClient .value = true
50
51
51
52
try {
52
- const projectData = await useProjects ({
53
+ projects . value = dataStore . getProjects ({
53
54
itemsToShow: page .value ?.projects ?.itemsToShow || 6 ,
54
55
featured: page .value ?.projects ?.featured || [],
55
56
sortBy: page .value ?.projects ?.sortBy || ' stars'
56
57
})
57
58
58
- projects .value = projectData
59
-
60
- console .log (' Projects loaded:' , projects .value )
61
-
62
59
await new Promise (resolve => setTimeout (resolve , 300 ))
63
60
} catch (error ) {
64
61
console .error (' Error loading projects:' , error )
@@ -71,9 +68,7 @@ onMounted(async () => {
71
68
}
72
69
73
70
try {
74
- const contributorData = await useContributors ()
75
-
76
- contributors .value = contributorData
71
+ contributors .value = dataStore .getContributors ()
77
72
78
73
await new Promise (resolve => setTimeout (resolve , 300 ))
79
74
} catch (error ) {
@@ -156,16 +151,15 @@ onMounted(async () => {
156
151
<NuxtLink
157
152
v-for =" item in batchOne"
158
153
:key =" item.id"
159
- :to =" item.html_url "
154
+ :to =" item.to "
160
155
target =" _blank"
161
156
class =" flex items-center"
162
157
>
163
158
<UAvatar
164
- :src =" item.avatar_url"
165
- :alt =" item.login"
159
+ v-bind =" item.avatar"
166
160
class =" mr-2"
167
161
/>
168
- <span >{{ item.login }}</span >
162
+ <span >{{ item.avatar?.alt }}</span >
169
163
</NuxtLink >
170
164
</template >
171
165
@@ -193,16 +187,15 @@ onMounted(async () => {
193
187
<NuxtLink
194
188
v-for =" item in batchTwo"
195
189
:key =" item.id"
196
- :to =" item.html_url "
190
+ :to =" item.to "
197
191
target =" _blank"
198
192
class =" flex items-center"
199
193
>
200
194
<UAvatar
201
- :src =" item.avatar_url"
202
- :alt =" item.login"
195
+ v-bind =" item.avatar"
203
196
class =" mr-2"
204
197
/>
205
- <span >{{ item.login }}</span >
198
+ <span >{{ item.avatar?.alt }}</span >
206
199
</NuxtLink >
207
200
</template >
208
201
0 commit comments