PluginProbe
Hostinger Tools / 3.0.34
Hostinger Tools v3.0.34
3.0.77 3.0.76 3.0.75 3.0.74 3.0.73 3.0.72 3.0.71 3.0.70 3.0.69 3.0.68 3.0.67 3.0.66 1.8.1 1.8.2 1.8.3 1.9.1 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.4 All 108 releases
hostinger / vue-frontend / src / components / HostingerTools / ToolVersionCard.vue

ToolVersionCard.vue in Hostinger Tools 3.0.34, at vue-frontend/src/components/HostingerTools/ToolVersionCard.vue

64 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <script lang="ts" setup>
2 import Card from "@/components/Card.vue";
3 import Label from "@/components/Label.vue";
4 import Button from "@/components/Button/Button.vue";
5 import SkeletonLoader from "@/components/Loaders/SkeletonLoader.vue";
6
7 type Props = {
8 title: string;
9 description?: string;
10 toolImageSrc: string;
11 version?: string;
12 buttonShown?: boolean;
13 actionButton?: {
14 text: string;
15 onClick?: () => void;
16 };
17 isLoading?: boolean;
18 };
19
20 defineProps<Props>();
21 </script>
22
23 <template>
24 <Card v-if="isLoading">
25 <template #header>
26 <SkeletonLoader width="50%" :height="24" rounded />
27 </template>
28 <SkeletonLoader width="100%" :height="24" rounded />
29 </Card>
30 <Card v-else class="tool-version-card">
31 <template #header>
32 <div class="d-flex justify-content-between w-100">
33 <div class="d-flex">
34 <img
35 class="h-mr-8"
36 height="24"
37 width="24"
38 :src="toolImageSrc"
39 alt="Tool icon"
40 />
41 <h3 class="h-m-0">
42 {{ title }}
43 </h3>
44 </div>
45
46 <Label v-if="version">{{ version }}</Label>
47 </div>
48 </template>
49 <p class="text-body-2">{{ description }}</p>
50 <Button
51 class="h-mt-20"
52 iconAppend="icon-launch-light"
53 @click="actionButton?.onClick"
54 v-if="buttonShown && actionButton?.text"
55 >{{ actionButton.text }}</Button
56 >
57 <p v-else
58 class="h-mt-20 text-bold-1"
59 >
60 {{ actionButton?.text }}
61 </p>
62 </Card>
63 </template>
64