Skip to content

Commit 6b72b33

Browse files
committed
docs: added useClipboard docs
1 parent c62862e commit 6b72b33

File tree

4 files changed

+111
-5
lines changed

4 files changed

+111
-5
lines changed

deploy.sh

+2-5
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,11 @@
33
# 确保脚本抛出遇到的错误
44
set -e
55

6-
# 切换到 docs 目录
7-
cd docs
8-
96
# 生成静态文件
10-
npm run build:v2
7+
npm run docs:build:v2
118

129
# 进入生成的文件夹
13-
cd v2/.vuepress/dist
10+
cd docs/v2/.vuepress/dist
1411

1512
# 如果是发布到自定义域名
1613
# echo 'www.example.com' > CNAME
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<template>
2+
<section>
3+
<example-block>
4+
<template slot="component" class="w-full text-center">
5+
<input
6+
type="text"
7+
class="px-3 py-2 leading-5 border rounded-sm ml-2"
8+
placeholder="Type something"
9+
v-model="source"
10+
/>
11+
<button class="cursor-pointer ml-2 px-4 py-2 border rounded-sm hover:bg-gray-100" @click="copy">Copy to Clipboard</button>
12+
<button class="cursor-pointer ml-2 px-4 py-2 border rounded-sm bg-gray-100 hover:bg-white" @click="clear">Clear Clipboard</button>
13+
</template>
14+
<template slot="code">
15+
<span>Copied Value: {{ text }}</span>
16+
</template>
17+
</example-block>
18+
</section>
19+
</template>
20+
21+
<script>
22+
import { ref, defineComponent } from 'vue-demi'
23+
// import { useClipboard } from '@vueblocks/vue-use-core'
24+
// Test local bundle
25+
import { useClipboard } from '../../../../packages/core/lib/index.cjs'
26+
27+
export default defineComponent({
28+
name: 'UseClipboard',
29+
setup () {
30+
const source = ref('')
31+
const { copy, copied, text, clear } = useClipboard({ source })
32+
33+
return {
34+
source,
35+
text,
36+
copy,
37+
copied,
38+
clear
39+
}
40+
}
41+
})
42+
</script>

docs/v2/.vuepress/config.js

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ module.exports = {
4242
collapsable: false,
4343
sidebarDepth: 1,
4444
children: [
45+
'/guide/core/useClipboard',
4546
'/guide/core/useColor',
4647
'/guide/core/useCssVars',
4748
'/guide/core/useDebouncedRef',

docs/v2/guide/core/useClipboard.md

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# useClipboard
2+
3+
::: tip useClipboard
4+
Reactive `navigator.clipboard` API
5+
:::
6+
7+
## Example
8+
9+
> Copy some input message
10+
11+
<ClientOnly>
12+
<UseClipboard />
13+
</ClientOnly>
14+
15+
## Usage
16+
17+
```html
18+
<input
19+
type="text"
20+
placeholder="Input some text"
21+
v-model="source"
22+
/>
23+
<button @click="copy">Copy</button>
24+
<button @click="clear">Clear</button>
25+
```
26+
27+
```js
28+
import { ref, defineComponent } from 'vue'
29+
import { useClipboard } from '@vueblocks/vue-use-core'
30+
31+
export default defineComponent({
32+
setup () {
33+
const source = ref('')
34+
const { copy, copied, text, clear } = useClipboard({ source })
35+
36+
return {
37+
source,
38+
text,
39+
copy,
40+
copied,
41+
clear
42+
}
43+
}
44+
})
45+
```
46+
47+
## Typing
48+
```ts
49+
interface ClipboardOption {
50+
source?: string;
51+
during?: number;
52+
}
53+
interface ClipboardResult {
54+
text: Ref<string>;
55+
copy: typeof NOOP;
56+
clear: typeof NOOP;
57+
copied: Ref<boolean>;
58+
isSupported: Ref<boolean>;
59+
}
60+
/**
61+
* A Reactive Clipboard API
62+
* @param options
63+
* @returns
64+
*/
65+
declare const useClipboard: (options?: ClipboardOption) => ClipboardResult;
66+
```

0 commit comments

Comments
 (0)