Skip to content

Commit c836dc7

Browse files
committed
ability to select package managers
1 parent df98926 commit c836dc7

File tree

1 file changed

+44
-12
lines changed

1 file changed

+44
-12
lines changed

packages/docs/src/components/home/Entry.vue

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,26 +51,50 @@
5151
rounded
5252
v-bind="props"
5353
>
54-
<v-icon
55-
class="me-1"
56-
color="medium-emphasis"
57-
icon="mdi-chevron-right"
58-
size="16"
59-
/>
6054

61-
{{ randomPackage }} create
55+
<v-menu offset="4">
56+
<template #activator="{ props: iconProps }">
57+
<v-icon-btn
58+
v-bind="iconProps"
59+
class="mr-2"
60+
color="primary"
61+
cursor="pointer"
62+
height="20"
63+
icon="mdi-chevron-down"
64+
icon-size="16"
65+
rounded="lg"
66+
variant="text"
67+
width="20"
68+
/>
69+
</template>
70+
71+
<v-list density="compact" rounded="lg">
72+
<v-list-item
73+
v-for="manager in packageManagers"
74+
:key="manager"
75+
:value="manager"
76+
@click="selectedPackageManager = manager"
77+
>
78+
<v-list-item-title>
79+
{{ manager }}
80+
</v-list-item-title>
81+
</v-list-item>
82+
</v-list>
83+
</v-menu>
84+
85+
{{ commands[selectedPackageManager] }}
6286

6387
<span class="text-primary font-weight-medium ms-2">
6488
vuetify
6589
</span>
6690

6791
<v-icon
92+
:color="isCopying ? 'success' : 'medium-emphasis'"
6893
:icon="isCopying ? 'mdi-check' : 'mdi-clipboard-text-outline'"
6994
:style="{
7095
opacity: isHovering || isCopying ? 1 : 0,
7196
}"
7297
class="ms-auto"
73-
color="medium-emphasis"
7498
size="17"
7599
@click="copy"
76100
/>
@@ -128,15 +152,23 @@
128152
},
129153
]
130154
131-
const isCopying = shallowRef(false)
155+
const packageManagers = ['npm', 'pnpm', 'yarn', 'bun']
156+
const randomPackageManager = packageManagers[Math.floor(Math.random() * packageManagers.length)]
132157
133-
const packages = ['pnpm', 'yarn', 'npm', 'bun']
134-
const randomPackage = packages[Math.floor(Math.random() * packages.length)]
158+
const commands: Record<string, string> = {
159+
pnpm: 'pnpm create',
160+
yarn: 'yarn create',
161+
npm: 'npm create',
162+
bun: 'bun create',
163+
}
164+
165+
const isCopying = shallowRef(false)
166+
const selectedPackageManager = shallowRef(randomPackageManager)
135167
136168
function copy () {
137169
isCopying.value = true
138170
139-
navigator.clipboard.writeText(`${randomPackage} create vuetify`)
171+
navigator.clipboard.writeText(`${commands[selectedPackageManager.value]} vuetify`)
140172
141173
setTimeout(() => {
142174
isCopying.value = false

0 commit comments

Comments
 (0)