PluginProbe ʕ •ᴥ•ʔ
Hostinger Reach – AI-Powered Email Marketing for WordPress / 1.7.0
Hostinger Reach – AI-Powered Email Marketing for WordPress v1.7.0
1.7.2 1.7.1 1.7.0 1.6.0 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 1.4.12 1.4.11 1.4.10 1.4.9 1.4.8 1.4.7 trunk 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6
hostinger-reach / frontend / vue / components / skeletons / PluginsSectionSkeleton.vue
hostinger-reach / frontend / vue / components / skeletons Last commit date
PluginEntrySkeleton.vue 5 months ago PluginIntegrationSkeleton.vue 1 year ago PluginsSectionSkeleton.vue 10 months ago
PluginsSectionSkeleton.vue
84 lines
1 <script lang="ts" setup>
2 import { HSkeletonLoader } from '@hostinger/hcomponents';
3
4 const SKELETON_COUNT = 3;
5 </script>
6
7 <template>
8 <div class="plugins-section-skeleton">
9 <div class="plugins-section-skeleton__toggle">
10 <HSkeletonLoader width="160px" height="32px" border-radius="sm" />
11 </div>
12
13 <div class="plugins-section-skeleton__list">
14 <div v-for="i in SKELETON_COUNT" :key="`skeleton-${i}`" class="plugins-section-skeleton__item">
15 <div class="plugins-section-skeleton__item-info">
16 <div class="plugins-section-skeleton__item-icon">
17 <HSkeletonLoader width="40px" height="40px" border-radius="sm" />
18 </div>
19 <div class="plugins-section-skeleton__item-details">
20 <HSkeletonLoader width="120px" height="16px" border-radius="sm" />
21 <HSkeletonLoader width="80px" height="14px" border-radius="sm" />
22 </div>
23 </div>
24 <div class="plugins-section-skeleton__item-actions">
25 <HSkeletonLoader width="60px" height="24px" border-radius="lg" />
26 <HSkeletonLoader width="80px" height="32px" border-radius="sm" />
27 </div>
28 </div>
29 </div>
30 </div>
31 </template>
32
33 <style lang="scss" scoped>
34 .plugins-section-skeleton {
35 display: flex;
36 flex-direction: column;
37 gap: 16px;
38
39 &__toggle {
40 display: flex;
41 justify-content: center;
42 }
43
44 &__list {
45 display: flex;
46 flex-direction: column;
47 gap: 12px;
48 }
49
50 &__item {
51 display: flex;
52 align-items: center;
53 justify-content: space-between;
54 padding: 16px;
55 background: var(--neutral--0);
56 border: 1px solid var(--neutral--200);
57 border-radius: 12px;
58 }
59
60 &__item-info {
61 display: flex;
62 align-items: center;
63 gap: 12px;
64 }
65
66 &__item-icon {
67 flex-shrink: 0;
68 }
69
70 &__item-details {
71 display: flex;
72 flex-direction: column;
73 gap: 4px;
74 }
75
76 &__item-actions {
77 display: flex;
78 align-items: center;
79 gap: 12px;
80 flex-shrink: 0;
81 }
82 }
83 </style>
84