Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
69 lines
1.5 KiB
Markdown
69 lines
1.5 KiB
Markdown
---
|
||
category: Browser
|
||
---
|
||
|
||
# useShare
|
||
|
||
Reactive [Web Share API](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share). The Browser provides features that can share content in text or file.
|
||
|
||
> The `share` method has to be called following a user gesture like a button click. It can’t simply be called on page load for example. That’s in place to help prevent abuse.
|
||
|
||
## Usage
|
||
|
||
```ts
|
||
import { useShare } from '@vueuse/core'
|
||
|
||
const { share, isSupported } = useShare()
|
||
|
||
function startShare() {
|
||
share({
|
||
title: 'Hello',
|
||
text: 'Hello my friend!',
|
||
url: location.href,
|
||
})
|
||
}
|
||
```
|
||
|
||
### Passing a source ref
|
||
|
||
You can pass a `ref` to it, changes from the source ref will be reflected to your sharing options.
|
||
|
||
```ts {6}
|
||
import { ref } from 'vue'
|
||
|
||
const shareOptions = ref<ShareOptions>({ text: 'foo' })
|
||
const { share, isSupported } = useShare(shareOptions)
|
||
|
||
shareOptions.value.text = 'bar'
|
||
|
||
share()
|
||
```
|
||
|
||
## Type Declarations
|
||
|
||
```ts
|
||
export interface UseShareOptions {
|
||
title?: string
|
||
files?: File[]
|
||
text?: string
|
||
url?: string
|
||
}
|
||
/**
|
||
* Reactive Web Share API.
|
||
*
|
||
* @see https://vueuse.org/useShare
|
||
* @param shareOptions
|
||
* @param options
|
||
*
|
||
* @__NO_SIDE_EFFECTS__
|
||
*/
|
||
export declare function useShare(
|
||
shareOptions?: MaybeRefOrGetter<UseShareOptions>,
|
||
options?: ConfigurableNavigator,
|
||
): {
|
||
isSupported: ComputedRef<boolean>
|
||
share: (overrideOptions?: MaybeRefOrGetter<UseShareOptions>) => Promise<void>
|
||
}
|
||
export type UseShareReturn = ReturnType<typeof useShare>
|
||
```
|