Skip to content

Commit 5d84a8b

Browse files
committed
feat(components): copy component name, fix #1555
1 parent 9bc0d88 commit 5d84a8b

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

packages/app-frontend/src/features/components/SelectedComponentPane.vue

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,27 @@ export default defineComponent({
4141
4242
const sameApp = computed(() => selectedComponent.data.value?.id.split(':')[0] === selectedComponentId.value?.split(':')[0])
4343
44+
// Copy component name
45+
const showCopiedName = ref(false)
46+
let copiedNameTimeout
47+
function copyName () {
48+
navigator.clipboard.writeText(displayName.value)
49+
showCopiedName.value = true
50+
clearTimeout(copiedNameTimeout)
51+
copiedNameTimeout = setTimeout(() => {
52+
showCopiedName.value = false
53+
}, 1000)
54+
}
55+
4456
return {
4557
...selectedComponent,
4658
displayName,
4759
showRenderCode,
4860
inspector,
4961
stateFilterInput,
5062
sameApp,
63+
copyName,
64+
showCopiedName,
5165
}
5266
},
5367
})
@@ -59,13 +73,23 @@ export default defineComponent({
5973
class="h-full flex flex-col relative"
6074
>
6175
<div class="px-2 h-10 border-b border-gray-200 dark:border-gray-800 flex items-center flex-none">
62-
<div class="flex items-baseline">
76+
<VTooltip
77+
:shown="showCopiedName"
78+
:triggers="[]"
79+
:delay="0"
80+
class="flex items-baseline cursor-pointer"
81+
@click.native="copyName()"
82+
>
6383
<span class="text-gray-500">&lt;</span>
6484
<span class="text-green-500">
6585
{{ displayName }}
6686
</span>
6787
<span class="text-gray-500">&gt;</span>
68-
</div>
88+
89+
<template #popper>
90+
Copied!
91+
</template>
92+
</VTooltip>
6993

7094
<VueInput
7195
ref="stateFilterInput"

0 commit comments

Comments
 (0)