Skip to content

Commit e7b750b

Browse files
НикитаНикита
authored andcommitted
devices add links
1 parent 38c09c4 commit e7b750b

3 files changed

Lines changed: 50 additions & 6 deletions

File tree

‎Components/Devices/Devices.vue‎

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@
104104
<span v-for="state in modalData['EXPOSES']" :key="state" class="badge">{{ state }}</span>
105105
</div>
106106
<p v-if="modalData['UPDATED_IN']"><strong>{{ t('updatedInFirmware') }}:</strong> {{ modalData['UPDATED_IN'] }}</p>
107+
<div v-if="Array.isArray(modalData['BUY_LINKS']) && modalData['BUY_LINKS'].length" class="buy-links">
108+
<strong>{{ t('buyLinks') }}:</strong>
109+
<a v-for="(link, idx) in modalData['BUY_LINKS']" :key="idx" :href="link.url" target="_blank" rel="noopener" class="buy-button-inline">
110+
{{ link.name && link.name.trim() !== '' ? link.name : t('buy') }}
111+
</a>
112+
</div>
107113
</div>
108114
</div>
109115
<div v-if="decodedPairing" class="pairing">
@@ -370,10 +376,25 @@ onMounted(async () => {
370376
.body{ padding:12px }
371377
.title{ font-size:16px; margin:0 0 8px }
372378
.desc{ font-size:13px; color: var(--vp-c-text-2); margin:0 }
373-
.skeleton{ animation: pulse 1.2s infinite; background:linear-gradient(90deg,#f5f5f5,#efefef,#f5f5f5) }
374-
.skeleton .image{ height:240px; background:#eee }
375-
.skeleton .title{ height:18px; width:60%; background:#e7e7e7; margin-bottom:8px }
376-
.skeleton .desc{ height:12px; width:100%; background:#e7e7e7 }
379+
.skeleton {
380+
animation: pulse 1.2s infinite;
381+
background: linear-gradient(90deg, var(--vp-c-bg-alt), var(--vp-c-bg), var(--vp-c-bg-alt));
382+
}
383+
.skeleton .image {
384+
height: 240px;
385+
background: var(--vp-c-bg-alt);
386+
}
387+
.skeleton .title {
388+
height: 18px;
389+
width: 60%;
390+
background: var(--vp-c-bg-alt);
391+
margin-bottom: 8px;
392+
}
393+
.skeleton .desc {
394+
height: 12px;
395+
width: 100%;
396+
background: var(--vp-c-bg-alt);
397+
}
377398
.mini-loader{ text-align:center; padding:12px }
378399
.sentinel{ height:1px }
379400
@@ -496,9 +517,27 @@ onMounted(async () => {
496517
.card {
497518
transition: transform 0.3s, opacity 0.3s;
498519
}
499-
</style>
520+
.buy-links {
521+
display: flex;
522+
align-items: center;
523+
gap: 8px;
524+
margin-top: 4px;
525+
}
526+
.buy-button-inline {
527+
border: 1px solid var(--vp-c-brand);
528+
color: var(--vp-c-brand);
529+
background: transparent;
530+
padding: 4px 8px;
531+
border-radius: 4px;
532+
text-decoration: none;
533+
font-size: 13px;
534+
transition: background 0.2s, color 0.2s;
535+
}
536+
.buy-button-inline:hover {
537+
background: var(--vp-c-brand);
538+
color: white;
539+
}
500540
501-
<style scoped>
502541
@media (max-width: 600px) {
503542
.filters {
504543
flex-direction: column;
@@ -525,3 +564,4 @@ onMounted(async () => {
525564
}
526565
}
527566
</style>
567+

‎Components/Devices/locales/en.json‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
"groupByVendor": "By vendor",
99
"states": "Exposes",
1010
"updatedInFirmware": "Updated in firmware",
11+
"buyLinks": "Links",
12+
"buy": "Buy",
1113
"pairing": "Pairing",
1214
"notes": "Notes"
1315
}

‎Components/Devices/locales/ru.json‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
"groupByVendor": "По производителю",
99
"states": "Состояния",
1010
"updatedInFirmware": "Обновлено в прошивке",
11+
"buyLinks": "Ссылки",
12+
"buy": "Купить",
1113
"pairing": "Сопряжение",
1214
"notes": "Заметки"
1315
}

0 commit comments

Comments
 (0)